<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-svensson-credential-oidc-bridge-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Credential to OIDC Bridge">Credential Presentation to OIDC Claims Bridge</title>
    <seriesInfo name="Internet-Draft" value="draft-svensson-credential-oidc-bridge-01"/>
    <author fullname="Magnus Svensson">
      <organization>SUNET</organization>
      <address>
        <email>masv@sunet.se</email>
      </address>
    </author>
    <author fullname="Leif Johansson">
      <organization>Siros Foundation</organization>
      <address>
        <email>leifj@siros.org</email>
      </address>
    </author>
    <author fullname="Joel Rangsmo">
      <organization>Siros Foundation</organization>
      <address>
        <email>joel@siros.org</email>
      </address>
    </author>
    <date year="2026" month="August" day="07"/>
    <area>sec</area>
    <workgroup>TBD</workgroup>
    <keyword>verifiable credentials</keyword>
    <keyword>OpenID Connect</keyword>
    <keyword>OpenID4VP</keyword>
    <keyword>digital credentials</keyword>
    <keyword>OIDC bridge</keyword>
    <abstract>
      <?line 86?>

<t>This document defines a mechanism for conveying digital credential
claims via OpenID Connect (OIDC).  It specifies how an OpenID
Provider (OP) that collects credentials from a wallet can expose
those claims to Relying Parties as standard OIDC claims, enabling
existing OIDC deployments to consume digital credentials without
implementing any wallet-facing presentation protocol.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/masv3971/rfc_credential_oidc_bridge"/>.</t>
    </note>
  </front>
  <middle>
    <?line 96?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Digital credential wallets can present verified claims to verifiers
using protocols such as OpenID for Verifiable Presentations
(OpenID4VP) <xref target="OpenID4VP"/> or DIDComm.  However, many existing services
rely on OpenID Connect (OIDC) <xref target="OpenID.Core"/> for authentication and
attribute retrieval, and implementing a wallet-facing presentation
protocol represents a significant barrier for these Relying Parties.</t>
      <t>This document specifies how an OP, acting as a bridge, can collect
credentials from a wallet using any suitable presentation protocol
and expose the resulting claims in standard OIDC ID Tokens and
UserInfo responses.  The Relying Party interacts with a normal OIDC
flow and receives credential data in the "presented_credentials"
claim without needing any knowledge of the underlying presentation
protocol.</t>
      <t>This specification is intended to complement, not compete with, work
produced by the OpenID Foundation.  Implementers are encouraged to
follow developments in the OpenID Foundation's Digital Credentials
Protocols working group.</t>
    </section>
    <section anchor="architecture-overview">
      <name>Architecture Overview</name>
      <t>The following diagram illustrates the high-level interaction between
the participants:</t>
      <artwork type="ascii-art"><![CDATA[
+--------+                +------------------+              +----------+
|        | 1. OIDC AuthN  |                  | 2. Present   |          |
|   RP   | -------------> |    OP (Bridge)   | -----------> |  Wallet  |
|        |                |                  | <----------- |          |
|        |                |                  | 3. Response  |          |
|        |                |                  |              +----------+
|        |                | 4. Verify &      |
|        | 5. ID Token    |    extract claims|
|        | <------------- |                  |
+--------+                +------------------+
]]></artwork>
      <t>The presentation protocol (steps 2-3) is out of scope for this
specification.  The OP <bcp14>MAY</bcp14> use OpenID4VP, DIDComm, or any other
suitable mechanism.</t>
      <t>The steps are:</t>
      <ol spacing="normal" type="1"><li>
          <t>The RP sends an OIDC Authentication Request to the OP,
including credential type scopes.</t>
        </li>
        <li>
          <t>The OP initiates a credential presentation request to the
user's wallet.</t>
        </li>
        <li>
          <t>The wallet responds with the disclosed credentials.</t>
        </li>
        <li>
          <t>The OP verifies the credentials and extracts claims.</t>
        </li>
        <li>
          <t>The OP returns an ID Token and/or UserInfo response containing
the "presented_credentials" claim.</t>
        </li>
      </ol>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The following terms are used throughout this document:</t>
      <dl>
        <dt>Relying Party (RP)</dt>
        <dd>
          <t>An OIDC client that consumes claims from the OP.  In this
specification, the RP receives credential claims without
directly interacting with the wallet.</t>
        </dd>
        <dt>OpenID Provider (OP)</dt>
        <dd>
          <t>The authorization server that acts as a bridge between the
wallet and the RP.  The OP collects credentials from the wallet
using a presentation protocol and exposes the resulting claims
via standard OIDC mechanisms.</t>
        </dd>
        <dt>Wallet</dt>
        <dd>
          <t>A user-controlled application that holds digital credentials and
can present them to a verifier upon request.</t>
        </dd>
        <dt>Credential Set</dt>
        <dd>
          <t>A JSON object within the "presented_credentials" array where
each key is a credential type scope and each value is an array
of Credential Entry objects.</t>
        </dd>
        <dt>Credential Entry</dt>
        <dd>
          <t>A JSON object representing a single credential presented during
the presentation flow, containing metadata and disclosed claims.</t>
        </dd>
      </dl>
    </section>
    <section anchor="relying-party-requirements">
      <name>Relying Party Requirements</name>
      <section anchor="requesting-credential-claims">
        <name>Requesting Credential Claims</name>
        <t>An RP that wishes to receive credential data via this bridge <bcp14>MUST</bcp14>
include credential type scopes in the OIDC Authentication Request
(e.g., <tt>scope=openid ehic pda1</tt>).  Scopes are always required
because they tell the OP which credential types to collect.  The RP
<bcp14>MAY</bcp14> additionally include a "requested_credential_sets" claims
parameter for fine-grained control.</t>
        <ul spacing="normal">
          <li>
            <t><em>Scope-based (simple):</em> Include only credential type scopes.
The OP requests all available claims for those credential types
and returns them in the response.  This approach requires no
additional parameters but offers no selective disclosure or
value constraints from the RP side.</t>
          </li>
          <li>
            <t><em>Scope + claims-based (detailed):</em> Include credential type scopes
AND a "requested_credential_sets" member inside the OIDC "claims"
request parameter (within the "id_token" or "userinfo" entry).
This gives the RP fine-grained control: which specific claims to
request, whether each is essential or optional, value constraints,
and trusted issuer requirements.</t>
          </li>
        </ul>
        <t>Scopes identify which credentials to collect, and the
