<?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.36 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-chen-oauth-roadmap-01" category="info" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="OAuth 2.0 Roadmap">A Comprehensive Roadmap for OAuth 2.0 Standards and Drafts</title>
    <seriesInfo name="Internet-Draft" value="draft-chen-oauth-roadmap-01"/>
    <author initials="M." surname="Chen" fullname="Meiling Chen">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>BeiJing</city>
          <country>China</country>
        </postal>
        <email>chenmeiling@chinamobile.com</email>
      </address>
    </author>
    <author initials="L." surname="Su" fullname="Li Su">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>BeiJing</city>
          <country>China</country>
        </postal>
        <email>suli@chinamobile.com</email>
      </address>
    </author>
    <date year="2026" month="May" day="06"/>
    <area>Security</area>
    <workgroup>OAuth Working Group</workgroup>
    <keyword>OAuth</keyword>
    <keyword>Roadmap</keyword>
    <keyword>Security</keyword>
    <keyword>Authorization</keyword>
    <keyword>RFC</keyword>
    <abstract>
      <?line 70?>

<t>The OAuth 2.0 ecosystem has expanded significantly since the publication of RFC 6749, resulting in a complex landscape of extensions, security best practices (BCPs), and application-specific profiles. This complexity can be daunting for implementers, architects, and security auditors. This document serves as a comprehensive roadmap to navigate this landscape. It categorizes key RFCs and active Internet-Drafts into functional areas, explains the relationships between them, and provides context on their evolution. The goal is to help readers understand the current state-of-the-art, select the appropriate specifications for their use cases, and follow the latest security best practices, while also offering a glimpse into the future directions of the framework.</t>
    </abstract>
  </front>
  <middle>
    <?line 74?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document categorizes specifications within the OAuth ecosystem into three groups:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Published RFCs</strong>: Form the cornerstone of current standards and best practices.</t>
        </li>
        <li>
          <t><strong>Active Drafts</strong>: Represent features and future directions actively being developed by the working group.</t>
        </li>
        <li>
          <t><strong>Historical Drafts</strong>: Are expired or superseded but provide valuable context for understanding the design decisions and technical evolution of OAuth.</t>
        </li>
      </ul>
      <t>This roadmap is intended to guide implementers, architects, and security professionals through the extensive library of OAuth specifications, helping them select the appropriate documents for their use cases.</t>
      <artwork><![CDATA[
      +-------------------------------------------------+
      |             Core: RFC 6749 (OAuth 2.0)          |
      |             Core: RFC 6750 (Bearer Token)       |
      +------------------------+------------------------+
                               |
            +------------------+------------------+
            |                                     |
+-----------v------------+             +-----------v-----------+
|   OAuth 2.1 (Draft)    |             |Security BCP (RFC 9700)|
|(Consolidates & Hardens)|             | (Overall Guidance)    |
+------------------------+             +-----------------------+
            |
+-----------+------------------------------------------------------------+
| Foundational Extensions & Security Mechanisms                          |
+------------------------------------------------------------------------+
|                                                                        |
|  - RFC 7636 (PKCE): Protects code flow                                 |
|  - RFC 9126 (PAR) / RFC 9101 (JAR): Protect authorization requests     |
|  - RFC 9449 (DPoP) / RFC 8705 (mTLS): Sender-constrains tokens         |
|  - RFC 8707 (Resource Indicators): Prevents token misuse               |
|  - RFC 7519 (JWT)/ RFC 9068(JWT AT Profile): Token format & profile    |
|  - RFC 8414 (AS Metadata): Enables server discovery                    |
|                                                                        |
+------------------------------------------------------------------------+
            |
+-----------+------------------------------------------------------------+
| Advanced Capabilities & Grant Types                                    |
+------------------------------------------------------------------------+
|                                                                        |
|  - RFC 8693 (Token Exchange): Service-to-service delegation            |
|  - RFC 8628 (Device Grant): Input-constrained devices                  |
|  - RFC 9396 (RAR): Fine-grained authorization                          |
|                                                                        |
+------------------------------------------------------------------------+
   
   Figure 1: High-Level Relationship of Core OAuth 2.0 Specifications

]]></artwork>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>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 <xref target="RFC8174">RFC2119</xref>.</t>
      <t>Readers are expected to be familiar with the terms and concepts described in the core OAuth 2.0 Framework <xref target="RFC6749"/>.</t>
    </section>
    <section anchor="core">
      <name>Core &amp; Foundational Documents</name>
      <ul spacing="normal">
        <li>
          <t><strong><tt>RFC 6749</tt></strong>, The OAuth 2.0 Authorization Framework (S): The seminal specification for OAuth 2.0, defining the core roles (client, resource owner, authorization server, resource server), grant types, and authorization flows.</t>
        </li>
        <li>
          <t><strong><tt>RFC 6750</tt></strong>, The OAuth 2.0 Authorization Framework: Bearer Token Usage (S): Defines the most common access token type, the "Bearer" token. A bearer token can be used by anyone who possesses it, making its transport and storage security critical.</t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-v2-1</tt></strong>, The OAuth 2.1 Authorization Framework (Draft): This effort consolidates and simplifies the original framework for modern applications. It formalizes a decade of security best practices by <strong>mandating</strong> PKCE, redirect URI exact matching, and the use of the Authorization Code flow. It explicitly <strong>deprecates</strong> insecure grants like the Implicit Grant and the Resource Owner Password Credentials Grant, providing a more secure baseline for new deployments.</t>
        </li>
      </ul>
    </section>
    <section anchor="security-framework">
      <name>Security Framework &amp; Best Practices</name>
      <section anchor="overall-security-guidance">
        <name>Overall Security Guidance</name>
        <ul spacing="normal">
          <li>
            <t><strong><tt>RFC 6819</tt></strong>, OAuth 2.0 Threat Model and Security Considerations (I): An early comprehensive security document that analyzes various threat models (e.g., token leakage, open redirectors) and proposes countermeasures. While still useful, many of its recommendations have been superseded by <tt>RFC9700</tt>.</t>
          </li>
          <li>
            <t><strong><tt>RFC 9700</tt></strong>, OAuth 2.0 Security Best Current Practice (B): The current definitive security guide. It consolidates the latest security lessons and provides a concrete set of recommendations that all modern implementations SHOULD follow.</t>
          </li>
          <li>
            <t><strong><tt>draft-ietf-oauth-security-topics-update</tt></strong> (Draft): The draft name for the work that eventually became <tt>RFC9700</tt>, representing the continuous evolution of security guidance within the working group.</t>
          </li>
        </ul>
      </section>
      <section anchor="protecting-the-authorization-flow">
        <name>Protecting the Authorization Flow</name>
        <ul spacing="normal">
          <li>
            <t><strong><tt>RFC 7636</tt></strong>, Proof Key for Code Exchange (PKCE) (S): Protects the Authorization Code flow from interception attacks. <strong>Originally designed for public clients (like mobile apps) that cannot securely store a secret, PKCE is now a BCP for all client types, including confidential ones</strong>, as it provides a robust defense-in-depth against code injection.</t>
          </li>
          <li>
            <t><strong><tt>RFC 9101</tt></strong>, JWT-Secured Authorization Request (JAR) (S): Ensures the integrity and authenticity of authorization request parameters by packaging them into a signed (and optionally encrypted) JWT. This prevents attackers from tampering with parameters like <tt>redirect_uri</tt> or <tt>scope</tt>.</t>
          </li>
          <li>
            <t><strong><tt>RFC 9126</tt></strong>, Pushed Authorization Requests (PAR) (S): Enhances security and privacy by allowing a client to push its authorization request parameters directly to the authorization server via a secure backchannel. This returns a <tt>request_uri</tt> which the client then sends through the browser. <strong>PAR protects request parameters from being exposed to the user agent (browser) or in server logs</strong>, and it works very well in combination with JAR for a fully secured request.</t>
          </li>
        </ul>
      </section>
      <section anchor="securing-access-tokens-sender-constraining">
        <name>Securing Access Tokens (Sender-Constraining)</name>
        <ul spacing="normal">
          <li>
            <t><strong><tt>RFC 8705</tt></strong>, Mutual-TLS Client Authentication and Certificate-Bound Access Tokens (S): A powerful mechanism that provides two functions: first, it defines a strict client authentication method using TLS certificates. Second, it enables the binding of access tokens to a specific client certificate, ensuring that even if a token is stolen, it cannot be used by an attacker who does not possess the client's private key.</t>
          </li>
          <li>
            <t><strong><tt>RFC 9449</tt></strong>, Demonstrating Proof-of-Possession (DPoP) (S): A lightweight, application-level sender-constraint mechanism. It binds a token to a specific client's public/private key pair without relying on mutual-TLS. This makes it suitable for browser-based applications and other environments where mTLS is difficult to deploy.</t>
          </li>
          <li>
            <t><strong><tt>draft-ietf-oauth-refresh-token-expiration</tt></strong> (Draft): Provides critical security best practices for refresh tokens, including recommendations for rotation (issuing a new refresh token with each use) and setting expiration policies to mitigate the risks of refresh token leakage.</t>
          </li>
        </ul>
      </section>
      <section anchor="mitigating-logical-implementation-flaws">
        <name>Mitigating Logical &amp; Implementation Flaws</name>
        <ul spacing="normal">
          <li>
            <t><strong><tt>RFC 8707</tt></strong>, Resource Indicators for OAuth 2.0 (S): Allows a client to specify the intended resource server (API) during the authorization request. This enables the Authorization Server to issue an audience-restricted token, preventing a token intended for one API from being replayed at another.</t>
          </li>
          <li>
            <t><strong><tt>RFC 9207</tt></strong>, Authorization Server Issuer Identification (S): Prevents "mix-up" attacks where a malicious authorization server could trick a client into sending a code to the wrong token endpoint. It requires the AS to declare its <tt>issuer</tt> identifier and clients/RSs to validate it.</t>
          </li>
          <li>
            <t><strong><tt>draft-ietf-oauth-mix-up-mitigation</tt></strong> (Draft): Provides comprehensive strategies to mitigate various "mix-up attacks" where a credential (e.g., a code, token, or client secret) might be sent to the wrong entity, expanding on the protections offered by <tt>RFC9207</tt>.</t>
          </li>
          <li>
            <t><strong><tt>draft-ietf-oauth-cross-device-security</tt></strong> (Draft): Specifically analyzes and proposes mitigations for security threats in cross-device flows, such as the Device Authorization Grant (<tt>RFC8628</tt>).</t>
          </li>
        </ul>
      </section>
      <section anchor="advanced-client-authentication">
        <name>Advanced Client Authentication</name>
        <ul spacing="normal">
          <li>
            <t><strong><tt>draft-ietf-oauth-attestation-based-client-auth</tt></strong> (Draft): Defines a client authentication method where the client must provide an attestation from a trusted third party (e.g., a device manufacturer or platform vendor), suitable for high-security scenarios where the client's integrity must be verified.</t>
          </li>
          <li>
            <t><strong><tt>draft-ietf-oauth-spiffe-client-auth</tt></strong> (Draft): Defines client authentication using SPIFFE SVIDs (Verifiable Identity Documents), designed to provide strong, cryptographic workload identity in cloud-native and service mesh environments.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="tokens">
      <name>Token Management &amp; Formats</name>
      <ul spacing="normal">
        <li>
          <t><strong><tt>RFC 7009</tt></strong>, Token Revocation (S): Defines an endpoint for clients to proactively invalidate a refresh or access token, for example, when a user logs out.</t>
        </li>
        <li>
          <t><strong><tt>RFC 7662</tt></strong>, Token Introspection (S): Defines an endpoint for resource servers to check the validity and metadata of a token with the authorization server. This is particularly useful for opaque (non-JWT) tokens.</t>
        </li>
        <li>
          <t><strong><tt>RFC 7519</tt></strong>, JSON Web Token (JWT) (S): Defines the JWT format, the de facto standard for structured, self-contained tokens in the OAuth ecosystem.</t>
        </li>
        <li>
          <t><strong><tt>RFC 8725</tt></strong>, JSON Web Token Best Current Practices (B): Provides essential security best practices for implementing and using JWTs, such as algorithm validation (<tt>alg</tt> header) and claim verification.  </t>
          <ul spacing="normal">
            <li>
              <t><strong><tt>draft-ietf-oauth-rfc8725bis</tt></strong> (Draft): An effort to update <tt>RFC8725</tt> with new security advice and clarifications based on implementation experience.</t>
            </li>
          </ul>
        </li>
        <li>
          <t><strong><tt>RFC 9068</tt></strong>, JWT Profile for OAuth 2.0 Access Tokens (S): An official profile defining a recommended set of claims (like <tt>iss</tt>, <tt>exp</tt>, <tt>aud</tt>, <tt>client_id</tt>) for using a JWT as an OAuth 2.0 access token, promoting interoperability.</t>
        </li>
      </ul>
    </section>
    <section anchor="metadata">
      <name>Client Registration, Metadata &amp; Discovery</name>
      <ul spacing="normal">
        <li>
          <t><strong><tt>RFC 7591</tt></strong>, Dynamic Client Registration (S): Allows OAuth clients to register with an authorization server programmatically, automating the onboarding process.</t>
        </li>
        <li>
          <t><strong><tt>RFC 7592</tt></strong>, Dynamic Client Registration Management (S): Complements <tt>RFC7591</tt> by defining a protocol for updating and deleting client registrations.</t>
        </li>
        <li>
          <t><strong><tt>RFC 8414</tt></strong>, Authorization Server Metadata (S): Allows an AS to publish its configuration details (like endpoint URLs and supported capabilities) at a well-known URI, enabling dynamic discovery by clients.</t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-client-id-metadata-document</tt></strong> (Draft): Proposes a mechanism for clients to also publish a metadata document, declaring their software information and configuration to enhance transparency and security for authorization servers.</t>
        </li>
      </ul>
    </section>
    <section anchor="grants">
      <name>Grant Types &amp; Assertion Framework</name>
      <ul spacing="normal">
        <li>
          <t><strong><tt>RFC 7521</tt></strong>, Assertion Framework (S): Provides a general framework for using assertions (like SAML or JWT) for client authentication and as authorization grants. This is foundational for service-to-service communication.</t>
        </li>
        <li>
          <t><strong><tt>RFC 7523</tt></strong>, JWT Profile for Authorization Grants (S): A concrete implementation of <tt>RFC7521</tt> using JWTs as assertions. This allows a client to use a JWT to request an access token without a direct user interaction.  </t>
          <ul spacing="normal">
            <li>
              <t><strong><tt>draft-ietf-oauth-rfc7523bis</tt></strong> (Draft): Aims to update <tt>RFC7523</tt> to address ambiguities and align with modern security practices.</t>
            </li>
          </ul>
        </li>
        <li>
          <t><strong><tt>RFC 8628</tt></strong>, Device Authorization Grant (S): The "Device Flow," designed for input-constrained devices (like smart TVs or CLIs) that cannot host a web browser for user authentication.</t>
        </li>
        <li>
          <t><strong><tt>RFC 8693</tt></strong>, Token Exchange (S): A versatile grant type that allows a service to exchange one type of security token for another. <strong>This is the cornerstone of modern microservices security, enabling use cases like impersonation (a frontend service acting on behalf of a user) and delegation (a service calling another service with a more restricted token).</strong></t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-identity-assertion-authz-grant</tt></strong> (Draft): Proposes a new grant type that allows a client to use an identity assertion (like an ID Token from an external IdP) to obtain an access token, streamlining federated identity scenarios.</t>
        </li>
      </ul>
    </section>
    <section anchor="advanced-authz">
      <name>Advanced Authorization Capabilities</name>
      <ul spacing="normal">
        <li>
          <t><strong><tt>RFC 9396</tt></strong>, Rich Authorization Requests (RAR) (S): Extends OAuth to allow clients to request structured, fine-grained authorization (e.g., access to specific bank accounts with specific transaction limits) beyond simple string-based scopes.</t>
        </li>
        <li>
          <t><strong><tt>RFC 9901</tt></strong>, Selective Disclosure for JSON Web Tokens (S):  specifies a mechanism for selectively disclosing individual claims within a JSON Web Token (JWT) by replacing them with salted hashes, allowing a holder to reveal only a subset of information to a verifier while maintaining cryptographic proof of the data's integrity and origin.</t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-transaction-tokens</tt></strong> (Draft): Explores the use of short-lived tokens bound to a specific transaction to enhance security for high-risk operations like financial payments, building on ideas from RAR and sender-constraining.</t>
        </li>
      </ul>
    </section>
    <section anchor="client-profiles">
      <name>Client-Specific Profiles &amp; BCPs</name>
      <ul spacing="normal">
        <li>
          <t><strong><tt>RFC 8252</tt></strong>, OAuth 2.0 for Native Apps (B): Provides best current practices for implementing OAuth 2.0 in native mobile and desktop applications. It recommends using external user agents (like the system browser) and custom URI schemes or claimed "https" schemes for handling redirects.</t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-browser-based-apps</tt></strong> (Draft): The definitive guide for implementing OAuth 2.0 in Single-Page Applications (SPAs). It <strong>recommends the Authorization Code flow with PKCE and deprecates the Implicit Grant</strong>. It also provides guidance on token storage (e.g., using backend-for-frontend patterns) and mitigating threats like Cross-Site Scripting (XSS).</t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-first-party-apps</tt></strong> (Draft): Offers specific security and implementation guidance for first-party applications, where the client and authorization server belong to the same entity, allowing for certain optimizations while maintaining security.</t>
        </li>
      </ul>
    </section>
    <section anchor="oidc">
      <name>Relationship with OpenID Connect</name>
      <t>While this document focuses on the OAuth 2.0 authorization framework, it is crucial to mention OpenID Connect (OIDC) <xref target="OIDC"/>. OIDC is a simple identity layer built on top of OAuth 2.0 that provides authentication and enables clients to verify the identity of the end-user. Many modern OAuth deployments use OIDC for user login and to obtain an ID Token, and then leverage standard OAuth mechanisms for API authorization using the Access Token. Understanding the distinction and synergy between OAuth (for "what a user can do") and OIDC (for "who the user is") is fundamental for many use cases.</t>
      <t>It is also worth noting the historical influence of the OpenID Foundation on the IETF OAuth working group. Several key OAuth specifications were heavily inspired by, and are often compatible with, earlier standards from the OpenID Connect suite. For example, the discovery mechanisms in OAuth 2.0 Authorization Server Metadata <xref target="RFC8414"/> are based on the earlier OpenID Connect Discovery specification. Similarly, OAuth 2.0 Dynamic Client Registration <xref target="RFC7591"/> builds upon its OpenID Connect counterpart. The concept of passing authorization request parameters in a JWT was also first specified in OpenID Connect Core before being formally adopted in the IETF as JWT-Secured Authorization Request (JAR) <xref target="RFC9101"/>.</t>
    </section>
    <section anchor="emerging-tech">
      <name>Advanced &amp; Emerging Technologies</name>
      <t>Specifications in this area often intersect with decentralized identity, Verifiable Credentials (VCs), and privacy-enhancing technologies.</t>
      <ul spacing="normal">
        <li>
          <t><strong><tt>draft-ietf-oauth-sd-jwt-vc</tt></strong> (Draft): Defines how to carry Verifiable Credentials (VCs) using Selectively Disclosable JWTs (SD-JWTs), allowing users to disclose only necessary identity attributes during an OAuth flow, enhancing user privacy.</t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-status-list</tt></strong> (Draft): Proposes an efficient and privacy-preserving mechanism for checking the revocation status of credentials (like VCs) at scale.</t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-identity-chaining</tt></strong> (Draft): Explores a mechanism to securely pass and link multiple identity and authorization contexts during token exchange, forming a verifiable "identity chain." This is highly relevant for complex delegation scenarios in microservices.</t>
        </li>
        <li>
          <t><strong><tt>RFC 9635</tt></strong>, Grant Negotiation and Authorization Protocol (S): specifies the Grant Negotiation and Authorization Protocol (GNAP), a flexible mechanism for delegating authorization by allowing a client and an authorization server to negotiate the terms of access to APIs and user information over a series of cryptographically secured interactions.</t>
        </li>
      </ul>
    </section>
    <section anchor="historical">
      <name>Historical &amp; Superseded Documents</name>
      <t>These expired drafts are valuable for understanding the evolution of OAuth. They represent early explorations of ideas, some of which evolved into the standards we use today.</t>
      <ul spacing="normal">
        <li>
          <t><strong><tt>draft-ietf-oauth-authentication</tt></strong> / <strong><tt>draft-ietf-oauth-web-delegation</tt></strong>: Very early drafts that explored building an authentication layer on top of OAuth 2.0, serving as precursors to OpenID Connect.</t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-v2-http-mac</tt></strong>: Proposed a Message Authentication Code (MAC) token type as an alternative to Bearer tokens for stronger request signing, but it was not widely adopted due to complexity.</t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-pop-architecture</tt></strong> / <strong><tt>draft-ietf-oauth-pop-key-distribution</tt></strong>: Laid the early architectural foundation for "Proof-of-Possession" (PoP) tokens, whose core ideas evolved into the more mature mTLS (<tt>RFC8705</tt>) and DPoP (<tt>RFC9449</tt>) specifications.</t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-token-binding</tt></strong>: An early attempt at sender-constraint that aimed to bind OAuth tokens to the underlying TLS channel, but the underlying Token Binding protocol it depended on was not finalized by the IETF.</t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-closing-redirectors</tt></strong>: Specifically discussed and proposed solutions for mitigating the Open Redirector vulnerability, with its ideas being integrated into mainstream security best practices.</t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-use-cases</tt></strong>: An early document used to collect and articulate the use cases that shaped the design of OAuth 2.0.</t>
        </li>
        <li>
          <t><strong><tt>draft-ietf-oauth-distributed</tt></strong> / <strong><tt>draft-ietf-oauth-reciprocal</tt></strong>: Explored authorization models for distributed and peer-to-peer scenarios, with some concepts finding more mature expression in specifications like Token Exchange (<tt>RFC8693</tt>).</t>
        </li>
      </ul>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>This document is a roadmap that provides a guide to the OAuth 2.0 family of specifications; it does not define a protocol itself. As such, it does not introduce any new security considerations. The security of an OAuth 2.0 implementation depends on the proper application of the standards and best practices described in the referenced documents.</t>
      <t>Readers are strongly encouraged to consult the security considerations sections of each individual RFC and draft. In particular, the following documents provide comprehensive security guidance and are considered essential reading for all implementers:</t>
      <ul spacing="normal">
        <li>
          <t><strong>OAuth 2.0 Security Best Current Practice</strong> <xref target="RFC9728"/>: The primary and most up-to-date guide for securing OAuth 2.0 deployments.</t>
        </li>
        <li>
          <t><strong>OAuth 2.0 for Native Apps</strong> <xref target="RFC8252"/>: Essential security practices for mobile and desktop applications.</t>
        </li>
        <li>
          <t><strong>JSON Web Token (JWT) Best Current Practices</strong> <xref target="RFC8725"/>: Critical guidance for anyone using JWTs as access tokens or in other contexts.</t>
        </li>
      </ul>
      <t>Implementers should pay close attention to the evolution of security drafts, such as <tt>draft-ietf-oauth-v2-1</tt>, which aim to simplify and harden the core framework.</t>
    </section>
    <section anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors would like to thank Julius Cordes for his valuable review and suggestions.</t>
    </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="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC6750">
          <front>
            <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6750"/>
          <seriesInfo name="DOI" value="10.17487/RFC6750"/>
        </reference>
        <reference anchor="RFC7009">
          <front>
            <title>OAuth 2.0 Token Revocation</title>
            <author fullname="T. Lodderstedt" initials="T." role="editor" surname="Lodderstedt"/>
            <author fullname="S. Dronia" initials="S." surname="Dronia"/>
            <author fullname="M. Scurtescu" initials="M." surname="Scurtescu"/>
            <date month="August" year="2013"/>
            <abstract>
              <t>This document proposes an additional endpoint for OAuth authorization servers, which allows clients to notify the authorization server that a previously obtained refresh or access token is no longer needed. This allows the authorization server to clean up security credentials. A revocation request will invalidate the actual token and, if applicable, other tokens based on the same authorization grant.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7009"/>
          <seriesInfo name="DOI" value="10.17487/RFC7009"/>
        </reference>
        <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="RFC7521">
          <front>
            <title>Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="Y. Goland" initials="Y." surname="Goland"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification provides a framework for the use of assertions with OAuth 2.0 in the form of a new client authentication mechanism and a new authorization grant type. Mechanisms are specified for transporting assertions during interactions with a token endpoint; general processing rules are also specified.</t>
              <t>The intent of this specification is to provide a common framework for OAuth 2.0 to interwork with other identity systems using assertions and to provide alternative client authentication mechanisms.</t>
              <t>Note that this specification only defines abstract message flows and processing rules. In order to be implementable, companion specifications are necessary to provide the corresponding concrete instantiations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7521"/>
          <seriesInfo name="DOI" value="10.17487/RFC7521"/>
        </reference>
        <reference anchor="RFC7523">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification defines the use of a JSON Web Token (JWT) Bearer Token as a means for requesting an OAuth 2.0 access token as well as for client authentication.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7523"/>
          <seriesInfo name="DOI" value="10.17487/RFC7523"/>
        </reference>
        <reference anchor="RFC7591">
          <front>
            <title>OAuth 2.0 Dynamic Client Registration Protocol</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Machulak" initials="M." surname="Machulak"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <date month="July" year="2015"/>
            <abstract>
              <t>This specification defines mechanisms for dynamically registering OAuth 2.0 clients with authorization servers. Registration requests send a set of desired client metadata values to the authorization server. The resulting registration responses return a client identifier to use at the authorization server and the client metadata values registered for the client. The client can then use this registration information to communicate with the authorization server using the OAuth 2.0 protocol. This specification also defines a set of common client metadata fields and values for clients to use during registration.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7591"/>
          <seriesInfo name="DOI" value="10.17487/RFC7591"/>
        </reference>
        <reference anchor="RFC7592">
          <front>
            <title>OAuth 2.0 Dynamic Client Registration Management Protocol</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Machulak" initials="M." surname="Machulak"/>
            <date month="July" year="2015"/>
            <abstract>
              <t>This specification defines methods for management of OAuth 2.0 dynamic client registrations for use cases in which the properties of a registered client may need to be changed during the lifetime of the client. Not all authorization servers supporting dynamic client registration will support these management methods.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7592"/>
          <seriesInfo name="DOI" value="10.17487/RFC7592"/>
        </reference>
        <reference anchor="RFC7636">
          <front>
            <title>Proof Key for Code Exchange by OAuth Public Clients</title>
            <author fullname="N. Sakimura" initials="N." role="editor" surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Agarwal" initials="N." surname="Agarwal"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>OAuth 2.0 public clients utilizing the Authorization Code Grant are susceptible to the authorization code interception attack. This specification describes the attack as well as a technique to mitigate against the threat through the use of Proof Key for Code Exchange (PKCE, pronounced "pixy").</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7636"/>
          <seriesInfo name="DOI" value="10.17487/RFC7636"/>
        </reference>
        <reference anchor="RFC7662">
          <front>
            <title>OAuth 2.0 Token Introspection</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7662"/>
          <seriesInfo name="DOI" value="10.17487/RFC7662"/>
        </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="RFC8414">
          <front>
            <title>OAuth 2.0 Authorization Server Metadata</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <date month="June" year="2018"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8414"/>
          <seriesInfo name="DOI" value="10.17487/RFC8414"/>
        </reference>
        <reference anchor="RFC8628">
          <front>
            <title>OAuth 2.0 Device Authorization Grant</title>
            <author fullname="W. Denniss" initials="W." surname="Denniss"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2019"/>
            <abstract>
              <t>The OAuth 2.0 device authorization grant is designed for Internet- connected devices that either lack a browser to perform a user-agent- based authorization or are input constrained to the extent that requiring the user to input text in order to authenticate during the authorization flow is impractical. It enables OAuth clients on such devices (like smart TVs, media consoles, digital picture frames, and printers) to obtain user authorization to access protected resources by using a user agent on a separate device.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8628"/>
          <seriesInfo name="DOI" value="10.17487/RFC8628"/>
        </reference>
        <reference anchor="RFC8693">
          <front>
            <title>OAuth 2.0 Token Exchange</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8693"/>
          <seriesInfo name="DOI" value="10.17487/RFC8693"/>
        </reference>
        <reference anchor="RFC8705">
          <front>
            <title>OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes OAuth client authentication and certificate-bound access and refresh tokens using mutual Transport Layer Security (TLS) authentication with X.509 certificates. OAuth clients are provided a mechanism for authentication to the authorization server using mutual TLS, based on either self-signed certificates or public key infrastructure (PKI). OAuth authorization servers are provided a mechanism for binding access tokens to a client's mutual-TLS certificate, and OAuth protected resources are provided a method for ensuring that such an access token presented to it was issued to the client presenting the token.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8705"/>
          <seriesInfo name="DOI" value="10.17487/RFC8705"/>
        </reference>
        <reference anchor="RFC8707">
          <front>
            <title>Resource Indicators for OAuth 2.0</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document specifies an extension to the OAuth 2.0 Authorization Framework defining request parameters that enable a client to explicitly signal to an authorization server about the identity of the protected resource(s) to which it is requesting access.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8707"/>
          <seriesInfo name="DOI" value="10.17487/RFC8707"/>
        </reference>
        <reference anchor="RFC9068">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
            <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9068"/>
          <seriesInfo name="DOI" value="10.17487/RFC9068"/>
        </reference>
        <reference anchor="RFC9101">
          <front>
            <title>The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)</title>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="August" year="2021"/>
            <abstract>
              <t>The authorization request in OAuth 2.0 described in RFC 6749 utilizes query parameter serialization, which means that authorization request parameters are encoded in the URI of the request and sent through user agents such as web browsers. While it is easy to implement, it means that a) the communication through the user agents is not integrity protected and thus, the parameters can be tainted, b) the source of the communication is not authenticated, and c) the communication through the user agents can be monitored. Because of these weaknesses, several attacks to the protocol have now been put forward.</t>
              <t>This document introduces the ability to send request parameters in a JSON Web Token (JWT) instead, which allows the request to be signed with JSON Web Signature (JWS) and encrypted with JSON Web Encryption (JWE) so that the integrity, source authentication, and confidentiality properties of the authorization request are attained. The request can be sent by value or by reference.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9101"/>
          <seriesInfo name="DOI" value="10.17487/RFC9101"/>
        </reference>
        <reference anchor="RFC9126">
          <front>
            <title>OAuth 2.0 Pushed Authorization Requests</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="D. Tonge" initials="D." surname="Tonge"/>
            <author fullname="F. Skokan" initials="F." surname="Skokan"/>
            <date month="September" year="2021"/>
            <abstract>
              <t>This document defines the pushed authorization request (PAR) endpoint, which allows clients to push the payload of an OAuth 2.0 authorization request to the authorization server via a direct request and provides them with a request URI that is used as reference to the data in a subsequent call to the authorization endpoint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9126"/>
          <seriesInfo name="DOI" value="10.17487/RFC9126"/>
        </reference>
        <reference anchor="RFC9207">
          <front>
            <title>OAuth 2.0 Authorization Server Issuer Identification</title>
            <author fullname="K. Meyer zu Selhausen" initials="K." surname="Meyer zu Selhausen"/>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document specifies a new parameter called iss. This parameter is used to explicitly include the issuer identifier of the authorization server in the authorization response of an OAuth authorization flow. The iss parameter serves as an effective countermeasure to "mix-up attacks".</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9207"/>
          <seriesInfo name="DOI" value="10.17487/RFC9207"/>
        </reference>
        <reference anchor="RFC9396">
          <front>
            <title>OAuth 2.0 Rich Authorization Requests</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="J. Richer" initials="J." surname="Richer"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>This document specifies a new parameter authorization_details that is used to carry fine-grained authorization data in OAuth messages.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9396"/>
          <seriesInfo name="DOI" value="10.17487/RFC9396"/>
        </reference>
        <reference anchor="RFC9449">
          <front>
            <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Waite" initials="D." surname="Waite"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9449"/>
          <seriesInfo name="DOI" value="10.17487/RFC9449"/>
        </reference>
        <reference anchor="RFC9728">
          <front>
            <title>OAuth 2.0 Protected Resource Metadata</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <author fullname="A. Parecki" initials="A." surname="Parecki"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client or authorization server can use to obtain the information needed to interact with an OAuth 2.0 protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9728"/>
          <seriesInfo name="DOI" value="10.17487/RFC9728"/>
        </reference>
        <reference anchor="RFC9901">
          <front>
            <title>Selective Disclosure for JSON Web Tokens</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="K. Yasuda" initials="K." surname="Yasuda"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="November" year="2025"/>
            <abstract>
              <t>This specification defines a mechanism for the selective disclosure
