<?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-00" 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-00"/>
    <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="06"/>
    <keyword>verifiable credentials</keyword>
    <keyword>OpenID Connect</keyword>
    <keyword>OpenID4VP</keyword>
    <keyword>digital credentials</keyword>
    <keyword>OIDC bridge</keyword>
    <abstract>
      <?line 85?>

<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>
  </front>
  <middle>
    <?line 95?>

<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  |        OP        | 2. Present  |          |
|   RP   | -------------> |     (Bridge)     | ----------> |  Wallet  |
|        |                |                  | <---------- |          |
|        |                |                  | 3. Response |          |
|        |                |                  |             +----------+
|        |                | 4. Verify &      |
|        | 5. ID Token    |    extract claims|
|        | <------------- |                  |
+--------+                +------------------+
]]></artwork>
      <t>The presentation protocol (step 2-3) is out of scope.
The OP may use OpenID4VP, DIDComm, or any other mechanism.</t>
      <t>Flow:</t>
      <ol spacing="normal" type="1"><li>
          <t>RP sends OIDC AuthN Request to OP (credential scopes).</t>
        </li>
        <li>
          <t>OP requests credential presentation from wallet.</t>
        </li>
        <li>
          <t>Wallet responds with disclosed credentials.</t>
        </li>
        <li>
          <t>OP verifies credentials and extracts claims.</t>
        </li>
        <li>
          <t>OP returns ID Token/UserInfo with presented_credentials.</t>
        </li>
      </ol>
    </section>
    <section anchor="terminology">
      <name>Terminology</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?>

</section>
    <section anchor="op-verifierbridge-requirements">
      <name>OP (Verifier/Bridge) 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": [
        {
          "format": "vc+sd-jwt",
          "vct": "https://credentials.example.org/ehic",
          "claims": {
            "name": "John Doe",
            "dob": "1990-01-01",
            "ehic_number": "1234567890"
          }
        }
      ],
      "pda1": [
        {
          "format": "vc+sd-jwt",
          "vct": "https://credentials.example.org/pda1",
          "claims": {
            "name": "John Doe",
            "dob": "1990-01-01",
            "pda1_number": "0987654321"
          }
        }
      ]
    }
  ]
}
]]></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 member:</t>
          <dl>
            <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>A Credential Entry object <bcp14>MAY</bcp14> contain the following additional
members:</t>
          <dl>
            <dt>format</dt>
            <dd>
              <t>A string indicating the original credential format (e.g., "vc+sd-
jwt", "mso_mdoc").  If omitted, the format is unspecified.</t>
            </dd>
            <dt>vct</dt>
            <dd>
              <t>A string containing the Verifiable Credential Type identifier, as
defined in the credential's metadata.</t>
            </dd>
          </dl>
          <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>SHOULD</bcp14> also advertise the credential types it can collect by
listing the corresponding scopes in the "scopes_supported" discovery
metadata field (e.g., "ehic", "pda1").</t>
        <t>The OP <bcp14>MAY</bcp14> additionally include a "presented_credentials_supported"
member in its discovery metadata.  The value is a JSON array of
objects, each containing at minimum a "scope" string and a "vct"
string, providing RPs with a machine-readable mapping between scopes
and credential types.</t>
      </section>
      <section anchor="authentication-flow">
        <name>Authentication Flow</name>
        <t>When the OP receives an OIDC Authentication Request that includes a
request for credentials (via the "requested_credentials" claims
parameter or a registered scope), it <bcp14>MUST</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Initiate a credential presentation request to the user's wallet
for the requested 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 <bcp14>MUST</bcp14> use the scope value as the key within the "credentials"
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>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>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="rp-relying-party-requirements">
      <name>RP (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 the appropriate credential type scopes in the OIDC
Authentication Request.  Each scope corresponds to a credential type
(e.g., "ehic", "pda1").  The presence of any credential type scope
signals to the OP that the "requested_credentials" claim parameter
applies.</t>
        <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 RP <bcp14>MAY</bcp14> use the "credential_sets" structure within the
"requested_credentials" claims request parameter to express
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.  The OP <bcp14>MUST</bcp14> fail the
authentication if any essential credential in the set cannot be
obtained.</t>
          </li>
          <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.</t>
          </li>
        </ul>
        <t>The following is a non-normative example requesting PID AND EHIC
together (both are required):</t>
        <sourcecode type="json"><![CDATA[
{
  "id_token": {
    "requested_credentials": {
      "credential_sets": [
        {
          "pid": { "essential": true, "claims": ["name"] },
          "ehic": { "essential": true, "claims": ["ehic_number"] }
        }
      ]
    }
  }
}
]]></sourcecode>
        <t>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>
        <sourcecode type="json"><![CDATA[
{
  "id_token": {
    "requested_credentials": {
      "credential_sets": [
        {
          "pid": { "essential": true, "claims": ["name"] }
        },
        {
          "ehic": { "essential": true, "claims": ["ehic_number"] }
        }
      ]
    }
  }
}
]]></sourcecode>
        <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_credentials": {
      "credential_sets": [
        {
          "pid": { "essential": true, "claims": ["name"] },
          "ehic": { "essential": false, "claims": ["ehic_number"] }
        }
      ]
    }
  }
}
]]></sourcecode>
        <t>If any credential marked essential is missing from the wallet's