"requested_credential_sets" claims parameter (when present) specifies
how to collect them.  If only scopes are present without a
"requested_credential_sets" claims parameter, the OP requests all
available claims for the given credential types.</t>
        <t>The following is a non-normative example of a scope-based request
(no claims parameter).  The RP requests EHIC and PDA1 credentials
with all available claims:</t>
        <sourcecode type="http"><![CDATA[
GET /authorize?
  response_type=code
  &scope=openid ehic pda1
  &client_id=https://rp.example.org
  &redirect_uri=https://rp.example.org/cb
  &nonce=n-0S6_WzA2Mj HTTP/1.1
]]></sourcecode>
        <t>The requested scopes directly correlate to the keys in credential
sets returned by the OP.  For example, if the RP requests scopes
"ehic" and "pda1", the OP will return a credential set containing
"ehic" and "pda1" entries.</t>
        <t>The RP <bcp14>MAY</bcp14> additionally use the "claims" request parameter to specify
which individual claims within a credential type are desired,
enabling selective disclosure.</t>
        <t>The "claims" member within a credential type entry is a JSON array
of claim query objects.  Each claim query object contains the
following members:</t>
        <dl>
          <dt>path</dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14>.  A non-empty JSON array of strings representing the
path to the claim within the credential, following the Claims
Path Pointer syntax defined in Section 7 of <xref target="OpenID4VP"/>.
For top-level claims the array contains a single string
(e.g., <tt>["name"]</tt>).  For nested claims the array contains one
element per level (e.g., <tt>["address", "street_address"]</tt>).</t>
          </dd>
          <dt>essential</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>.  A boolean indicating whether the claim <bcp14>MUST</bcp14> be
disclosed.  Defaults to true if omitted.</t>
          </dd>
          <dt>value</dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14>.  A JSON value that the disclosed claim <bcp14>MUST</bcp14> exactly
equal.  If present, the OP <bcp14>MUST</bcp14> verify that the disclosed claim
value matches and <bcp14>MUST</bcp14> treat the credential as not satisfying
the request if it does not.  If omitted, any disclosed value is
accepted.</t>
          </dd>
        </dl>
        <t>The "requested_credential_sets" member is placed inside the OIDC
"claims" request parameter as permitted by Section 5.5.1 of
<xref target="OpenID.Core"/>.  Its value is a JSON array of credential set
objects, each representing one combination of credentials to request.</t>
        <t>Each credential type entry within a credential set <bcp14>MAY</bcp14> also include
the following optional members to express trust requirements:</t>
        <dl>
          <dt>trusted_issuers</dt>
          <dd>
            <t>A JSON array of strings, where each string is an issuer identifier.
When present, the OP <bcp14>MUST</bcp14> only accept credentials issued by one of
the listed issuers.  If the wallet presents a credential from an
issuer not in this list, the OP <bcp14>MUST</bcp14> treat it as not satisfying the
request.  If omitted, the OP applies its own issuer policy.</t>
          </dd>
          <dt>trusted_issuer_lists</dt>
          <dd>
            <t>A JSON array of strings, where each string is an HTTPS URI
identifying a published trust list.  The trust list is a JSON
document containing an "issuers" member whose value is a JSON array
of issuer identifier strings in the same format as
"trusted_issuers".  The OP <bcp14>MUST</bcp14> fetch and cache each referenced
trust list and <bcp14>MUST</bcp14> accept credentials from any issuer appearing in
at least one of the referenced lists.  When both "trusted_issuers"
and "trusted_issuer_lists" are present, the effective set of
trusted issuers is the union of the explicitly listed issuers and
the issuers from all referenced lists.  If both members are omitted,
the OP applies its own issuer policy.</t>
          </dd>
        </dl>
        <t>The following is a non-normative example requesting a PID from a