of individual elements of a JSON data structure used as the payload
of a JSON Web Signature (JWS). The primary use case is the selective
disclosure of JSON Web Token (JWT) claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9901"/>
          <seriesInfo name="DOI" value="10.17487/RFC9901"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6819">
          <front>
            <title>OAuth 2.0 Threat Model and Security Considerations</title>
            <author fullname="T. Lodderstedt" initials="T." role="editor" surname="Lodderstedt"/>
            <author fullname="M. McGloin" initials="M." surname="McGloin"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document gives additional security considerations for OAuth, beyond those in the OAuth 2.0 specification, based on a comprehensive threat model for the OAuth 2.0 protocol. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6819"/>
          <seriesInfo name="DOI" value="10.17487/RFC6819"/>
        </reference>
        <reference anchor="RFC8252">
          <front>
            <title>OAuth 2.0 for Native Apps</title>
            <author fullname="W. Denniss" initials="W." surname="Denniss"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>OAuth 2.0 authorization requests from native apps should only be made through external user-agents, primarily the user's browser. This specification details the security and usability reasons why this is the case and how native apps and authorization servers can implement this best practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="212"/>
          <seriesInfo name="RFC" value="8252"/>
          <seriesInfo name="DOI" value="10.17487/RFC8252"/>
        </reference>
        <reference anchor="RFC8725">
          <front>
            <title>JSON Web Token Best Current Practices</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="225"/>
          <seriesInfo name="RFC" value="8725"/>
          <seriesInfo name="DOI" value="10.17487/RFC8725"/>
        </reference>
        <reference anchor="OIDC" target="https://openid.net/connect/">
          <front>
            <title>OpenID Connect</title>
            <author>
              <organization>OpenID Foundation</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 298?>

