Hi Jeff,

The resource server MAY return a challenge with the key |resource_metadata_uri|. When this challenge is present, its value MUST be set to the OAuth2 Protected Resource Metadata Endpoint URI for the resource server as defined in [RFC9728 <https://www.rfc-editor.org/rfc/rfc9728>].
In this draft, you use |resource_metadata_uri |but |resource_metadata |(as defined in RFC9728) could/should actually be used, isn't it?

RFC9728:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer*resource_metadata*=
   "https://resource.example.com/.well-known/oauth-protected-resource";
This draft :
HTTP/1.1 403 Forbidden
WWW-Authenticate: Bearer error="insufficient_authorization",
   error_description="The authorization level is not met",
   
*resource_metadata_uri*="https://www.example.com/.well-known/oauth-protected-resource";,
   body_instructions=true

The resource server MAY return a challenge with the key |body_instructions| When this challenge is present, its value MUST be set to |false| if no body is associated to the response from the resource server, or |true| if a body is associated to the response from the resource server.
Do we actually need this parameter? Can we just check the content-type of the response?

Maybe it is needed. It feels somewhat awkward, though.


If a body is attached to the to the response from the resource server, it MUST be formatted as an AuthZEN [D-OpenID-AuthZEN <https://openid.github.io/authzen/>] response which MUST contain the following keys:
How useful is that? Can the client actually use this to know which authorization request it should make ? In other words, how does the client translate Authzen into a OAuth authorization request? Wouldn't it be more appropriate to include a payload which more directly translates into OAuth authorization requests ?

If the main idea of this draft is to convey step up authentication data as Authzen, maybe it should be called "OAuth 2.0 Authzen step-up authorization challenge proto". It might be better to avoid hard-coding the format, many deployments (i.e. decentralized ones) might find it more useful to use another challenge format. Could be have content-type negotiation here?

Doesn't it potentially leak information that the client should not have access to? How can the resource server known which information can safely forwarded to the client ? This is discussed in 8.3 but additional guidance on that might be useful.


RFC9728 might be abused by a malicious resource server to obtain access tokens intended for another access token (fishing discussed in 7.8). Can this make it worse?

Regards,

Gabriel


Le 30/06/2025 à 16:37, Lombardo, Jeff a écrit :

Dear OAuth Working Group,

Alex, Yaron, George, and I would like to introduce a personal Draft to you. We have been working on since the beginning of the year while we were water testing our use cases and preliminary thoughts at OSW25.

/Personal Draft - OAuth 2.0 step-up authorization challenge protocol /[https://datatracker.ietf.org/doc/draft-lombardo-oauth-step-up-authz-challenge-proto/] would extend of *RFC 9470 - OAuth 2.0 Step Up Authentication Challenge Protocol* by allowing a resource server to return detailed step-up authorization challenges:

1/ Based on access control decisions enforced at the resource server – whatever through a dedicated logic or a call to a Policy Decision Point (PDP)

2/ Enabling clients to request new tokens through enhanced grant types and extension like, but not limited to, RFC9396 - OAuth 2.0 Rich Authorization Requests, RFC9126 - OAuth 2.0 Pushed Authorization Requests, RFC8693 - OAuth 2.0 Token Exchange, or other grant type as the client might see fit **

This Personal Draft also aims at supporting requirements for [FAPI2.0-Security-Profiles] or [hl7.fhir.uv.smart-app-launch] regulated APIs when they are supporting and recommending those  enhanced flows as ways to make access token least privilege, context based, and finer grained.

We are also requesting, please, a 10 minutes time slot at IETF-123 / Madrid to be able to present our work and gather comments, questions, and support in the aim of working forward on this proposal as an IETF Draft.

In the meantime, we remain available to answer any questions, comments, suggestions.

Regards,

Jeff

*Jean-François “Jeff” Lombardo*|Amazon Web Services

Architecte Principal de Solutions, Spécialiste de Sécurité
Principal Solution Architect, Security Specialist
Montréal, Canada

(+1 514 778 5565

/Commentaires à propos de notre échange? //Exprimez-vous //ici/ <https://urldefense.com/v3/__https:/feedback.aws.amazon.com/?ea=jeffsec&fn=Jean*20Francois&ln=Lombardo__;JQ!!Pe07N362zA!0k9CkAV8Djpw_8EfIAKrbhP3TQrJr0oMnznlUgBJ3V3NoEk6hihx7dNHnQuejn6SSH2CP8Iow3G-tTzppHeg$>/./

/Thoughts on our interaction? Provide feedback //here/ <https://urldefense.com/v3/__https:/feedback.aws.amazon.com/?ea=jeffsec&fn=Jean*20Francois&ln=Lombardo__;JQ!!Pe07N362zA!0k9CkAV8Djpw_8EfIAKrbhP3TQrJr0oMnznlUgBJ3V3NoEk6hihx7dNHnQuejn6SSH2CP8Iow3G-tTzppHeg$>/./


_______________________________________________
OAuth mailing list --oauth@ietf.org
To unsubscribe send an email tooauth-le...@ietf.org

_______________________________________________
OAuth mailing list -- oauth@ietf.org
To unsubscribe send an email to oauth-le...@ietf.org

Reply via email to