<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-oauth-refresh-token-expiration-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="OAuth RT/Authorization Expiration">OAuth 2.0 Refresh Token and Authorization Expiration</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-refresh-token-expiration-01"/>
    <author fullname="Nicholas Watson">
      <organization>Google, LLC</organization>
      <address>
        <email>nwatson@google.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="27"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <keyword>refresh token</keyword>
    <keyword>authorization</keyword>
    <keyword>token endpoint</keyword>
    <abstract>
      <?line 51?>

<t>This specification extends OAuth 2.0 <xref target="RFC6749"/> by adding new token endpoint
response parameters to specify refresh token expiration and user authorization
expiration.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://drafts.oauth.net/rt-expiration/draft-ietf-oauth-refresh-token-expiration.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-oauth-refresh-token-expiration/"/>.
      </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/oauth-wg/rt-expiration"/>.</t>
    </note>
  </front>
  <middle>
    <?line 57?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>RFC6749 defines the OAuth 2.0 protocol, part of which is the ability for a
client to receive a refresh token that may be repeatedly exchanged for more
access tokens. OAuth 2.0 does not contain any normative language around
expiration or lack thereof for refresh tokens, mentioning only that they are
"typically long-lasting".</t>
      <t>In the years since the publication of OAuth 2.0, in response to changing
security and privacy landscapes, many authorization servers have begun to issue
shorter-lived refresh tokens for two main reasons:</t>
      <ul spacing="normal">
        <li>
          <t>The authorization server or user may decide that the access being granted is
too sensitive to allow indefinite access (e.g. mail or health data).</t>
        </li>
        <li>
          <t>The authorization server enforces a maximum duration that refresh tokens may
be held without being exchanged on the token endpoint.</t>
        </li>
      </ul>
      <t>Clients may wish to implement special handling for expiring refresh tokens. For
example, if the user has granted expiring access, the client may notify the user
that they will need to reauthorize access before a certain date to avoid
interruption of service.</t>
    </section>
    <section anchor="requirements-notation-and-conventions">
      <name>Requirements Notation and Conventions</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>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>"Resource owner" and "user" may be used interchangeably to refer to the entity
capable of granting access to a protected resource.</t>
      <t>"Client", "application", and "relying party" may be used interchangeably to
refer to the application making protected resource requests on behalf of the
resource owner and with its authorization.</t>
    </section>
    <section anchor="concepts">
      <name>Concepts</name>
      <t>There are two mechanisms that can affect refresh token expiration.</t>
      <section anchor="authorization-expiration">
        <name>Authorization expiration</name>
        <t>When granting authorization for an application to access their data as
referenced in <xref target="RFC6749"/> Sec 4.1.1, the user may opt to time-limit that
authorization, especially if the data is sensitive or they aren't sure how long
they'll continue using the application. The authorization server itself may also
impose mandatory limits on authorization duration.</t>
      </section>
      <section anchor="refresh-token-timeout">
        <name>Refresh token timeout</name>
        <t>Authorization servers may wish to define a maximum amount of time clients can
hold a refresh token without exchanging it. Beyond the security benefit provided
by expiring credentials, this also provides a convenient mechanism for
authorization servers to ensure there aren't ancient valid credentials out in
the wild, which could complicate tasks like refresh token key rotation.</t>
      </section>
    </section>
    <section anchor="refresh-token-expiration">
      <name>Refresh token expiration</name>
      <t>The refresh token <bcp14>MUST NOT</bcp14> expire later than the user authorization expires. It
<bcp14>MAY</bcp14> expire earlier if the authorization server also enforces a maximum duration
between refresh token exchanges.</t>
      <t>If the user renews their authorization, the authorization server <bcp14>SHOULD</bcp14> update
the expiration time of existing refresh tokens if their lifetime was truncated
due to user authorization expiration. The authorization server <bcp14>MUST NOT</bcp14> accept
expired refresh tokens for any purpose, even if it has no way to update the
expiration time of existing refresh tokens.</t>
      <t>Access tokens <bcp14>MUST NOT</bcp14> expire later than the user authorization expires. If the