<section anchor="references">
      <name>References</name>
      <section anchor="normative-references">
        <name>Normative References</name>
        <t><xref target="RFC2119"/>
          <xref target="RFC6749"/>
          <xref target="RFC6750"/>
          <xref target="RFC7009"/>
          <xref target="RFC7519"/>
          <xref target="RFC7521"/>
          <xref target="RFC7523"/>
          <xref target="RFC7591"/>
          <xref target="RFC7592"/>
          <xref target="RFC7636"/>
          <xref target="RFC7662"/>
          <xref target="RFC8174"/>
          <xref target="RFC8414"/>
          <xref target="RFC8628"/>
          <xref target="RFC8693"/>
          <xref target="RFC8705"/>
          <xref target="RFC8707"/>
          <xref target="RFC9068"/>
          <xref target="RFC9101"/>
          <xref target="RFC9126"/>
          <xref target="RFC9207"/>
          <xref target="RFC9396"/>
          <xref target="RFC9449"/>
          <xref target="RFC9901"/></t>
      </section>
      <section anchor="informative-references">
        <name>Informative References</name>
        <t><xref target="RFC6819"/>
          <xref target="RFC8252"/>
          <xref target="RFC8725"/>
          <xref target="RFC9728"/>
          <xref target="OIDC"/></t>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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
AA==

-->

</rfc>