response and no alternative set can be satisfied, the OP <bcp14>MUST</bcp14> return
an OIDC error response (e.g., "access_denied") rather than a partial
credential set.</t>
        <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 "credentials" object and extract the entries relevant
to its use case.</t>
          </li>
          <li>
            <t>Validate that the expected claims are present in each Credential
Entry's "claims" object.</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>
    <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="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="implementation-status">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in <xref target="RFC7942"/>.
The description of implementations in this section is intended to
assist the IETF in its decision processes in progressing drafts to
RFCs.</t>
      <section anchor="sunet-verifiable-credentials-platform">
        <name>SUNET Verifiable Credentials Platform</name>
        <dl>
          <dt>Organization</dt>
          <dd>
            <t>SUNET (Swedish University Computer Network)</t>
          </dd>
          <dt>Implementation</dt>
          <dd>
            <t>Open-source verifiable credentials platform including issuer,
verifier, and wallet components with an API gateway implementing
the OpenID4VP-to-OIDC bridge described in this document.</t>
          </dd>
          <dt>Description</dt>
          <dd>
            <t>The implementation supports SD-JWT VC <xref target="SD-JWT.VC"/> and mdoc
<xref target="ISO.18013-5"/> credential formats, exposes the
"presented_credentials" claim via both ID Token and UserInfo
endpoint, and has been deployed in production for European higher-
education credential use cases (EHIC, PDA1, micro-credentials).</t>
          </dd>
          <dt>Maturity</dt>
          <dd>
            <t>Production</t>
          </dd>
          <dt>Coverage</dt>
          <dd>
            <t>Implements all normative requirements of this specification.</t>
          </dd>
          <dt>Contact</dt>
          <dd>
            <t>masv@sunet.se</t>
          </dd>
          <dt>Source Code</dt>
          <dd>
            <t>https://github.com/SUNET/vc (open source, BSD-2-Clause)</t>
          </dd>
        </dl>
      </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="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 an OpenID4VP presentation,
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>presented_credentials_supported</t>
          </dd>
          <dt>Metadata Description</dt>
          <dd>
            <t>A JSON array describing the credential types the OP can collect
via OpenID4VP 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>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative 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="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <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 704?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9Vc63LcxpX+30/RS1WtSXtmRFJSJNHZbGhSLssriQxJ25VK
uVQYoGcGFgaYRQOkJ4pS+xD7APss+yj7JHu+c7obDcwMJSfZVFblKnMA9O30
uXzn0j0ej1WTN4U50XtntclM2eRJoS9rY+nPpMmrUjeVvnh5fqbPiiRfWv1V
nWdzs6eS6bQ2t/12/lP/TZo0Zl7V6xOdl7NKqaxKy2RJg2V1MmvG9taU1lbl
OA1djKs8S8dTbj8+PFS2nS5za2kezXpFDV++uPlale1yauoTlVH3JyqtSpqs
be2JburWKJrTI/XOrO+qOjtReqxvTZ3P8mRaGN0NZPHmYmXKl+f6rCpLkzbd
k8ffX+JHls/zhpY1bIUlyhSVStpmUdUYR2n6N2uLQpb4OpmXrdXXbo38tqrn
SZn/kel6oq+/e/Pihp+bZZIXJ3qZ2Nvf2rY0zcSazR5fmXymv60Wyc4O87qy
+uuqLTN+EvddUOOffmvxxYRabfb+bWUKfZWUc7usfmHfP1HTqGtVVvWSPrql
zdH66uuz46Oj5+7PZ0dPH/s/j5/wUyH55Kyq+XutPUP2d0fjA300OdzjjwLd
+d9YyyLeTPR18i5ftnUyePPthLgyyQqzHrx4PaGll8YOHn810ZnRr2njsa7B
y7OJfl3VTb6kKfEr5kT9pro14Ex9fHj0WJaS1HPTnOhF06zsycOHFS0pzya0
ww/tyqTWPRinskb6f23GR28PJ4tmWXS0Oc9tSn2TIN1HoPDV349KL+hxsv6b
kiDzq9ikA4nlVgLMqlp/3wl5rL2s3g9tDz5Gl4uJvjH1tB08vpnoV1WWmdo2
JmsGL/9ton+f2DYbUpIbVe9MHRHn+PD4l9Hk8bjTXeNVvKyOOAqqtS9vT58E
eXv6/PEx/rw+H3/7w83k+7M+AeXxeJpYk8Uk7HQ6EVA+0t+fHfwFxDuf6K9N
03wKFe7u7ia5aWZQIg+TOl3Qih7m2UMxFngzrjD22Gbjn+6a8W06PnziOeTl
9cXk6Nnh0aPxk/4SL2nfqpK0eM4rmuWpmLX/+Y//RCPiu+WqyJOyIaOU3+bl
XBd5asrU8BeXSd3oJ8T/1TQnugw/2V+evzrQyYp6kG63U4gWdILBHr58cdan
xNFuStiKCWGbhFRunT381fPDZ4/dnk8mE6XG47FOprapE7Jd6maRW00Gtl0a
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
3K5zcX5BqjDcnjlR/wvTGgEEpl8AAA==

-->

</rfc>