specific set of trusted issuers:</t>
        <sourcecode type="json"><![CDATA[
{
  "id_token": {
    "requested_credential_sets": [
      {
        "pid": {
          "essential": true,
          "claims": [
            {"path": ["name"]},
            {"path": ["birth_date"]}
          ],
          "trusted_issuers": [
            "https://pid.example.gov.se",
            "https://pid.example.gov.no"
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        <t>The following is a non-normative example using trust lists to accept
PID and EHIC credentials from all issuers recognized by the EU trust
list, without enumerating each issuer individually:</t>
        <sourcecode type="json"><![CDATA[
{
  "id_token": {
    "requested_credential_sets": [
      {
        "pid": {
          "essential": true,
          "claims": [
            {"path": ["name"]},
            {"path": ["birth_date"]}
          ],
          "trusted_issuer_lists": [
            "https://trust.eu.example.org/pid-issuers.json"
          ]
        },
        "ehic": {
          "essential": true,
          "claims": [
            {"path": ["ehic_number"]}
          ],
          "trusted_issuer_lists": [
            "https://trust.eu.example.org/ehic-issuers.json"
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        <t>The following is a non-normative example of a trust list document
served at the URI referenced above:</t>
        <sourcecode type="json"><![CDATA[
{
  "issuers": [
    "https://pid.example.gov.se",
    "https://pid.example.gov.no",
    "https://pid.example.gov.de",
    "https://pid.example.gov.fr"
  ]
}
]]></sourcecode>
        <t>The "requested_credential_sets" array <bcp14>MUST</bcp14> contain at least one
credential set entry.  The structure expresses combinatorial logic
over credential types:</t>
        <ul spacing="normal">
          <li>
            <t><em>AND (within a set):</em> Credentials listed in the same credential
set with "essential": true are all required for that set to be
considered satisfied.  If any essential credential in the set
cannot be obtained, the set is not satisfied and the OP proceeds
to the next alternative set.  The following is a non-normative
example requesting PID AND EHIC together (both are required):</t>
          </li>
        </ul>
        <sourcecode type="json"><![CDATA[
{
  "id_token": {
    "requested_credential_sets": [
      {
        "pid": {
          "essential": true,
          "claims": [
            {"path": ["name"]}
          ]
        },
        "ehic": {
          "essential": true,
          "claims": [
            {"path": ["ehic_number"]}
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        <ul spacing="normal">
          <li>
            <t><em>OR (between sets):</em> Multiple credential sets represent
alternatives.  The OP <bcp14>MUST</bcp14> attempt to satisfy the sets in order
and use the first set that can be fully satisfied.  Only one
credential set is returned in the response.  If no set can be
fully satisfied, the OP <bcp14>MUST</bcp14> return an OIDC error response
(e.g., "access_denied").  The following is a non-normative
example requesting PID OR EHIC (either one satisfies the RP).
The OP tries the first set; if the wallet cannot provide a PID,
it falls back to the second set:</t>
          </li>
        </ul>
        <sourcecode type="json"><![CDATA[
{
  "id_token": {
    "requested_credential_sets": [
      {
        "pid": {
          "essential": true,
          "claims": [
            {"path": ["name"]}
          ]
        }
      },
      {
        "ehic": {
          "essential": true,
          "claims": [
            {"path": ["ehic_number"]}
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        <t>This structure is equivalent to Disjunctive Normal Form (DNF): a
flat list of AND-groups joined by OR.  It cannot directly express
an OR nested inside an AND.  For example, the requirement
"(PID OR EHIC) AND PDA1" must be manually expanded into two
credential sets: {PID, PDA1} OR {EHIC, PDA1}.  Complex boolean
combinations may therefore require a number of credential sets that
grows multiplicatively with the number of OR-branches.</t>
        <t>The following is a non-normative example requesting PID (required)
with EHIC as optional (nice-to-have):</t>
        <sourcecode type="json"><![CDATA[
{
  "id_token": {
    "requested_credential_sets": [
      {
        "pid": {
          "essential": true,
          "claims": [
            {"path": ["name"]}
          ]
        },
        "ehic": {
          "essential": false,
          "claims": [
            {"path": ["ehic_number"]}
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        <t>The following is a non-normative example requesting a PID with a
value constraint and an optional claim:</t>
        <sourcecode type="json"><![CDATA[
{
  "id_token": {
    "requested_credential_sets": [
      {
        "pid": {
          "essential": true,
          "claims": [
            {"path": ["name"], "essential": true},
            {"path": ["age_over_18"], "essential": true, "value": true},
            {"path": ["email"], "essential": false}
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        <t>In the above example the OP <bcp14>MUST</bcp14> ensure the wallet discloses "name"
and "age_over_18", and that "age_over_18" equals true.  The "email"
claim is requested but not required; the OP <bcp14>SHOULD</bcp14> request it from
the wallet but <bcp14>MUST NOT</bcp14> fail if the wallet does not disclose it.</t>
        <t>The following is a non-normative example requesting nested claims
from a PID credential:</t>
        <sourcecode type="json"><![CDATA[
{
  "id_token": {
    "requested_credential_sets": [
      {
        "pid": {
          "essential": true,
          "claims": [
            {"path": ["name"]},
            {"path": ["address", "street_address"]},
            {"path": ["address", "country"], "value": "SE"}
          ]
        }
      }
    ]
  }
}
]]></sourcecode>
        <t>If the wallet presents multiple credentials of the same type (e.g.,
two EHICs for different family members), the OP returns all of them
in the array.  The RP is responsible for selecting the appropriate
credential by inspecting the returned claims (for example, matching
on name or date of birth against the authenticated user's identity).</t>
      </section>
      <section anchor="consuming-credential-claims">
        <name>Consuming Credential Claims</name>
        <t>The "presented_credentials" claim structure is defined in
<xref target="presented-credentials-claim"/>.  The RP <bcp14>MUST</bcp14> parse the claim according to that
definition.  Specifically, the RP <bcp14>MUST</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Check for the presence of the "presented_credentials" claim.  If
the claim was requested as essential and is absent, the RP <bcp14>SHOULD</bcp14>
treat the authentication as failed.</t>
          </li>
          <li>
            <t>Parse the "presented_credentials" array and extract the
Credential Set objects relevant to its use case.</t>
          </li>
          <li>
            <t>Validate that the expected claims are present in each Credential
Entry's "claims" object.  If the RP specified a "value"
constraint for a claim, verify that the returned value matches.</t>
          </li>
        </ol>
        <t>The RP <bcp14>MUST NOT</bcp14> assume that all requested scopes will be present in
the response; the user may have declined to present certain
credentials.  The RP <bcp14>MUST</bcp14> ignore unrecognised credential keys and
unrecognised members within Credential Entry objects.</t>
      </section>
      <section anchor="trust-model">
        <name>Trust Model</name>
        <t>The RP places trust in the OP to have correctly verified the
presented credentials.  The RP does not interact with the wallet or
credential issuer directly.  The trust relationship between the RP
and the OP is established through standard OIDC mechanisms (client
registration, token validation, TLS).</t>
      </section>
      <section anchor="liability-and-accountability">
        <name>Liability and Accountability</name>
        <t>The bridge architecture shifts credential verification responsibility
from the RP to the OP.  This has implications for liability that
deployments <bcp14>MUST</bcp14> consider.</t>
        <t>The OP is the sole party that interacts with the wallet and verifies
credential authenticity, revocation status, and holder binding.  The
RP relies entirely on the OP's assertion that the credential claims
are valid.  If the OP incorrectly accepts a forged, expired, or
revoked credential, the RP has no independent means of detecting
this.</t>
        <t>Deployments <bcp14>SHOULD</bcp14> establish clear agreements between the OP operator
and RPs that address:</t>
        <ul spacing="normal">
          <li>
            <t>The OP's obligations regarding credential verification (e.g.,
which trust frameworks it enforces, whether it checks revocation).</t>
          </li>
          <li>
            <t>Liability allocation when the OP accepts a credential that turns
out to be invalid or fraudulent.</t>
          </li>
          <li>
            <t>The OP's obligations to communicate changes to its verification
policy that may affect RP authorization decisions.</t>
          </li>
          <li>
            <t>Audit and logging requirements that allow after-the-fact review of
verification decisions.</t>
          </li>
        </ul>
        <t>The "verification" metadata in the Credential Entry
(<xref target="credential-entry-object"/>) provides a technical mechanism for the OP
to communicate verification details to the RP.  However, the
"verification" object does not constitute a legal guarantee.  RPs
operating in regulated environments (e.g., healthcare, finance)
<bcp14>SHOULD</bcp14> require contractual assurances from the OP in addition to the
technical signals provided by this specification.</t>
      </section>
    </section>
    <section anchor="openid-provider-requirements">
      <name>OpenID Provider Requirements</name>
      <section anchor="presented-credentials-claim">
        <name>The presented_credentials Claim</name>
        <t>The following is a non-normative example of an OIDC ID Token
containing the "presented_credentials" claim with a credential set
containing two credentials:</t>
        <sourcecode type="json"><![CDATA[
{
  "iss": "https://issuer.example.org",
  "sub": "user@example.org",
  "iat": 1722772800,
  "exp": 1722859200,
  "presented_credentials": [
    {
      "ehic": [
        {
          "type": "https://credential.example.org/ehic/1.0",
          "issuer": "https://svs.example.se",
          "valid_from": 1709251200,
          "valid_until": 1740787200,
          "verified_at": 1722772700,
          "verification": {
            "holder_binding": "key_binding"
          },
          "claims": {
            "name": "John Doe",
            "dob": "1990-01-01",
            "ehic_number": "1234567890"
          }
        }
      ],
      "pda1": [
        {
          "type": "https://credential.example.org/pda1/1.0",
          "issuer": "https://tax.example.se",
          "valid_from": 1709251200,
          "valid_until": 1740787200,
          "verified_at": 1722772700,
          "verification": {
            "holder_binding": "key_binding"
          },
          "claims": {
            "name": "John Doe",
            "dob": "1990-01-01",
            "pda1_number": "0987654321",
            "employer": {
              "name": "Example Corp AB",
              "country": "SE"
            }
          }
        }
      ]
    }
  ]
}
]]></sourcecode>
        <section anchor="presented-credentials-array">
          <name>The presented_credentials Array</name>
          <t>The "presented_credentials" claim is a top-level JSON array included
in the OIDC ID Token or UserInfo response.  It contains credential
data obtained via a credential presentation flow (e.g., OpenID4VP,
DIDComm), re-packaged for consumption by OIDC Relying Parties.</t>
          <t>The array contains one or more Credential Set objects.  Each
Credential Set is a JSON object where each key is a scope value
corresponding to a credential type and each value is a JSON array of
Credential Entry objects as defined in <xref target="credential-entry-object"/>.</t>
          <t>Within a Credential Set:</t>
          <ul spacing="normal">
            <li>
              <t>Each key <bcp14>MUST</bcp14> be unique.</t>
            </li>
            <li>
              <t>Each value (array) <bcp14>MUST</bcp14> contain at least one Credential Entry.
Multiple entries indicate the wallet presented more than one
credential of that type.</t>
            </li>
          </ul>
          <t>The outer array <bcp14>MUST</bcp14> contain at least one Credential Set.  In most
deployments a single set is returned; multiple sets are possible when
the RP requested alternatives (see <xref target="requesting-credential-claims"/>).</t>
          <t>Additional members within a Credential Set <bcp14>MAY</bcp14> be present.
Implementations that do not recognise additional members <bcp14>MUST</bcp14> ignore
them.</t>
        </section>
        <section anchor="credential-entry-object">
          <name>Credential Entry Object</name>
          <t>Each Credential Entry object represents a single credential presented
during the presentation flow.  It <bcp14>MUST</bcp14> contain the following members:</t>
          <dl>
            <dt>type</dt>
            <dd>
              <t>A string identifying the credential type.  The value is protocol-
specific: for SD-JWT VC credentials it is the Verifiable Credential
Type (vct), for mdoc credentials it is the docType, and for other
formats it is whatever type identifier the credential format
defines.  The OP <bcp14>MUST</bcp14> set this field based on the presented
credential.</t>
            </dd>
            <dt>claims</dt>
            <dd>
              <t>A JSON object <xref target="RFC8259"/> containing the disclosed claims from the
credential.  Each key is a claim name and each value is the claim
value.  Claim names are determined by the credential type and <bcp14>MUST</bcp14>
be strings.  Claim values <bcp14>MAY</bcp14> be any valid JSON type.</t>
            </dd>
          </dl>
          <t>It <bcp14>MAY</bcp14> contain the following additional members:</t>
          <dl>
            <dt>issuer</dt>
            <dd>
              <t>A string identifying the entity that issued the credential.  For
SD-JWT VC credentials this is the "iss" claim value, for mdoc
credentials it is the issuing authority identifier.  The OP <bcp14>SHOULD</bcp14>
populate this field to allow the RP to make issuer-aware
authorization decisions.</t>
            </dd>
            <dt>valid_from</dt>
            <dd>
              <t>A NumericDate (as defined in <xref target="RFC7519"/>) indicating when the
credential became valid (i.e., the issuance or activation date).</t>
            </dd>
            <dt>valid_until</dt>
            <dd>
              <t>A NumericDate indicating when the credential expires.  The OP
<bcp14>MUST NOT</bcp14> include credentials that have already expired at the time
of presentation.</t>
            </dd>
            <dt>verified_at</dt>
            <dd>
              <t>A NumericDate indicating when the OP verified the credential
during the presentation flow.  This allows the RP to assess the
freshness of the verification relative to its own requirements.</t>
            </dd>
            <dt>verification</dt>
            <dd>
              <t>A JSON object providing metadata about the verification the OP
performed on the credential.  This object <bcp14>MAY</bcp14> contain the
following members:
</t>
              <dl>
                <dt>holder_binding</dt>
                <dd>
                  <t>A string describing the mechanism used to verify that the
presenter is the legitimate holder of the credential.  Values
are taken from the "Credential Holder Binding Methods" registry
defined in <xref target="holder-binding-registry"/>.</t>
                </dd>
              </dl>
              <t>Additional members within the "verification" object <bcp14>MAY</bcp14> be present.
Implementations that do not recognise additional members <bcp14>MUST</bcp14>
ignore them.</t>
            </dd>
          </dl>
          <t>The following is a non-normative example of a Credential Entry with
nested claims, as might appear in a PID credential:</t>
          <sourcecode type="json"><![CDATA[
{
  "type": "urn:eu.europa.ec.eudi:pid:1",
  "issuer": "https://pid.example.gov.se",
  "valid_from": 1709251200,
  "valid_until": 1740787200,
  "verified_at": 1722772700,
  "verification": {
    "holder_binding": "key_binding"
  },
  "claims": {
    "family_name": "Doe",
    "given_name": "John",
    "birth_date": "1990-01-01",
    "address": {
      "street_address": "123 Main St",
      "locality": "Stockholm",
      "postal_code": "11122",
      "country": "SE"
    },
    "age_over_18": true,
    "nationalities": [
      "SE",
      "NO"
    ]
  }
}
]]></sourcecode>
          <t>Additional members <bcp14>MAY</bcp14> be present.  Implementations that do not
recognise additional members <bcp14>MUST</bcp14> ignore them.</t>
        </section>
      </section>
      <section anchor="discovery">
        <name>Discovery</name>
        <t>An OP that supports this bridge mechanism <bcp14>MUST</bcp14> include
"presented_credentials" in the "claims_supported" list in its OpenID
Connect Discovery <xref target="OpenID.Discovery"/> metadata document.</t>
        <t>The OP <bcp14>MUST</bcp14> include a "credential_presentations_supported" member
in its discovery metadata.  This is a JSON object where each key is
a scope value that the RP can use in the authorization request, and
each value is an object describing the credential type configuration.
Each configuration object <bcp14>MUST</bcp14> contain at minimum:</t>
        <dl>
          <dt>format</dt>
          <dd>
            <t>A string identifying the credential format (e.g., "dc+sd-jwt",
"mso_mdoc").</t>
          </dd>
          <dt>type</dt>
          <dd>
            <t>A string identifying the credential type.  For SD-JWT VC
credentials this is the vct value; for mdoc credentials this is
the docType.</t>
          </dd>
        </dl>
        <t>The OP uses this metadata to translate the RP's scope request into
the correct credential query (e.g., a DCQL query with the
appropriate "vct_values" or "doctype_value") toward the wallet.
The Credential Entry "type" field in the response <bcp14>MUST</bcp14> be populated
from the presented credential itself and <bcp14>MUST</bcp14> match the "type" value
declared in this mapping.</t>
        <t>The following is a non-normative example of an RP discovering the
OP's supported credential types:</t>
        <sourcecode type="http"><![CDATA[
GET /.well-known/openid-configuration HTTP/1.1
Host: op.example.org
]]></sourcecode>
        <sourcecode type="http"><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
  "issuer": "https://op.example.org",
  "authorization_endpoint": "https://op.example.org/authorize",
  "token_endpoint": "https://op.example.org/token",
  "userinfo_endpoint": "https://op.example.org/userinfo",
  "jwks_uri": "https://op.example.org/jwks.json",
  "credential_presentations_supported": {
    "ehic": {
      "format": "dc+sd-jwt",
      "type": "urn:eu.europa.ec.eudi:ehic:1"
    },
    "pda1": {
      "format": "dc+sd-jwt",
      "type": "urn:eu.europa.ec.eudi:pda1:1"
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="authentication-flow">
        <name>Authentication Flow</name>
        <t>When the OP receives an OIDC Authentication Request that includes
credential type scopes (and optionally a "requested_credential_sets"
claims parameter for fine-grained control), it <bcp14>MUST</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Validate that each credential type scope corresponds to a key in
the OP's "credential_presentations_supported" metadata.  The OP
<bcp14>MUST</bcp14> ignore any credential type scope that is not present in its
metadata.  If none of the requested credential scopes are
supported, the OP <bcp14>MUST</bcp14> return an OIDC error response.</t>
          </li>
          <li>
            <t>Initiate a credential presentation request to the user's wallet
for the supported credential types, using the presentation
protocol supported by the deployment.</t>
          </li>
          <li>
            <t>Verify the presented credentials according to the applicable
trust framework.</t>
          </li>
          <li>
            <t>Extract the disclosed claims from each verified credential.</t>
          </li>
          <li>
            <t>Construct the "presented_credentials" object as defined in
<xref target="presented-credentials-array"/>.</t>
          </li>
          <li>
            <t>Include the "presented_credentials" claim in the ID Token, the
UserInfo response, or both, depending on the OP's policy and the
size considerations described in <xref target="claim-set-size-limits"/>.</t>
          </li>
        </ol>
        <t>Common presentation protocols include OpenID4VP <xref target="OpenID4VP"/> and
DIDComm Present Proof.  The choice of protocol is a deployment
decision and does not affect the "presented_credentials" format
returned to the RP.</t>
      </section>
      <section anchor="credential-mapping">
        <name>Credential Mapping</name>
        <t>The OP uses the "credential_presentations_supported" discovery
metadata to translate scopes into credential queries.  For each
credential type scope in the authorization request, the OP looks up
the corresponding key in "credential_presentations_supported" and
uses the "format" and "type" values to construct the presentation
request.  The same key is used as the DCQL "id" and as the key in
the "presented_credentials" response.</t>
        <t>The binding is:</t>
        <ul spacing="normal">
          <li>
            <t>The key in "credential_presentations_supported" (e.g., "ehic")
is the scope value the RP includes in the authorization request.</t>
          </li>
          <li>
            <t>The OP <bcp14>MUST</bcp14> use this same value as the "id" in the DCQL
Credential Query.</t>
          </li>
          <li>
            <t>The OP <bcp14>MUST</bcp14> use the "format" and "type" from the configuration
entry to populate the DCQL "format" and "meta" fields.</t>
          </li>
          <li>
            <t>The OP <bcp14>MUST</bcp14> use this same value as the key in the
"presented_credentials" response.</t>
          </li>
        </ul>
        <t>For example, given the following discovery metadata:</t>
        <sourcecode type="json"><![CDATA[
{
  "credential_presentations_supported": {
    "ehic": {
      "format": "dc+sd-jwt",
      "type": "urn:eu.europa.ec.eudi:ehic:1"
    },
    "pda1": {
      "format": "dc+sd-jwt",
      "type": "urn:eu.europa.ec.eudi:pda1:1"
    }
  }
}
]]></sourcecode>
        <t>and an RP request with <tt>scope=openid ehic pda1</tt>, the OP constructs:</t>
        <sourcecode type="json"><![CDATA[
{
  "credentials": [
    {
      "id": "ehic",
      "format": "dc+sd-jwt",
      "meta": { "vct_values": ["urn:eu.europa.ec.eudi:ehic:1"] },
      "claims": []
    },
    {
      "id": "pda1",
      "format": "dc+sd-jwt",
      "meta": { "vct_values": ["urn:eu.europa.ec.eudi:pda1:1"] },
      "claims": []
    }
  ]
}
]]></sourcecode>
        <t>The wallet returns a VP Token keyed by these same "id" values,
allowing the OP to map results back to the corresponding scope.</t>
        <t>The OP <bcp14>MUST</bcp14> use the scope value as the key within the
"presented_credentials" response object.  For example, if the RP
requested scope "ehic", the resulting entry <bcp14>MUST</bcp14> be keyed as "ehic".
This ensures a predictable, stable mapping between the RP's request
and the response.</t>
        <t>The OP <bcp14>MUST NOT</bcp14> include claims that were not disclosed by the wallet.
The OP <bcp14>MUST NOT</bcp14> modify claim values during the mapping.</t>
        <t>When the RP uses the claims-based request mechanism (with explicit
"path" entries), the OP <bcp14>MUST</bcp14> include only the requested claims in the
Credential Entry's "claims" object.  Even if the wallet discloses
additional claims (for example, because the credential format does
not support selective disclosure), the OP <bcp14>MUST NOT</bcp14> relay unrequested
claims to the RP.  This ensures data minimization regardless of the
underlying credential format's selective disclosure capabilities.</t>
        <t>When the RP uses scope-only (no "requested_credential_sets" claims
parameter), the OP includes all claims disclosed by the wallet, since
the RP did not express a preference for specific claims.</t>
        <t>The OP <bcp14>MUST</bcp14> enforce claim-level constraints specified in the
"claims" array:</t>
        <ul spacing="normal">
          <li>
            <t>If a claim query has "essential": true (or the default applies)
and the wallet does not disclose the claim identified by "path",
the credential <bcp14>MUST</bcp14> be treated as not satisfying the request.</t>
          </li>
          <li>
            <t>If a claim query specifies a "value" member and the disclosed
value does not exactly match (using JSON value equality as
defined in <xref target="RFC8259"/>), the credential <bcp14>MUST</bcp14> be treated as not
satisfying the request.</t>
          </li>
          <li>
            <t>Claim queries with "essential": false that are not disclosed by
the wallet <bcp14>MAY</bcp14> be omitted from the Credential Entry without
failing the request.</t>
          </li>
        </ul>
        <t>The OP translates each "path" array directly into the corresponding
DCQL Claims Path Pointer when constructing the presentation query
toward the wallet.</t>
        <t>The OP is responsible for translating the RP's OIDC-level request
(scopes, claims parameter) into a protocol-specific credential query
directed at the wallet.  For example, when using OpenID4VP the OP
would construct a DCQL (Digital Credentials Query Language) query
matching the requested credential types; when using DIDComm the OP
would build a Present Proof request.  This translation is deployment-
specific and outside the scope of this specification.  The OP <bcp14>MUST</bcp14>
document the mapping between OIDC scopes and the credential types
they resolve to, either in its discovery metadata or in out-of-band
documentation.</t>
        <t>When the RP's request includes a "value" constraint on a claim, the
OP <bcp14>SHOULD</bcp14> propagate this constraint to the wallet where the
presentation protocol supports it.  The RP's "path" arrays map
directly to DCQL Claims Path Pointers, and the "value" member maps
to the DCQL "values" array.  For example, an RP request containing:</t>
        <sourcecode type="json"><![CDATA[
"claims": [
  { "path": ["name"] },
  { "path": ["address", "country"], "value": "SE" }
]
]]></sourcecode>
        <t>would translate to the following DCQL Claims Query entries:</t>
        <sourcecode type="json"><![CDATA[
{
  "credentials": [
    {
      "id": "ehic",
      "format": "dc+sd-jwt",
      "meta": {
        "vct_values": [
          "urn:credential:ehic"
        ]
      },
      "claims": [
        {"path": ["name"]},
        {"path": ["address", "country"], "values": ["SE"]}
      ]
    }
  ]
}
]]></sourcecode>
        <t>However, DCQL value matching is defined as best-effort: the wallet
<bcp14>SHOULD</bcp14> filter on the constraint but is not required to do so (see
Section 6.4.1 of <xref target="OpenID4VP"/>).  Consequently, the OP <bcp14>MUST NOT</bcp14> rely
on the wallet to enforce value constraints and <bcp14>MUST</bcp14> always validate
disclosed claim values against the RP's "value" requirements after
receiving the presentation.  Propagating the constraint to the wallet
remains useful as a privacy optimisation, because it allows the
wallet to avoid disclosing credentials that would not satisfy the
request.</t>
        <t>The OIDC request model (scopes and the "claims" parameter) is
intentionally simpler than the query languages available in
presentation protocols (e.g., DCQL in OpenID4VP).  This means that
certain constraints expressible in a presentation query -- such as
issuer restrictions, issuance date filters, or compound field
requirements -- cannot be communicated by the RP.  The OP <bcp14>MUST</bcp14> apply
its own policy to resolve these edge cases (for example, by selecting
the most recent matching credential or by restricting accepted
issuers via configuration).  The OP <bcp14>SHOULD</bcp14> document any such policies
so that RPs can anticipate the resulting behaviour.</t>
        <t>The structure of the "presented_credentials" claim <bcp14>MUST</bcp14> be
independent of the credential presentation protocol used between the
OP and the wallet.  Whether the OP collected credentials via
OpenID4VP, DIDComm, or any other mechanism, the resulting claim
format <bcp14>MUST</bcp14> conform to this specification.  The RP <bcp14>MUST NOT</bcp14> need to
be aware of which presentation protocol was used.</t>
      </section>
    </section>
    <section anchor="limitations-and-considerations">
      <name>Limitations and Considerations</name>
      <section anchor="claim-set-size-limits">
        <name>Claim Set Size Limits</name>
        <t>OIDC ID Tokens are typically passed as JWTs <xref target="RFC7519"/> in HTTP headers
or URL fragments, which impose practical size limits.  Browser URL
length limits are commonly around 2048 bytes, and many HTTP servers
reject headers exceeding 8192 bytes.  When multiple credentials with
many disclosed claims are included in the "presented_credentials"
object, the resulting token may exceed these limits.</t>
        <t>Implementations <bcp14>SHOULD</bcp14> consider the following mitigations:</t>
        <ul spacing="normal">
          <li>
            <t>Return credential claims via the UserInfo endpoint rather than
embedding them directly in the ID Token.</t>
          </li>
          <li>
            <t>Limit the number of disclosed claims to those requested by the
Relying Party via the OIDC "claims" parameter.</t>
          </li>
          <li>
            <t>Use token introspection or reference tokens where supported by the
deployment.</t>
          </li>
        </ul>
      </section>
      <section anchor="error-handling">
        <name>Error Handling</name>
        <t>The OP <bcp14>MUST</bcp14> handle the following failure scenarios gracefully:</t>
        <dl>
          <dt>Wallet rejection</dt>
          <dd>
            <t>The user declines to present credentials.  The OP <bcp14>MAY</bcp14> either omit
the "presented_credentials" claim entirely or return an OIDC error
response (e.g., "access_denied") depending on whether the
credential presentation was essential to the authentication.</t>
          </dd>
          <dt>Wallet timeout</dt>
          <dd>
            <t>The wallet does not respond within a reasonable time.  The OP
<bcp14>SHOULD</bcp14> treat this as equivalent to a rejection.</t>
          </dd>
          <dt>Invalid credentials</dt>
          <dd>
            <t>The wallet presents credentials that fail verification (expired,
revoked, untrusted issuer).  The OP <bcp14>MUST NOT</bcp14> include unverified
credential claims in the "presented_credentials" object.  The OP
<bcp14>MAY</bcp14> proceed without those credentials or fail the authentication.</t>
          </dd>
          <dt>Partial presentation</dt>
          <dd>
            <t>The wallet presents only a subset of the requested credentials.
The OP <bcp14>MUST</bcp14> include only the successfully verified credentials and
<bcp14>MUST NOT</bcp14> fabricate entries for missing credentials.</t>
          </dd>
        </dl>
      </section>
      <section anchor="scope-mapping">
        <name>Scope Mapping</name>
        <t>An OP <bcp14>MAY</bcp14> define custom OIDC scopes that map to specific credential
presentation requests.  For example, the scope "ehic" might trigger a
request for an EHIC credential with a predefined set of claims.</t>
        <t>When using scope-based mapping, the OP <bcp14>SHOULD</bcp14> document the mapping
between scopes and credential types in its discovery metadata or out-
of-band documentation.  The OP <bcp14>MUST</bcp14> ensure that the scope semantics
are stable and do not change unexpectedly for registered RPs.</t>
      </section>
      <section anchor="fresh-presentation">
        <name>Fresh Presentation Requirement</name>
        <t>Each OIDC Authentication Request that includes credential scopes
<bcp14>MUST</bcp14> result in a new credential presentation from the wallet.  The
OP <bcp14>MUST</bcp14> initiate a fresh presentation protocol transaction (e.g.,
OpenID4VP, DIDComm) for every authentication request and <bcp14>MUST NOT</bcp14>
reuse credentials from a previous presentation.</t>
        <t>The OP <bcp14>MUST NOT</bcp14> store, cache, or persist credential data beyond the
scope of the current authentication transaction.  Once the OP has
constructed the ID Token or UserInfo response and delivered it to
the RP, it <bcp14>MUST</bcp14> discard the credential claims.  This ensures that
credential freshness is guaranteed and that the OP does not become
an unnecessary repository of sensitive personal data.</t>
      </section>
      <section anchor="scope-of-this-specification">
        <name>Scope of This Specification</name>
        <t>This specification defines the data format of the
"presented_credentials" claim, the mechanism for requesting and
returning credential claims via OIDC, and the responsibilities of the
OP and RP in that exchange.  The following aspects are explicitly out
of scope:</t>
        <ul spacing="normal">
          <li>
            <t><em>Credential validation policy.</em> This specification does not define
which issuers to trust, which revocation mechanisms to check, or
what trust frameworks to apply.  These decisions are deployment-
specific and determined by the OP operator.</t>
          </li>
          <li>
            <t><em>Business logic and authorization decisions.</em> How the RP
interprets the received claims -- for example, whether an EHIC
credential grants access to a healthcare service, or whether a
PDA1 is sufficient for a given transaction -- is entirely the RP's
responsibility and outside this specification.</t>
          </li>
          <li>
            <t><em>Credential issuance.</em> This specification deals only with
presentation of existing credentials, not with the issuance of new
credentials (which is covered by OpenID4VCI).</t>
          </li>
          <li>
            <t><em>Wallet implementation.</em> The interaction between the OP and the
wallet uses a presentation protocol such as OpenID4VP or DIDComm.
This specification does not mandate a specific protocol and does
not impose additional requirements on wallet implementations.</t>
          </li>
          <li>
            <t><em>User consent and identity matching.</em> How the OP associates a
credential presentation with an OIDC subject identifier, and how
user consent is obtained, are implementation details left to the
OP.</t>
          </li>
        </ul>
        <t>In summary, this specification provides the plumbing for transporting
verified credential claims through OIDC.  Everything above that layer
-- trust decisions, access control, and business rules -- is the domain
of the deploying parties.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="credential-replay">
        <name>Credential Replay</name>
        <t>The OP <bcp14>MUST</bcp14> ensure that credential presentations are bound to the
current authentication session.  The OP <bcp14>SHOULD</bcp14> use nonces in the
OpenID4VP request to prevent replay of previously captured VP Tokens.</t>
        <t>The RP <bcp14>MUST</bcp14> validate standard JWT claims ("iat", "exp", "nonce") in
the ID Token to ensure freshness of the "presented_credentials"
claim.</t>
      </section>
      <section anchor="token-leakage">
        <name>Token Leakage</name>
        <t>ID Tokens containing "presented_credentials" may carry sensitive
personal data (e.g., national ID numbers, health information).
Implementations <bcp14>MUST</bcp14> use TLS for all token transmissions.  The OP
<bcp14>SHOULD</bcp14> prefer delivering credential claims via the UserInfo endpoint
(which uses a back-channel request) rather than embedding them in the
ID Token (which may be exposed in browser history or logs).</t>
      </section>
      <section anchor="claim-injection">
        <name>Claim Injection</name>
        <t>The OP <bcp14>MUST NOT</bcp14> allow external parties to inject or modify claims
within the "presented_credentials" object.  The OP <bcp14>MUST</bcp14> populate this
claim exclusively from verified credential presentations.  The ID
Token <bcp14>MUST</bcp14> be signed by the OP to protect integrity.</t>
      </section>
      <section anchor="trust-list-fetching">
        <name>Trust List Fetching</name>
        <t>When the OP dereferences "trusted_issuer_lists" URIs provided by an
RP, it <bcp14>MUST</bcp14> enforce the following safeguards:</t>
        <ul spacing="normal">
          <li>
            <t>The OP <bcp14>MUST</bcp14> only fetch trust lists over HTTPS.</t>
          </li>
          <li>
            <t>The OP <bcp14>MUST NOT</bcp14> dereference arbitrary URIs provided by an RP.
The OP <bcp14>MUST</bcp14> restrict which trust list URIs it is willing to fetch
to prevent Server-Side Request Forgery (SSRF).  The mechanism for
this restriction (e.g., an allowlist, domain policy) is a
deployment decision and outside the scope of this specification.</t>
          </li>
          <li>
            <t>The OP <bcp14>MUST</bcp14> impose size limits on fetched trust list documents to
prevent resource exhaustion.</t>
          </li>
          <li>
            <t>The OP <bcp14>SHOULD</bcp14> cache trust lists and enforce a minimum refresh
interval to limit the impact of a compromised or unavailable trust
list endpoint.</t>
          </li>
          <li>
            <t>If a trust list cannot be fetched or parsed, the OP <bcp14>MUST</bcp14> treat it
as if no issuers were listed in that list.  The OP <bcp14>MUST NOT</bcp14> fall
back to accepting all issuers.</t>
          </li>
        </ul>
      </section>
      <section anchor="privacy-considerations">
        <name>Privacy Considerations</name>
        <t>The bridge architecture introduces the OP as a party that observes
all credential claims presented by the user.  This creates a
correlation point.  Deployments <bcp14>SHOULD</bcp14> consider the following:</t>
        <ul spacing="normal">
          <li>
            <t>The OP <bcp14>SHOULD</bcp14> request only the minimum claims necessary to satisfy
the RP's request (selective disclosure).</t>
          </li>
          <li>
            <t>The OP <bcp14>SHOULD NOT</bcp14> log or persist credential claims beyond what is
necessary for the authentication session.</t>
          </li>
          <li>
            <t>RPs <bcp14>SHOULD</bcp14> be aware that repeated presentations of the same
credential claims across sessions may enable correlation by the
OP.</t>
          </li>
          <li>
            <t>Where possible, deployments <bcp14>SHOULD</bcp14> use pairwise subject
identifiers to limit cross-RP correlation.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>The claim name "presented_credentials" was chosen to be protocol-
agnostic, clearly describing the content (credentials that were
presented) without implying a dependency on any particular
presentation protocol or namespace.</t>
      <section anchor="json-web-token-claims-registration">
        <name>JSON Web Token Claims Registration</name>
        <t>This specification requests registration of the following claim in
the IANA "JSON Web Token Claims" registry:</t>
        <dl>
          <dt>Claim Name</dt>
          <dd>
            <t>"presented_credentials"</t>
          </dd>
          <dt>Claim Description</dt>
          <dd>
            <t>Digital credential claims obtained via a credential presentation
flow, structured for consumption by OIDC Relying Parties.</t>
          </dd>
          <dt>Change Controller</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s)</dt>
          <dd>
            <t><xref target="presented-credentials-array"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="openid-connect-discovery-metadata-registration">
        <name>OpenID Connect Discovery Metadata Registration</name>
        <t>This specification requests registration of the following metadata
parameter:</t>
        <dl>
          <dt>Metadata Name</dt>
          <dd>
            <t>"credential_presentations_supported"</t>
          </dd>
          <dt>Metadata Description</dt>
          <dd>
            <t>A JSON object describing the credential types the OP can collect
via credential presentation and expose as OIDC claims.</t>
          </dd>
          <dt>Change Controller</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s)</dt>
          <dd>
            <t><xref target="discovery"/> of this document</t>
          </dd>
        </dl>
      </section>
      <section anchor="holder-binding-registry">
        <name>Credential Holder Binding Methods Registry</name>
        <t>This specification establishes the "Credential Holder Binding
Methods" registry.  The registration policy is "Specification
Required" as defined in Section 4.6 of <xref target="RFC8126"/>.</t>
        <t>Each entry in the registry contains the following fields:</t>
        <dl>
          <dt>Method Name</dt>
          <dd>
            <t>A short string identifying the holder binding method.</t>
          </dd>
          <dt>Description</dt>
          <dd>
            <t>A brief description of the method.</t>
          </dd>
          <dt>Change Controller</dt>
          <dd>
            <t>The entity responsible for the registration.</t>
          </dd>
          <dt>Specification Document(s)</dt>
          <dd>
            <t>Reference to the specification defining the method.</t>
          </dd>
        </dl>
        <t>The initial contents of the registry are:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Method Name</th>
              <th align="left">Description</th>
              <th align="left">Change Controller</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">key_binding</td>
              <td align="left">Cryptographic proof of possession of a private key bound to the credential</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="credential-entry-object"/> of this document</td>
            </tr>
            <tr>
              <td align="left">biometric</td>
              <td align="left">Biometric verification of the presenter against data bound to the credential</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="credential-entry-object"/> of this document</td>
            </tr>
            <tr>
              <td align="left">pin</td>
              <td align="left">Verification of a PIN or passcode known to the credential holder</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="credential-entry-object"/> of this document</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="OpenID.Core" target="https://openid.net/specs/openid-connect-core-1_0.html">
          <front>
            <title>OpenID Connect Core 1.0</title>
            <author initials="N." surname="Sakimura" fullname="N. Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley" fullname="J. Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones" fullname="M. Jones">
              <organization/>
            </author>
            <author initials="B. de" surname="Medeiros" fullname="B. de Medeiros">
              <organization/>
            </author>
            <author initials="C." surname="Mortimore" fullname="C. Mortimore">
              <organization/>
            </author>
            <date year="2014" month="November"/>
          </front>
        </reference>
        <reference anchor="OpenID.Discovery" target="https://openid.net/specs/openid-connect-discovery-1_0.html">
          <front>
            <title>OpenID Connect Discovery 1.0</title>
            <author initials="N." surname="Sakimura" fullname="N. Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley" fullname="J. Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones" fullname="M. Jones">
              <organization/>
            </author>
            <author initials="E." surname="Jay" fullname="E. Jay">
              <organization/>
            </author>
            <date year="2014" month="November"/>
          </front>
        </reference>
        <reference anchor="OpenID4VP" target="https://openid.net/specs/openid-4-verifiable-presentations-1_0.html">
          <front>
            <title>OpenID for Verifiable Presentations (OpenID4VP) 1.0</title>
            <author initials="O." surname="Terbu" fullname="O. Terbu">
              <organization/>
            </author>
            <author initials="T." surname="Lodderstedt" fullname="T. Lodderstedt">
              <organization/>
            </author>
            <author initials="K." surname="Yasuda" fullname="K. Yasuda">
              <organization/>
            </author>
            <author initials="T." surname="Looker" fullname="T. Looker">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="SD-JWT.VC" target="https://www.ietf.org/archive/id/draft-ietf-oauth-sd-jwt-vc-05.html">
          <front>
            <title>SD-JWT-based Verifiable Credentials (SD-JWT VC)</title>
            <author initials="O." surname="Terbu" fullname="O. Terbu">
              <organization/>
            </author>
            <author initials="D." surname="Fett" fullname="D. Fett">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="ISO.18013-5" target="https://www.iso.org/standard/69084.html">
          <front>
            <title>Personal identification -- ISO-compliant driving licence -- Part 5: Mobile driving licence (mDL) application</title>
            <author>
              <organization>ISO/IEC</organization>
            </author>
            <date year="2021"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 1310?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
