| Internet-Draft | AS Metadata for requiring DPoP | November 2026 |
| Smith | Expires 6 May 2027 | [Page] |
This specification defines a new OAuth 2.0 Authorization Server Metadata parameter, dpop_bound_access_tokens_required, which allows an authorization server to indicate that it always issues DPoP-bound access tokens and requires DPoP for all requests made to it to obtain access tokens, including pushed authorization requests.¶
This complements the metadata parameter of the same name defined in OAuth 2.0 Protected Resource Metadata.¶
This note is to be removed before publishing as an RFC.¶
The latest revision of this draft can be found at https://drafts.thisismissem.social/draft-emelia-oauth-as-metadata-dpop-required/draft-emelia-oauth-as-metadata-dpop-required.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-emelia-oauth-as-metadata-dpop-required/.¶
Discussion of this document takes place on the Web Authorization Protocol Working Group mailing list (mailto:oauth@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/oauth/. Subscribe at https://www.ietf.org/mailman/listinfo/oauth/.¶
Source for this draft and an issue tracker can be found at https://github.com/ThisIsMissEm/draft-emelia-oauth-as-metadata-dpop-required.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 6 May 2027.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
An OAuth 2.0 [RFC6749] client can determine from the dpop_signing_alg_values_supported authorization server metadata parameter (Section 5.1 of [RFC9449]) whether an authorization server supports DPoP, but not whether the authorization server requires it.¶
Without this information, a client can only discover that DPoP is required by sending a request without DPoP, receiving an error, and retrying the request with DPoP. [RFC9449] does not define a specific error for a request that is missing a required DPoP proof, so the client cannot reliably distinguish this case from other failures. Additionally, a client that does not support DPoP has no way to determine in advance that it cannot complete an authorization flow with the authorization server, and may only discover this after the user has completed the authorization request.¶
OAuth 2.0 Protected Resource Metadata [RFC9728] registered a dpop_bound_access_tokens_required parameter in the IANA "OAuth Protected Resource Metadata" registry established by that specification; however, no similar parameter was added to the "OAuth Authorization Server Metadata" registry established by OAuth 2.0 Authorization Server Metadata [RFC8414]. This specification defines that metadata parameter for authorization servers.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
The security considerations of [RFC9449] apply to this specification.¶
The dpop_bound_access_tokens_required parameter informs clients of the authorization server's requirements; it does not enforce them. Requests from clients that ignore or do not retrieve the authorization server metadata are rejected by the authorization server, as described in Section 3.¶
A DPoP-bound access token only provides protection against token replay if the resource server verifies the binding. An attacker that obtains a DPoP-bound access token may attempt to present it using the Bearer authentication scheme to a resource server that does not verify the cnf claim of the access token. Resource servers that support both the Bearer and DPoP authentication schemes need to reject DPoP-bound access tokens presented using the Bearer authentication scheme, as described in Section 7.2 of [RFC9449]. This specification does not change those requirements.¶
The author would like to thank Max Gerber (Twilio) for identifying the gap in OAuth Authorization Server Metadata that this document addresses.¶
(This appendix to be deleted by the RFC editor in the final specification.)¶