<?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.2 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-parecki-oauth-global-token-revocation-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title>Global Token Revocation</title>
    <seriesInfo name="Internet-Draft" value="draft-parecki-oauth-global-token-revocation-01"/>
    <author fullname="Aaron Parecki">
      <organization>Okta</organization>
      <address>
        <email>aaron@parecki.com</email>
        <uri>https://aaronparecki.com</uri>
      </address>
    </author>
    <date year="2023" month="November" day="10"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <keyword>token revocation</keyword>
    <keyword>logout</keyword>
    <abstract>
      <?line 55?>

<t>Global Token Revocation enables parties such as a security incident management tool or an external Identity Provider to send a request to an Authorization Server to indicate that it should revoke all of the user's existing tokens and require that the user re-authenticates before issuing new tokens.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://aaronpk.github.io/global-token-revocation/draft-parecki-oauth-global-token-revocation.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-parecki-oauth-global-token-revocation/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Web Authorization Protocol Working Group mailing list (<eref target="mailto:oauth@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/oauth/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/oauth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/aaronpk/global-token-revocation"/>.</t>
    </note>
  </front>
  <middle>
    <?line 60?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>An OAuth Authorization Server issues tokens in response to a user authorizing a client. A party external to the OAuth Authorization Server may wish to instruct the Authorization Server to revoke all tokens belonging to a particular user, and prevent the server from issuing new tokens until the user re-authenticates.</t>
      <t>For example, a security incident management tool may detect anomalous behaviour on a user's account, or if the user logged in through an enterprise Identity Provider, the Identity Provider may want to revoke all of a user's tokens on a security incident or on the employee's termination.</t>
      <t>This specification describes an API endpoint so that an authorization server can accept requests from external parties to revoke all tokens associated with a given user.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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 anchor="terminology">
        <name>Terminology</name>
        <t>This specification uses the terms "Access Token", "Authorization Code",
"Authorization Endpoint", "Authorization Server" (AS), "Client", "Client Authentication",
"Client Identifier", "Client Secret", "End-User", "Grant Type", "Protected Resource",
"Redirection URI", "Refresh Token", "Resource Owner", "Resource Server" (RS)
and "Token Endpoint" defined by <xref target="RFC6749"/>,
and the terms "OpenID Provider" (OP) and "ID Token" defined by <xref target="OpenID"/>.</t>
        <t>This specification uses the term "Identity Provider" (IdP) to refer to
