[Openid-specs-ab] Call for Adoption for the OpenID Connect Key Binding Specification
Dick Hardt
dick.hardt at gmail.com
Mon Sep 29 11:27:57 UTC 2025
Aaron, thanks for your feedback. I want to make sure we’re aligned on what
the draft actually says.
You mention not supporting adoption because:
> The problematic language is the non-normative suggestion of using an ID
token as a bearer token to access resources at other domains. We should not
be encouraging this behavior even if it exists in the wild.
> I do not believe the draft should be adopted as is, because of the
language suggesting it is okay to use ID tokens directly across domains.
To clarify:
-
Neither the word *resource* nor *domain* appears in the draft.
-
The draft does *not* suggest using the ID Token as a bearer token.
-
The draft does *not* suggest using ID Tokens across domains.
If there is specific text that suggests otherwise, please point it out so
we can correct it.
We will add additional non-normative text that instructs readers to not use
the ID Token for access, as well as to not use the same keys for signing
other objects.
It sounds like you agree with Karl (co-author of *Identity Assertion
Authorization Grant*) that normative language around key binding is useful.
I hope with the clarifications above—and with the additional non-normative
guidance—we address your concerns about adoption.
/Dick
On Fri, Sep 26, 2025 at 11:33 PM Aaron Parecki via Openid-specs-ab <
openid-specs-ab at lists.openid.net> wrote:
> I do not support adoption of the draft as it currently stands, for similar
> reasons to the previous replies on this topic.
>
>
> The problematic language is the non-normative suggestion of using an ID
> token as a bearer token to access resources at other domains. We should not
> be encouraging this behavior even if it exists in the wild.
>
>
> However, I do have a use for binding a DPoP key to an ID Token. One
> application of the OAuth draft "Identity and Authorization Chaining Across
> Domains"
> https://datatracker.ietf.org/doc/draft-ietf-oauth-identity-chaining/ involves
> exchanging an initial token from the domain that issued it (using RFC8693
> Token Exchange) for a token that moves across domains and is later
> exchanged for an access token using RFC7523. This is further profiled by
> the draft "Identity Assertion Authorization Grant"
> https://datatracker.ietf.org/doc/draft-parecki-oauth-identity-assertion-authz-grant/ (currently
> in the middle of the working group adoption call), which specifies that the
> initial token is an identity assertion such as an ID token.
>
>
> In this flow, the OpenID Provider issues an ID token to a client. The
> client uses Token Exchange to exchange the ID token back at the OpenID
> Provider for a new JWT. It takes the new JWT to an authorization server in
> a different trust domain exchanging it for an OAuth access token.
>
>
> It would be valuable to be able to bind the ID token to the client using
> DPoP, which is possible using the method described in this OpenID draft.
> This use of the ID token doesn't have the problematic attribute of being
> used directly in another domain.
>
>
> I believe the sorts of cross-domain uses of ID tokens mentioned in the
> draft would likely be better accomplished using "Identity and Authorization
> Chaining Across Domains", which properly scopes the tokens to each trust
> domain.
>
>
> All this said, I do not believe the draft should be adopted as is, because
> of the language suggesting it is okay to use ID tokens directly across
> domains. I would not want an OIDF draft to endorse this behavior.
>
> Aaron Parecki
>
>
>
>
>
> On Fri, Sep 26, 2025 at 1:37 PM Ralph Bragg via Openid-specs-ab <
> openid-specs-ab at lists.openid.net> wrote:
>
>> *This message originated outside your organization.*
>>
>> ------------------------------
>>
>> Likewise, I do not support utilisation the id token In this way for the
>> reasons already raised. We’ve just had issues with multiple aud values
>> being identified as a significant source of vulnerability with PKJ so
>> extending / modifying an id tokens aud raises too many concerns for me as a
>> potential mitigation. I don’t believe that this token should be relied on
>> by any actor other than the intended audience.
>>
>> Ralph Bragg
>>
>> Chief Technology Officer
>>
>> M.
>>
>>
>>
>> +447890130559
>>
>> T.
>>
>>
>>
>> +44 20 4583 6770
>>
>> ralph.bragg at raidiam.com
>>
>>
>> ------------------------------
>> *From:* Openid-specs-ab <openid-specs-ab-bounces at lists.openid.net> on
>> behalf of Andrii Deinega via Openid-specs-ab <
>> openid-specs-ab at lists.openid.net>
>> *Sent:* Saturday, September 27, 2025 4:26:07 AM
>> *To:* Artifact Binding/Connect Working Group <
>> openid-specs-ab at lists.openid.net>
>> *Cc:* Andrii Deinega <andrii.deinega at gmail.com>
>> *Subject:* Re: [Openid-specs-ab] Call for Adoption for the OpenID
>> Connect Key Binding Specification
>>
>> I believe that any recipient of a JWT (in this case, an ID Token) should
>> immediately reject it if it isn't the intended audience (which is indicated
>> by the aud claim), regardless of whether cryptographic binding is present
>> or not. This alone makes the statement below too problematic for me.
>>
>> When an RP wants to prove to another system that it has authenticated a
>> user, it may present the ID Token as a bearer token. However, bearer tokens
>> are vulnerable to theft and replay attacks - if an attacker intercepts the
>> ID Token, they can impersonate the authenticated user to downstream systems
>> that accept a ID Token as a bearer token.
>>
>>
>> It's difficult to imagine multiple systems (recipients) sharing the same
>> value in the aud claim (this value must be a client_id of the RP per the
>> Core spec). It's fair to add the aud claim may contain an array with more
>> than one element, but it's also fair to say this practice is discouraged
>> (1) and comes with additional complexity and concerns (2).
>>
>> At the end of the day... I see a lot of value, and I see the reason why
>> people want to have the standard around "proving to another system that it
>> has authenticated a user," but I don't think that repurposing existing ID
>> Tokens for it is the right way to go.... I’d suggest, and actually love to
>> see - the use of SD JWT VCs (or other VCs) for this purpose instead.
>>
>> I haven’t reached the point where I need to "touch" Justin’s concerns...
>> I fully agree with him on them.
>>
>> All the best,
>> Andrii
>>
>> On Fri, Sep 26, 2025 at 9:05 AM Justin Richer via Openid-specs-ab <
>> openid-specs-ab at lists.openid.net> wrote:
>>
>> I do not support adoption of this work. The ID Token is not intended to
>> be a conveyable artifact, and using it as such is a security layer
>> boundary. It’s hard enough to get people to not use ID Tokens as Access
>> Tokens today, since a lot of developers see all JWTs as equivalent, really.
>> This work would make this problem significantly worse.
>>
>> — Justin
>>
>> On Sep 15, 2025, at 6:57 PM, Michael Jones via Openid-specs-ab <
>> openid-specs-ab at lists.openid.net> wrote:
>>
>> This starts a two-week call for feedback on whether to adopt the OpenID
>> Connect OpenID Connect Key Binding specification contributed to the working
>> group by Dick Hardt and Ethan Heilman as an OpenID Connect Working Group
>> specification. Please reply-all by Monday, September 29, 2025 saying
>> whether you are favor of adoption or not, also saying why.
>>
>> The specification was contributed at
>> https://lists.openid.net/pipermail/openid-specs-ab/2025-August/010890.html
>> <https://urldefense.com/v3/__https://lists.openid.net/pipermail/openid-specs-ab/2025-August/010890.html__;!!PwKahg!6QnHIKzhjBzjwwVrJqFfHF90LftISX-Hsr1obR0wAaEN3vBfUK_FDeluuf1qi3PARLAeMVkMdeDKDke1X_e_ZGJaQ8YWyonU$>.
>> It has been extensively discussed by the working group both on calls and on
>> the mailing list. From my observations of the discussion as a working
>> group chair, I believe that there is consensus that it would be useful to
>> have a standard solving the problem addressed by this specification.
>>
>> Writing as a working
>> group chair,
>> -- Mike
>>
>> _______________________________________________
>> Openid-specs-ab mailing list
>> Openid-specs-ab at lists.openid.net
>> https://lists.openid.net/mailman/listinfo/openid-specs-ab
>> <https://urldefense.com/v3/__https://lists.openid.net/mailman/listinfo/openid-specs-ab__;!!PwKahg!6QnHIKzhjBzjwwVrJqFfHF90LftISX-Hsr1obR0wAaEN3vBfUK_FDeluuf1qi3PARLAeMVkMdeDKDke1X_e_ZGJaQ2Sra7o3$>
>>
>>
>> _______________________________________________
>> Openid-specs-ab mailing list
>> Openid-specs-ab at lists.openid.net
>> https://lists.openid.net/mailman/listinfo/openid-specs-ab
>> <https://urldefense.com/v3/__https://lists.openid.net/mailman/listinfo/openid-specs-ab__;!!PwKahg!6QnHIKzhjBzjwwVrJqFfHF90LftISX-Hsr1obR0wAaEN3vBfUK_FDeluuf1qi3PARLAeMVkMdeDKDke1X_e_ZGJaQ2Sra7o3$>
>>
>> _______________________________________________
>> Openid-specs-ab mailing list
>> Openid-specs-ab at lists.openid.net
>> https://lists.openid.net/mailman/listinfo/openid-specs-ab
>>
> _______________________________________________
> Openid-specs-ab mailing list
> Openid-specs-ab at lists.openid.net
> https://lists.openid.net/mailman/listinfo/openid-specs-ab
On Fri, Sep 26, 2025 at 11:33 PM Aaron Parecki via Openid-specs-ab <
openid-specs-ab at lists.openid.net> wrote:
> I do not support adoption of the draft as it currently stands, for similar
> reasons to the previous replies on this topic.
>
>
> The problematic language is the non-normative suggestion of using an ID
> token as a bearer token to access resources at other domains. We should not
> be encouraging this behavior even if it exists in the wild.
>
>
> However, I do have a use for binding a DPoP key to an ID Token. One
> application of the OAuth draft "Identity and Authorization Chaining Across
> Domains"
> https://datatracker.ietf.org/doc/draft-ietf-oauth-identity-chaining/
> involves exchanging an initial token from the domain that issued it (using
> RFC8693 Token Exchange) for a token that moves across domains and is later
> exchanged for an access token using RFC7523. This is further profiled by
> the draft "Identity Assertion Authorization Grant"
> https://datatracker.ietf.org/doc/draft-parecki-oauth-identity-assertion-authz-grant/
> (currently in the middle of the working group adoption call), which
> specifies that the initial token is an identity assertion such as an ID
> token.
>
>
> In this flow, the OpenID Provider issues an ID token to a client. The
> client uses Token Exchange to exchange the ID token back at the OpenID
> Provider for a new JWT. It takes the new JWT to an authorization server in
> a different trust domain exchanging it for an OAuth access token.
>
>
> It would be valuable to be able to bind the ID token to the client using
> DPoP, which is possible using the method described in this OpenID draft.
> This use of the ID token doesn't have the problematic attribute of being
> used directly in another domain.
>
>
> I believe the sorts of cross-domain uses of ID tokens mentioned in the
> draft would likely be better accomplished using "Identity and Authorization
> Chaining Across Domains", which properly scopes the tokens to each trust
> domain.
>
>
> All this said, I do not believe the draft should be adopted as is, because
> of the language suggesting it is okay to use ID tokens directly across
> domains. I would not want an OIDF draft to endorse this behavior.
>
> Aaron Parecki
>
>
>
>
>
> On Fri, Sep 26, 2025 at 1:37 PM Ralph Bragg via Openid-specs-ab <
> openid-specs-ab at lists.openid.net> wrote:
>
>> *This message originated outside your organization.*
>>
>> ------------------------------
>>
>> Likewise, I do not support utilisation the id token In this way for the
>> reasons already raised. We’ve just had issues with multiple aud values
>> being identified as a significant source of vulnerability with PKJ so
>> extending / modifying an id tokens aud raises too many concerns for me as a
>> potential mitigation. I don’t believe that this token should be relied on
>> by any actor other than the intended audience.
>>
>> Ralph Bragg
>>
>> Chief Technology Officer
>>
>> M.
>>
>>
>>
>> +447890130559
>>
>> T.
>>
>>
>>
>> +44 20 4583 6770
>>
>> ralph.bragg at raidiam.com
>>
>>
>> ------------------------------
>> *From:* Openid-specs-ab <openid-specs-ab-bounces at lists.openid.net> on
>> behalf of Andrii Deinega via Openid-specs-ab <
>> openid-specs-ab at lists.openid.net>
>> *Sent:* Saturday, September 27, 2025 4:26:07 AM
>> *To:* Artifact Binding/Connect Working Group <
>> openid-specs-ab at lists.openid.net>
>> *Cc:* Andrii Deinega <andrii.deinega at gmail.com>
>> *Subject:* Re: [Openid-specs-ab] Call for Adoption for the OpenID
>> Connect Key Binding Specification
>>
>> I believe that any recipient of a JWT (in this case, an ID Token) should
>> immediately reject it if it isn't the intended audience (which is indicated
>> by the aud claim), regardless of whether cryptographic binding is present
>> or not. This alone makes the statement below too problematic for me.
>>
>> When an RP wants to prove to another system that it has authenticated a
>> user, it may present the ID Token as a bearer token. However, bearer tokens
>> are vulnerable to theft and replay attacks - if an attacker intercepts the
>> ID Token, they can impersonate the authenticated user to downstream systems
>> that accept a ID Token as a bearer token.
>>
>>
>> It's difficult to imagine multiple systems (recipients) sharing the same
>> value in the aud claim (this value must be a client_id of the RP per the
>> Core spec). It's fair to add the aud claim may contain an array with more
>> than one element, but it's also fair to say this practice is discouraged
>> (1) and comes with additional complexity and concerns (2).
>>
>> At the end of the day... I see a lot of value, and I see the reason why
>> people want to have the standard around "proving to another system that it
>> has authenticated a user," but I don't think that repurposing existing ID
>> Tokens for it is the right way to go.... I’d suggest, and actually love to
>> see - the use of SD JWT VCs (or other VCs) for this purpose instead.
>>
>> I haven’t reached the point where I need to "touch" Justin’s concerns...
>> I fully agree with him on them.
>>
>> All the best,
>> Andrii
>>
>> On Fri, Sep 26, 2025 at 9:05 AM Justin Richer via Openid-specs-ab <
>> openid-specs-ab at lists.openid.net> wrote:
>>
>> I do not support adoption of this work. The ID Token is not intended to
>> be a conveyable artifact, and using it as such is a security layer
>> boundary. It’s hard enough to get people to not use ID Tokens as Access
>> Tokens today, since a lot of developers see all JWTs as equivalent, really.
>> This work would make this problem significantly worse.
>>
>> — Justin
>>
>> On Sep 15, 2025, at 6:57 PM, Michael Jones via Openid-specs-ab <
>> openid-specs-ab at lists.openid.net> wrote:
>>
>> This starts a two-week call for feedback on whether to adopt the OpenID
>> Connect OpenID Connect Key Binding specification contributed to the working
>> group by Dick Hardt and Ethan Heilman as an OpenID Connect Working Group
>> specification. Please reply-all by Monday, September 29, 2025 saying
>> whether you are favor of adoption or not, also saying why.
>>
>> The specification was contributed at
>> https://lists.openid.net/pipermail/openid-specs-ab/2025-August/010890.html
>> <https://urldefense.com/v3/__https://lists.openid.net/pipermail/openid-specs-ab/2025-August/010890.html__;!!PwKahg!6QnHIKzhjBzjwwVrJqFfHF90LftISX-Hsr1obR0wAaEN3vBfUK_FDeluuf1qi3PARLAeMVkMdeDKDke1X_e_ZGJaQ8YWyonU$>.
>> It has been extensively discussed by the working group both on calls and on
>> the mailing list. From my observations of the discussion as a working
>> group chair, I believe that there is consensus that it would be useful to
>> have a standard solving the problem addressed by this specification.
>>
>> Writing as a working
>> group chair,
>> -- Mike
>>
>> _______________________________________________
>> Openid-specs-ab mailing list
>> Openid-specs-ab at lists.openid.net
>> https://lists.openid.net/mailman/listinfo/openid-specs-ab
>> <https://urldefense.com/v3/__https://lists.openid.net/mailman/listinfo/openid-specs-ab__;!!PwKahg!6QnHIKzhjBzjwwVrJqFfHF90LftISX-Hsr1obR0wAaEN3vBfUK_FDeluuf1qi3PARLAeMVkMdeDKDke1X_e_ZGJaQ2Sra7o3$>
>>
>>
>> _______________________________________________
>> Openid-specs-ab mailing list
>> Openid-specs-ab at lists.openid.net
>> https://lists.openid.net/mailman/listinfo/openid-specs-ab
>> <https://urldefense.com/v3/__https://lists.openid.net/mailman/listinfo/openid-specs-ab__;!!PwKahg!6QnHIKzhjBzjwwVrJqFfHF90LftISX-Hsr1obR0wAaEN3vBfUK_FDeluuf1qi3PARLAeMVkMdeDKDke1X_e_ZGJaQ2Sra7o3$>
>>
>> _______________________________________________
>> Openid-specs-ab mailing list
>> Openid-specs-ab at lists.openid.net
>> https://lists.openid.net/mailman/listinfo/openid-specs-ab
>>
> _______________________________________________
> Openid-specs-ab mailing list
> Openid-specs-ab at lists.openid.net
> https://lists.openid.net/mailman/listinfo/openid-specs-ab
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openid.net/pipermail/openid-specs-ab/attachments/20250929/708a2068/attachment-0001.htm>
More information about the Openid-specs-ab
mailing list