user renews their authorization, the authorization server <bcp14>MAY</bcp14> update the
expiration time of existing access tokens if possible. Resource servers <bcp14>MUST NOT</bcp14>
accept expired access tokens for any purpose, even if the authorization server
has no way to update the expiration time of existing access tokens.</t>
    </section>
    <section anchor="token-endpoint-response">
      <name>Token endpoint response</name>
      <t>This specification introduces two new response parameters.</t>
      <section anchor="successful-response">
        <name>Successful response</name>
        <artwork><![CDATA[
refresh_token_timeout
      The time in seconds that the refresh token may be held by the client
      without exchanging. For example, the value 604800 denotes that the
      refresh token will expire in one week from the time the response was
      generated. This value SHALL NOT exceed the value in
      authorization_expires_in.

authorization_expires_in
      The lifetime in seconds of the user's authorization for the scopes
      contained in the issued or presented refresh token. For example, the
      value 2629800 denotes that the authorization will expire in one month
      from the time the response was generated. This value MAY exceed that
      of refresh_token_timeout.
]]></artwork>
        <t>If finite, the authorization server <bcp14>MUST</bcp14> return these values whenever the token
endpoint response contains the <tt>refresh_token</tt> field. The authorization server
<bcp14>MAY</bcp14> return these values even if the response contains no <tt>refresh_token</tt> field
in the response, in which case the values correspond to the presented
<tt>refresh_token</tt>. This can be useful in the following example cases:</t>
        <ul spacing="normal">
          <li>
            <t>For <tt>refresh_token_timeout</tt>, the authorization server could have
updated the existing refresh token lifetime in place.</t>
          </li>
          <li>
            <t>For <tt>authorization_expires_in</tt>, the user's authorization lifetime could have
been modified out of band.</t>
          </li>
          <li>
            <t>In all cases, it can be convenient for the client to receive these values
in each response.</t>
          </li>
        </ul>
        <section anchor="relationship-of-authorizationexpiresin-to-scopes">
          <name>Relationship of <tt>authorization_expires_in</tt> to scopes</name>
          <t>Though <tt>authorization_expires_in</tt> is returned from the token endpoint when
refresh tokens are used, it corresponds to the user's authorization for <em>scopes</em>
(or finer-grained access through RAR <xref target="RFC9396"/>) rather than individual tokens.
The authorization server <bcp14>SHOULD</bcp14> ensure consistent lifetimes across multiple
refresh tokens for the same scopes.</t>
          <t>Tying authorization lifetime to scopes means it's possible to have some access
valid for one duration and other access valid for a different duration. For
example, a user could grant indefinite access for the <tt>openid</tt> scope and
short-lived access for a calendar scope. In situations like this, it is
<bcp14>RECOMMENDED</bcp14> that the authorization server return the minimum time that any
access granted by the refresh token is valid. This does run some risk of the
client asking the user to reauthorize prematurely. In the previous example, the
client might ask the user to reauthorize the <tt>openid</tt> scope because it received
an <tt>authorization_expires_in</tt> value corresponding to the short-lived calendar
scope.</t>
          <t>If clients are requesting multiple scopes that can have different lifetimes,
they will ultimately need make their own tradeoffs to decide how and when to ask
the user for reauthorization. This specification's goal is simply to provide
them with more information to make this decision.</t>
        </section>
        <section anchor="indefinite-expiration">
          <name>Indefinite Expiration</name>
          <t>Omitted values indicate that there is no fixed upper bound on the lifetime of
the credential or authorization. If the authorization server has not declared
its support for refresh token lifetime in the Authorization Server Metadata,
omitted response fields could indicate either indefinite validity or simply lack
of support for this specification. However, indefinite expiration and lack of
information about expiration should be handled by the client in the same way.
That is to say, the client must always handle refresh token invalidation not
caused by expiration, such as by explicit user revocation.</t>
          <t>Rather than omitting a response value, an authorization server may choose to