the Authorization Server or OpenID Provider that is used for End-User authentication.</t>
        <t>TODO: Replace RFC6749 references with OAuth 2.1</t>
      </section>
      <section anchor="roles">
        <name>Roles</name>
        <t>In a typical OAuth deployment, the OAuth client obtains tokens from the authorization server when a user logs in and authorizes the client. In many cases, the method by which a user logs in at the authorization server is through an external identity provider.</t>
        <t>For example, a mobile chat application is an OAuth Client, and obtains tokens from its backend server which stores the chat messages. The mobile chat backend plays the OAuth roles of "Resource Server" and "Authorization Server".</t>
        <t>In some cases, the user will log in to the Authorization Server using an external (e.g. enterprise) Identity Provider. In that case, when a user logs in to the chat application, the backend server may play the role of an OAuth client (or OpenID or SAML relying party) to the Identity Provider in a new authorization or authentication flow.</t>
      </section>
    </section>
    <section anchor="token-revocation">
      <name>Token Revocation</name>
      <t>A revocation request is a POST request to the Global Token Revocation endpoint, which starts the process of revoking all tokens for the identified subject.</t>
      <section anchor="revocation-endpoint">
        <name>Revocation Endpoint</name>
        <t>The Global Token Revocation endpoint is a URL at the authorization server which accepts HTTP POST requests with parameters in the HTTP request message body using the <tt>application/json</tt> format. The Global Token Revocation endpoint URL <bcp14>MUST</bcp14> use the <tt>https</tt> scheme.</t>
        <t>If the authorization server supports OAuth Server Metadata (<xref target="RFC8414"/>), the authorization server <bcp14>SHOULD</bcp14> include the URL of their Global Token Revocation endpoint in their authorization server metadata document using the <tt>global_token_revocation_endpoint</tt> parameter as defined in <xref target="authorization-server-metadata"/>.</t>
        <t>The authorization server <bcp14>MAY</bcp14> alternatively register the endpoint with tools that will use it.</t>
      </section>
      <section anchor="revocation-request">
        <name>Revocation Request</name>
        <t>The request is a POST request with an <tt>application/json</tt> body containing a single property <tt>subject</tt>,  the value of which is a Security Event Token Subject Identifier as defined in <xref target="I-D.ietf-secevent-subject-identifiers"/>.</t>
        <t>In practice, this means the value of <tt>subject</tt> is a JSON object with a property <tt>format</tt>, and at least one additional property depending on the value of <tt>format</tt>.</t>
        <t>The request <bcp14>MUST</bcp14> also be authenticated, the particular authentication method and means by which the authentication is established is out of scope of this specification, but may include an OAuth 2.0 Bearer Token (<xref target="RFC6750"/>) or a JWT (<xref target="RFC7523"/>).</t>
        <t>The following example requests all tokens for a user identified by an email address to be revoked:</t>
        <artwork><![CDATA[
POST /global-token-revocation
Host: example.com
Content-Type: application/json
Authorization: Bearer f5641763544a7b24b08e4f74045

{
  "subject": {
    "format": "email",
    "email": "user@example.com"
  }
}
]]></artwork>
        <t>To request revocation of all tokens for a user identified by a user ID at the Authorization Server, use the "opaque subject" identifier:</t>
        <artwork><![CDATA[
POST /global-token-revocation
Host: example.com
Content-Type: application/json
Authorization: Bearer f5641763544a7b24b08e4f74045

{
  "subject": {
    "format": "opaque",
    "id": "U1234567890"
  }
}
]]></artwork>
      </section>
      <section anchor="revocation-expectations">
        <name>Revocation Expectations</name>
        <t>Upon receiving a revocation request, authorizing the request, and validating the identified user, the Authorization Server:</t>
        <ul spacing="normal">
          <li>
            <t><bcp14>MUST</bcp14> revoke all active refresh tokens</t>
          </li>
          <li>
            <t><bcp14>SHOULD</bcp14> invalidate all access tokens, although it is recognized that it might not be technically feasible to invalidate access tokens (see <xref target="access-tokens"/> below)</t>
          </li>
          <li>
            <t><bcp14>MUST NOT</bcp14> issue new access tokens or refresh tokens without re-authenticating the user</t>
          </li>
        </ul>
      </section>
      <section anchor="revocation-response">
        <name>Revocation Response</name>
        <t>This specification indicates success and error conditions by using HTTP response codes, and does not define the response body format or content.</t>
        <t>To indicate that the request was successful and revocation of the requested set of tokens has begun, the server returns an HTTP 204 response.</t>
        <section anchor="error-response">
          <name>Error Response</name>
          <t>The following HTTP response codes can be used to indicate various error conditions:</t>
          <ul spacing="normal">
            <li>
              <t><strong>400 Bad Request</strong>: The request was malformed, e.g. an unrecognized or unsupported type of subject identifier.</t>
            </li>
            <li>
              <t><strong>401 Unauthorized</strong>: Authentication provided was invalid.</t>
            </li>
            <li>
              <t><strong>403 Forbidden</strong>: Insufficient authorization, e.g. missing scopes.</t>
            </li>
            <li>
              <t><strong>404 User Not Found</strong>: The user indicated by the subject identifier was not found.</t>
            </li>
            <li>
              <t><strong>422 Unable to Process Request</strong>: Unable to log out the user.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="access-tokens">
      <name>Revocation of Access Tokens</name>
      <t>OAuth 2.0 allows deployment flexibility with respect to the style of
   access tokens.  The access tokens may be self-contained (e.g. <xref target="RFC9068"/>) so that a
   resource server needs no further interaction with an authorization
   server issuing these tokens to perform an authorization decision of
   the client requesting access to a protected resource.  A system
   design may, however, instead use access tokens that are handles
   referring to authorization data stored at the authorization server.</t>
      <t>While these are not the only options, they illustrate the
   implications for revocation.  In the latter case of reference tokens, the authorization
   server is able to revoke an access token by removing it from storage. In the former case, without storing tokens, it may be impossible to revoke tokens without taking additional measures.</t>
      <t>For this reason, revocation of access tokens is optional in this specification, since it may post too significant of a burden for implementers. It is not required to revoke access tokens to be able to return a success code to the caller.</t>
    </section>
    <section anchor="authorization-server-metadata">
      <name>Authorization Server Metadata</name>
      <t>The following authorization server metadata parameters <xref target="RFC8414"/> are introduced to signal the server's capability and policy with respect to Global Token Revocation.</t>
      <dl>
        <dt>"global_token_revocation_endpoint":</dt>
        <dd>
          <t>The URL of the authorization server's global token revocation endpoint.</t>
        </dd>
        <dt>"global_token_revocation_endpoint_auth_methods_supported":</dt>
        <dd>
          <t><bcp14>OPTIONAL</bcp14>. JSON array containing a list of client authentication methods supported by this introspection endpoint.  The valid client authentication method values are those registered in the IANA "OAuth Token Endpoint Authentication Methods" registry <xref target="IANA.oauth-parameters"/> or those registered in the IANA "OAuth Access Token Types" registry <xref target="IANA.oauth-parameters"/>.  (These values are and will remain distinct, due to Section 7.2.)  If omitted, the set of supported authentication methods <bcp14>MUST</bcp14> be determined by other means.</t>
        </dd>
      </dl>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="oauth-authorization-server-metadata">
        <name>OAuth Authorization Server Metadata</name>
        <t>IANA has (TBD) registered the following values in the IANA "OAuth Authorization Server Metadata" registry of <xref target="IANA.oauth-parameters"/> established by <xref target="RFC8414"/>.</t>
        <t><strong>Metadata Name</strong>: <tt>global_token_revocation_endpoint</tt></t>
        <t><strong>Metadata Description</strong>: URL of the authorization server's global token revocation endpoint.</t>
        <t><strong>Change Controller</strong>: IESG</t>
        <t><strong>Specification Document</strong>: Section X of [[ this specification ]]</t>
        <t><strong>Metadata Name</strong>: <tt>global_token_revocation_endpoint_auth_methods_supported</tt></t>
        <t><strong>Metadata Description</strong>: <bcp14>OPTIONAL</bcp14>. Indicates the list of client authentication methods supported by this endpoint.</t>
        <t><strong>Change Controller</strong>: IESG</t>
        <t><strong>Specification Document</strong>: Section X of [[ this specification ]]</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="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="IANA.oauth-parameters" target="http://www.iana.org/assignments/oauth-parameters">
          <front>
            <title>OAuth Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="I-D.ietf-secevent-subject-identifiers">
          <front>
            <title>Subject Identifiers for Security Event Tokens</title>
            <author fullname="Annabelle Backman" initials="A." surname="Backman">
              <organization>Amazon</organization>
            </author>
            <author fullname="Marius Scurtescu" initials="M." surname="Scurtescu">
              <organization>Coinbase</organization>
            </author>
            <author fullname="Prachi Jain" initials="P." surname="Jain">
              <organization>Fastly</organization>
            </author>
            <date day="24" month="June" year="2023"/>
            <abstract>
              <t>   Security events communicated within Security Event Tokens may support
   a variety of identifiers to identify subjects related to the event.
   This specification formalizes the notion of subject identifiers as
   structured information that describe a subject, and named formats
   that define the syntax and semantics for encoding subject identifiers
   as JSON objects.  It also defines a registry for defining and
   allocating names for such formats, as well as the "sub_id" JSON Web
   Token (JWT) claim.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-secevent-subject-identifiers-18"/>
        </reference>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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="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="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="OpenID" target="https://openid.net/specs/openid-connect-core-1_0.html">
          <front>
            <title>OpenID Connect Core 1.0</title>
            <author initials="N." surname="Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones">
              <organization/>
            </author>
            <author initials="B." surname="de Medeiros">
              <organization/>
            </author>
            <author initials="C." surname="Mortimore">
              <organization/>
            </author>
            <date year="2014" month="November"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 255?>

<section anchor="document-history">
      <name>Document History</name>
      <t>(( To be removed from the final specification ))</t>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Clarified revocation expectations</t>
        </li>
        <li>
          <t>Better definition of endpoint</t>
        </li>
        <li>
          <t>Added section defining endpoint in Authorization Server Metadata</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial Draft</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank the following people for their contributions and reviews of this specification: George Fletcher, Karl McGuinness, Mike Jones.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