return a large arbitrary value, e.g. 315569520 for 10 years. This avoids any
ambiguity around support for indefinite values while achieving a similar
practical effect. Clients <bcp14>MUST</bcp14> treat all large values as literals and <bcp14>MUST NOT</bcp14>
make any assumptions about which may be considered indefinite.</t>
        </section>
      </section>
      <section anchor="error-response">
        <name>Error response</name>
        <t>The existing <tt>invalid_grant</tt> error code already explicitly covers token
expiration and should be sufficient. Upon receiving this error code the client
<bcp14>SHOULD</bcp14> start a new authorization grant flow.</t>
      </section>
      <section anchor="example">
        <name>Example</name>
        <t>Suppose an authorization server enforces that refresh tokens must be exchanged
at least once every 7 days, and a user has granted authorization to an
application for access for 30 days. The initial authorization code grant will
result in the following response values:</t>
        <artwork><![CDATA[
refresh_token_timeout: 604800  // 7 days
authorization_expires_in: 2592000  // 30 days
]]></artwork>
        <t>A refresh token grant 7 days after initial authorization will result in the
following response values:</t>
        <artwork><![CDATA[
refresh_token_timeout: 604800  // 7 days
authorization_expires_in: 1987200  // 23 days
]]></artwork>
        <t>A refresh token grant 28 days after initial authorization will result in the
following response values:</t>
        <artwork><![CDATA[
refresh_token_timeout: 172800  // 2 days
authorization_expires_in: 172800  // 2 days
]]></artwork>
        <t>If instead, the client held the initial refresh token for 8 days (i.e. exceeding
<tt>refresh_token_timeout</tt> but not <tt>authorization_expires_in</tt>), the refresh token
grant will fail:</t>
        <artwork><![CDATA[
error: invalid_grant
error_description: "expired refresh token"
]]></artwork>
        <t>Note that the error description text is non-normative and for illustrative
purposes only.</t>
      </section>
    </section>
    <section anchor="update-to-authorization-server-metadata">
      <name>Update to Authorization Server Metadata</name>
      <t>Support for the expiring refresh tokens <bcp14>SHOULD</bcp14> be declared in the
OAuth 2.0 Authorization Server Metadata <xref target="RFC8414"/> with the following
metadata:</t>
      <artwork><![CDATA[
refresh_token_expiration_types_supported
    OPTIONAL. JSON array of supported expiration types. The possible values
    are "authorization" and "credential".
]]></artwork>
      <t>If the authorization server omits expiration time response fields to indicate
indefinite validity, it <bcp14>MUST</bcp14> declare <tt>refresh_token_expiration_types_supported</tt>
in its metadata to indicate to the client that it's aware of this spec.</t>
    </section>
    <section anchor="user-experience-considerations">
      <name>User Experience Considerations</name>
      <t>While clients must be able to gracefully handle tokens' expiring at any time,
the user experience may suffer if there's an unintended interruption of service.
This degradation of experience would most likely be felt by users of clients
running in the background, such as task or travel management apps that rely on
access to a user's calendar or inbox.</t>
      <t>If an application recognizes that its access is nearing expiration, it can
proactively prompt the user for reauthorization next time they're "in the loop"
(e.g. using a parameter like <tt>prompt=consent</tt> from <xref target="OpenID"/>), or even
communicate to the user out of band that their granted access is expiring.</t>
      <t>Another option an authorization server could provide to the user is a management
surface where the user can go proactively extend the lifetime of their own
grant, which would update the lifetime of the client's refresh token(s) in
place. The client would discover the extended expiration on its next refresh
token grant request.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>While it is possible to allow refresh token expiration to exceed that of user
authorization expiration if the authorization server checks both timestamps when
validating a refresh token, this is a potentially dangerous source of bugs in
systems with complicated user authorization models. By requiring refresh tokens
to expire no later than user authorization expires, there is less risk of bugs
that accidentally provide data access to the client beyond the term of the
user's authorization.</t>
      <t>Authorization servers implementing token rotation on every refresh [RFC 9700]
Sec 4.14 may wish to enforce a maximum duration that a refresh token may be held
without rotation, and this specification allows that duration to be communicated
as part of the API rather than relying on documentation.</t>
      <t>Clients may wish to maintain multiple refresh tokens with different access in
order to separate different lifetimes across different scopes. For example, a
short-lived token to access financial data and a long-lived token to access
basic user info. There is a tradeoff here, both in complexity of token
management and also in increased friction for the user to authorize multiple
tokens.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Allowing users to time-limit their authorization is a privacy improvement. While
this was already doable in regular OAuth implementations, the potential
interruption of service for the user may have discouraged implementation of the
feature. This specification provides a standardized way to mitigate that concern
and should lead to greater adoption of time-limited authorization.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="oauth-parameters-registration">
        <name>OAuth Parameters Registration</name>
        <t>This specification registers the following OAuth parameter definitions in the
IANA OAuth Parameters registry.</t>
        <section anchor="registry-contents">
          <name>Registry Contents</name>
          <ul spacing="normal">
            <li>
              <t>Name: refresh_token_timeout
              </t>
              <ul spacing="normal">
                <li>
                  <t>Parameter Usage Location: token response</t>
                </li>
                <li>
                  <t>Change Controller: IETF</t>
                </li>
                <li>
                  <t>Reference: This document</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Name: authorization_expires_in
              </t>
              <ul spacing="normal">
                <li>
                  <t>Parameter Usage Location: token response</t>
                </li>
                <li>
                  <t>Change Controller: IETF</t>
                </li>
                <li>
                  <t>Reference: This document</t>
                </li>
              </ul>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="oauth-authorization-server-metadata-registration">
        <name>OAuth Authorization Server Metadata Registration</name>
        <t>This specification registers the following Authorization Server Metadata
definitions in the IANA OAuth Authorization Server Metadata registry.</t>
        <section anchor="registry-contents-1">
          <name>Registry Contents</name>
          <ul spacing="normal">
            <li>
              <t>Metadata Name: refresh_token_expiration_types_supported
              </t>
              <ul spacing="normal">
                <li>
                  <t>Metadata Description: What types of refresh token expiration are
supported by the authorization server</t>
                </li>
                <li>
                  <t>Change Controller: IETF</t>
                </li>
                <li>
                  <t>Reference: This document</t>
                </li>
              </ul>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="change-history">
        <name>Change History</name>
        <t>Delete this section before publication.</t>
        <ul spacing="normal">
          <li>
            <t>Feb 27, 2026:
            </t>
            <ul spacing="normal">
              <li>
                <t>Address Issues 4, 5, 6 from George to discuss tradeoffs around managing
multiple tokens or scopes with different expirations, as well as out of
band reauthorization by the user.</t>
              </li>
              <li>
                <t>Rewording and clarification based on Dan's suggestions on the list.</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-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="RFC9700">
          <front>
            <title>Best Current Practice for OAuth 2.0 Security</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="A. Labunets" initials="A." surname="Labunets"/>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <date month="January" year="2025"/>
            <abstract>
              <t>This document describes best current security practice for OAuth 2.0. It updates and extends the threat model and security advice given in RFCs 6749, 6750, and 6819 to incorporate practical experiences gathered since OAuth 2.0 was published and covers new threats relevant due to the broader application of OAuth 2.0. Further, it deprecates some modes of operation that are deemed less secure or even insecure.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="240"/>
          <seriesInfo name="RFC" value="9700"/>
          <seriesInfo name="DOI" value="10.17487/RFC9700"/>
        </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="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="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 366?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
RAo7AAA=

-->

</rfc>
