<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-carleton-workload-authz-grant-02" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="WAG">Workload Authorization Grant</title>
    <seriesInfo name="Internet-Draft" value="draft-carleton-workload-authz-grant-02"/>
    <author fullname="Paul Carleton" role="editor">
      <organization>Anthropic</organization>
      <address>
        <email>paulc@anthropic.com</email>
      </address>
    </author>
    <author fullname="Nick Steele">
      <organization>OpenAI</organization>
      <address>
        <email>steele@openai.com</email>
      </address>
    </author>
    <author fullname="Aaron Parecki">
      <organization>Okta</organization>
      <address>
        <email>aaron@parecki.com</email>
      </address>
    </author>
    <author fullname="Arndt Schwenkschuster">
      <organization>Defakto Security</organization>
      <address>
        <email>arndts.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Brian Campbell">
      <organization>Ping Identity</organization>
      <address>
        <email>bcampbell@pingidentity.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>sec</area>
    <keyword>agent identity</keyword>
    <keyword>workload identity</keyword>
    <keyword>workload authorization grant</keyword>
    <keyword>jwt authorization grant</keyword>
    <abstract>
      <?line 73?>

<t>This document defines the Workload Authorization Grant (WAG), by which a
workload hosted on a platform -- an AI agent is the motivating case --
obtains access tokens from a third party's OAuth authorization server
without requiring an administrator to perform a per-workload provisioning
step.  Each workload is identified by an opaque identifier that is never
reassigned.  A Workload Identity Provider operated by the platform signs a JWT
authorization grant (<xref target="RFC7523"/>) that names one workload, and the workload
presents it at the token endpoint of an authorization server that has been
configured, once, to trust that Workload Identity Provider.  The authorization
server does not reject a workload because it has not seen it before. The
workload's access is determined by the authorization server's own policy,
which may consult claims the Workload Identity Provider asserts about the
workload.  This document covers workloads acting on
their own behalf.  Access on behalf of a user or other principal is out of
scope, though the grant is intended to compose with delegation mechanisms
in which the workload is the actor.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-carleton-workload-authz-grant/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/pcarleton/draft-carleton-workload-authz-grant"/>.</t>
    </note>
    <note removeInRFC="true">
      <name>Note to Readers</name>
      <?line 92?>

<t>This document is an early, exploratory individual draft, published to solicit
discussion of the deployment pattern it describes.  It is not a working group
document, does not describe a shipped or committed design, and does not
represent a position or roadmap of the editors' employers.  Every aspect of it
is subject to change or withdrawal, including whether this mechanism should
be specified in a separate document at all.  Issues and pull requests:
https://github.com/pcarleton/draft-carleton-workload-authz-grant.</t>
    </note>
  </front>
  <middle>
    <?line 102?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Agent platforms host many agents per customer, instantiated and torn down as appropriate for the context of the customer's work environment -- one per channel, repository, or pipeline.  Registering each agent individually at the Authorization Servers it uses is impractical and creates a heavy maintenance burden.  In practice every agent of an installation ends up sharing one credential, at the cost of any attribution of an individual agent's actions.</t>
      <t>A platform that hosts many workloads -- an agent platform is a motivating case -- needs each workload to obtain an access token at third-party services without requiring an administrator to perform a per-workload provisioning step.</t>
      <t>This document defines one grant for that: a JWT authorization grant <xref target="RFC7523"/> signed by the platform's Workload Identity Provider and naming one workload, presented at the token endpoint of an authorization server that has been configured, once, to trust that Workload Identity Provider.</t>
      <t>It specifies the grant, and that workloads are trusted based on the Workload Identity Provider registration, allowing a previously unseen workload to receive an access token.</t>
      <t>How trust in a Workload Identity Provider is established and what a workload may do are left to deployments.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions and Terminology</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?>

<t>Platform: the party that instantiates and manages the lifecycle of workloads ("Agents").</t>
      <t>Workload Identity Provider: the component of the Platform that issues Workload Authorization Grants.  Where a provider serves several customer organizations under one issuer identifier, each customer's partition must be uniquely identified (see <xref target="tenants"/>).</t>
      <t>Workload Identity Provider registration: an Authorization Server's record of one Workload Identity Provider it trusts: the Workload Identity Provider's issuer identifier, its keys (<xref target="issuer-keys"/>) and, where several Workload Identity Providers share that issuer identifier, the name of a claim and the value the claim carries for this Workload Identity Provider (<xref target="tenants"/>).  How a Workload Identity Provider registration comes to exist is out of scope (note: this is not a client registration <xref target="RFC7591"/> and yields no client identifier or credential).</t>
      <t>Authorization Server, Resource Server: as in <xref target="RFC6749"/>. Where an Authorization Server serves several customer organizations under one issuer identifier, each customer's partition is a separate Authorization Server (<xref target="tenants"/>).</t>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <ol spacing="normal" type="1"><li>
          <t>Once per Workload Identity Provider and Authorization Server: an
administrator of the Authorization Server creates a Workload Identity Provider
registration (<xref target="conventions"/>), which records the Workload Identity Provider's
issuer identifier and how to obtain its keys (<xref target="issuer-keys"/>).  Nothing about individual Agents is exchanged.</t>
        </li>
        <li>
          <t>Per Agent: the Platform creates an Agent and assigns it an Agent
Identifier (<xref target="identity-model"/>).  Nothing is sent to the Authorization
Server or the Resource Server.</t>
        </li>
        <li>
          <t>Per access: the Agent obtains a Workload Authorization Grant from the
Workload Identity Provider and presents it in an ordinary OAuth token
request.  The Authorization Server matches it to a
Workload Identity Provider registration, verifies it under that Workload Identity Provider's
keys,
allowing for previously unseen <tt>sub</tt> values,
and issues an access token under its own policy (<xref target="properties"/>).</t>
        </li>
      </ol>
      <figure anchor="fig-overview">
        <name>One-time Workload Identity Provider registration, then per-request grants</name>
        <artwork><![CDATA[
 Workload Identity                         Authorization   Resource
     Provider       Agent                   Server (AS)   Server (RS)
         |            |                          |             |
(1)  [administrator registers the Workload Identity Provider]  |
         |            |                          |             |
(2)  [Platform creates Agent; nothing sent to AS or RS]        |
         |            |                          |             |
(3)      |--- WAG --->|                          |             |
         |            |--- POST /token --------->|             |
         |            |    grant_type=jwt-bearer |             |
         |            |    assertion=<WAG>       |             |
         |            |    resource=<RS>         |             |
         |            |<-- access token ---------|             |
         |            |--- request + access token ------------>|
]]></artwork>
      </figure>
    </section>
    <section anchor="identity-model">
      <name>Agent Identity</name>
      <t>An Agent is identified by its Agent Identifier, carried as the <tt>sub</tt> claim in the assertion.  The Agent Identifier is opaque and immutable; it <bcp14>MUST</bcp14> be unique among all Agent Identifiers issued under the same Workload Identity Provider, <bcp14>MUST NOT</bcp14> be reassigned to a different Agent, and is compared as a case-sensitive string <xref section="2" sectionFormat="comma" target="RFC7519"/>. An Authorization Server <bcp14>MUST</bcp14> associate records for an Agent with its Workload Identity Provider and <tt>sub</tt> value, never on its <tt>sub</tt> value alone.</t>
    </section>
    <section anchor="workload-authorization-grant">
      <name>Workload Authorization Grant</name>
      <t>An Agent obtains an access token by presenting a JWT as an authorization grant per <xref section="2.1" sectionFormat="comma" target="RFC7523"/>, issued by the Workload Identity Provider as a third party in the sense of <xref section="3" sectionFormat="comma" target="RFC7521"/>. The token request carries <tt>grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer</tt>, the JWT in the <tt>assertion</tt> parameter, and the target resource in the <tt>resource</tt> parameter <xref target="RFC8707"/>. The <tt>resource</tt> parameter <xref target="RFC8707"/> is <bcp14>RECOMMENDED</bcp14>; an Authorization Server <bcp14>SHOULD</bcp14> restrict the audience of the access token it issues to that resource and <bcp14>MAY</bcp14> refuse a request that lacks it with <tt>invalid_target</tt> (<xref section="2" sectionFormat="comma" target="RFC8707"/>). An Agent <bcp14>MAY</bcp14> make the token request without client authentication (<xref section="3.1" sectionFormat="comma" target="RFC7523"/>), and this specification attaches no meaning to <tt>client_id</tt>. An Authorization Server <bcp14>MUST NOT</bcp14> require a client registration per Agent.</t>
      <t>Assertions <bcp14>SHOULD</bcp14> be short-lived.  The Authorization Server <bcp14>MUST NOT</bcp14> issue refresh tokens for this grant and <bcp14>SHOULD NOT</bcp14> issue access tokens that outlive the assertion by a significant period (<xref section="4.1" sectionFormat="comma" target="RFC7521"/>).</t>
      <t>Where a token type identifier is needed for a Workload Authorization Grant, the value <tt>urn:ietf:params:oauth:token-type:wag</tt> (<xref target="iana-uri"/>) is used; for example, a Workload Identity Provider that issues Workload Authorization Grants by token exchange <xref target="RFC8693"/> would use it as <tt>requested_token_type</tt> and <tt>issued_token_type</tt>.  How an Agent obtains a Workload Authorization Grant is otherwise out of scope.</t>
      <section anchor="authorization-grant-claims">
        <name>JWT Syntax</name>
        <t>The <tt>typ</tt> JOSE Header Parameter (<xref section="4.1.9" sectionFormat="comma" target="RFC7515"/>) of the JWT <bcp14>MUST</bcp14> be <tt>oauth-wag+jwt</tt> (<xref target="iana-media-type"/>), as recommended by <xref section="3.11" sectionFormat="comma" target="RFC8725"/>.  A Workload Identity Provider <bcp14>MUST NOT</bcp14> use this type for any other kind of JWT.</t>
        <t>The JWT Claims Set contains:</t>
        <dl>
          <dt><tt>iss</tt></dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14> - The issuer identifier of the Workload Identity Provider (<xref target="issuer-keys"/>): a URL using the <tt>https</tt> scheme with no query or fragment component, as for <tt>issuer</tt> in <xref section="2" sectionFormat="comma" target="RFC8414"/>.</t>
          </dd>
          <dt><tt>sub</tt></dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14> - The Agent Identifier (<xref target="identity-model"/>).</t>
          </dd>
          <dt><tt>aud</tt></dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14> - Identifies the Authorization Server: its issuer identifier <xref target="RFC8414"/>, as a single value, as in <xref section="3.1" sectionFormat="comma" target="IDJAG"/>.  An Authorization Server <bcp14>MUST</bcp14> accept its issuer identifier as the audience; it <bcp14>MAY</bcp14> also accept its token endpoint URL, which <xref target="RFC7523BIS"/> continues to permit for authorization grants.</t>
          </dd>
          <dt><tt>exp</tt>, <tt>iat</tt>, <tt>jti</tt></dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14> - As defined in <xref target="RFC7519"/>.</t>
          </dd>
          <dt><tt>scope</tt></dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14> - A space-separated list of scopes (<xref section="3.3" sectionFormat="comma" target="RFC6749"/>) the Workload Identity Provider asserts for this request, as in <xref section="3.1" sectionFormat="comma" target="IDJAG"/>.  The Authorization Server decides under its own policy which of them to grant, and <bcp14>MAY</bcp14> grant a subset (<xref section="4.4.1" sectionFormat="comma" target="IDJAG"/>).</t>
          </dd>
          <dt><tt>nickname</tt></dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14> - A human-readable nickname for the Agent, for display only and never an input to authorization (<xref target="security-considerations"/>).  Issuers <bcp14>SHOULD</bcp14> limit <tt>nickname</tt> to 64 characters; recipients <bcp14>MAY</bcp14> truncate it for display or ignore it.</t>
          </dd>
        </dl>
        <t>The assertion is signed under a key configured from the Workload Identity Provider (see <xref target="issuer-keys"/>) and <bcp14>MAY</bcp14> carry further claims about the Agent.
See <xref target="as-metadata"/> for details on how an Authorization Server advertises support for this grant.</t>
        <t>The following is a non-normative example of a JWT header and claims set, as the Agent in <xref target="permissions-example"/> would present it to the ticket tracker:</t>
        <artwork><![CDATA[
{
  "typ": "oauth-wag+jwt",
  "alg": "ES256",
  "kid": "key-2026-10"
}
.
{
  "iss": "https://acme.agents.platform.example",
  "sub": "agent/7f3d9as3",
  "nickname": "Database Migration helper",
  "roles": ["databases-team"],
  "aud": "https://as.saas.example",
  "exp": 1785271980,
  "iat": 1785271680,
  "jti": "7d0f5a2b-93c8-4f0e-9c33-1b6a0e6d5f10",
  "scope": "tickets:read comments:write"
}
]]></artwork>
      </section>
    </section>
    <section anchor="provider-registration">
      <name>Workload Identity Provider Registration</name>
      <t>Prior to presenting a WAG to an Authorization Server, an administrator registers the Workload Identity Provider at the Authorization Server. During this registration step, the Authorization Server obtains the Workload Identity Provider's issuer identifier, the issuer's key, and tenant information (see <xref target="tenants"/>). The Authorization Server also decides on authorization policy for the Workload Identity Provider including optionally mapping claims provided by the Workload Identity Provider to permissions. The specifics of this registration step are outside the scope of this document. It is not a client registration <xref target="RFC7591"/> and yields no client identifier or credential.</t>
      <section anchor="issuer-keys">
        <name>Issuer Keys</name>
        <t>As part of a Workload Identity Provider registration, the Authorization Server needs to record an issuer identifier and obtain the public keys associated with that issuer.</t>
        <t>A Workload Identity Provider may provide its public key via: a JWK Set <xref target="RFC7517"/> entered directly, a JWK Set URL the Authorization Server fetches over HTTPS <xref target="RFC9525"/>, or the <tt>jwks_uri</tt> in metadata the issuer publishes under its issuer identifier (<xref section="3" sectionFormat="comma" target="RFC8414"/> or <xref target="OIDC-DISCOVERY"/>).  An Authorization Server that uses issuer metadata <bcp14>MUST NOT</bcp14> use a document whose <tt>issuer</tt> value is not identical to the registration's issuer identifier (<xref section="3.3" sectionFormat="comma" target="RFC8414"/>).  A Workload Identity Provider <bcp14>SHOULD</bcp14> publish its keys at a URL, so that keys can rotate without administrator action.</t>
        <t>On each assertion the Authorization Server finds the Workload Identity Provider registration the assertion matches: <tt>iss</tt> equals the registration's issuer identifier by Simple String Comparison (<xref section="3" sectionFormat="comma" target="RFC7523"/>) and, where the registration names a claim (<xref target="tenants"/>), the assertion carries that claim with the registered value.  An Authorization Server <bcp14>MUST</bcp14> ensure that an assertion can match at most one of its registrations.  The Authorization Server <bcp14>MUST</bcp14> reject an assertion whose <tt>typ</tt> header is not <tt>oauth-wag+jwt</tt> (<xref target="authorization-grant-claims"/>), comparing as described in <xref section="4.1.9" sectionFormat="comma" target="RFC7515"/>, <bcp14>MUST</bcp14> reject an assertion that matches no registration, <bcp14>MUST</bcp14> verify the signature only under a key configured or retrieved for the matched registration's issuer identifier - never under key material or key locations carried in the assertion (<xref section="3.8" sectionFormat="comma" target="RFC8725"/> and <xref section="3.10" sectionFormat="comma" target="RFC8725"/>) - and <bcp14>MUST</bcp14> interpret <tt>sub</tt> and <tt>jti</tt> only within the scope of the matched registration.</t>
      </section>
      <section anchor="properties">
        <name>Permissions</name>
        <t>During Workload Identity Provider registration, the Authorization Server sets local policy for what permissions to assign an access token given in return for a WAG.  This policy <bcp14>MAY</bcp14> involve consulting claims, other than <tt>nickname</tt>, that the Workload Identity Provider asserts about the Agent in the WAG. A claim is an assertion by the Workload Identity Provider, meaningful only within the context of that Workload Identity Provider, and an Authorization Server <bcp14>MUST NOT</bcp14> assume that a similarly named value from another Workload Identity Provider means the same thing.</t>
        <t>The specific claims a Workload Identity Provider provides, and what permissions an Authorization Server decides to grant are outside the scope of this document.</t>
        <section anchor="permissions-example">
          <name>Permissions Example</name>
          <t>This example is non-normative.  It illustrates one shape the permission decision can take.</t>
          <ul spacing="normal">
            <li>
              <t>The Workload Identity Provider is configured to include a claim such as <tt>"roles": ["databases-team"]</tt> in its assertions.</t>
            </li>
            <li>
              <t>An administrator configures the Platform so that members of the databases team can create Agents that have that role.</t>
            </li>
            <li>
              <t>Each Authorization Server has its own concept of groups, roles, and permissions, and its administrator configures what access to grant based on a <tt>roles</tt> claim containing <tt>databases-team</tt>.</t>
            </li>
            <li>
              <t>At a ticket tracker, the role is mapped to less than the team itself has: reading tickets, and writing comments on them, in projects associated with the team.</t>
            </li>
            <li>
              <t>At a log service, the role is mapped to exactly the access the team has.</t>
            </li>
            <li>
              <t>A member of the team creates an Agent with a nickname "Database Migration helper".  On its first assertion at either Authorization Server, the Agent receives an access token with the permissions mapped there, without further registration.</t>
            </li>
            <li>
              <t>A different member of the team creates an Agent with a nickname "Latency optimizer". On its first assertion it also receives an access token with the mapped permissions without further registration.</t>
            </li>
          </ul>
          <t>The claim names are used for illustrative purposes only. Inclusion of such claims is optional, and Workload Identity Providers may define specific claims depending on their deployment, supported access control models and ecosystem.</t>
        </section>
      </section>
      <section anchor="tenants">
        <name>Multi-Tenancy</name>
        <t>In many cases, a deployment (Workload Identity Provider or AS/RS) will partition its infrastructure by customer organizations, or tenants.  For the purposes of this document, a Workload Identity Provider and Authorization Server / Resource Server refers to a single partition belonging to a single organization (<xref target="conventions"/>). A Workload Identity Provider that knows the organization's identifier at the Authorization Server can carry it in the assertion, as the <tt>aud_tenant</tt> claim of <xref section="3.1" sectionFormat="comma" target="IDJAG"/> does; this document does not require it.</t>
        <t>Where each Workload Identity Provider has its own issuer identifier, the issuer identifier alone identifies the Workload Identity Provider and nothing further in this section applies.  Where several Workload Identity Providers share one issuer identifier, a claim in the assertion tells them apart.  Existing issuers use different claims for this, so this document does not fix the claim's name: the Workload Identity Provider registration includes the claim and the value it carries for that Workload Identity Provider, and the Authorization Server applies both when matching an assertion (<xref target="issuer-keys"/>).  An assertion that lacks the named claim, or carries another value, does not match that registration.</t>
        <t>It is <bcp14>RECOMMENDED</bcp14> that deployments use dedicated issuers for partitions. If that's not possible, it is <bcp14>RECOMMENDED</bcp14> to use the <tt>tenant</tt> claim (<xref section="3.1" sectionFormat="comma" target="IDJAG"/>) in order to simplify interoperability.</t>
        <t>How an Authorization Server determines whether a Workload Identity Provider needs a differentiating claim, and which, is left to be discovered out of band of this specification.</t>
      </section>
    </section>
    <section anchor="errors">
      <name>Error Responses</name>
      <t>When a token request fails, the Authorization Server <bcp14>SHOULD</bcp14> indicate in <tt>error_description</tt> (<xref section="5.2" sectionFormat="comma" target="RFC6749"/>) who must act: an administrator of the Authorization Server, if the Workload Identity Provider is not trusted or the Agent holds no permission for the request; or the Platform, if the assertion is invalid.  An untrusted Workload Identity Provider or an invalid assertion yields <tt>invalid_grant</tt> (<xref section="3.1" sectionFormat="comma" target="RFC7523"/>); a missing permission yields <tt>invalid_scope</tt> or <tt>invalid_target</tt> (<xref target="RFC8707"/>) where a specific scope or resource is refused, otherwise <tt>invalid_grant</tt>.  When an action can be taken to resolve the issue, the Authorization Server <bcp14>SHOULD</bcp14> include a link in <tt>error_uri</tt>.</t>
    </section>
    <section anchor="as-metadata">
      <name>Authorization Server Metadata</name>
      <t>An Authorization Server that publishes metadata <xref target="RFC8414"/> <bcp14>SHOULD</bcp14> include the value <tt>urn:ietf:params:oauth:grant-profile:wag</tt> (<xref target="iana-uri"/>) in its <tt>authorization_grant_profiles_supported</tt> metadata parameter (<xref section="7.2" sectionFormat="comma" target="IDJAG"/>).  An Authorization Server that includes this value <bcp14>MUST</bcp14> also include <tt>urn:ietf:params:oauth:grant-type:jwt-bearer</tt> in <tt>grant_types_supported</tt>.</t>
      <t>The following is a non-normative example of Authorization Server metadata advertising support for this specification:</t>
      <artwork><![CDATA[
{
  "issuer": "https://as.example.com",
  "token_endpoint": "https://as.example.com/token",
  "grant_types_supported": [
    "urn:ietf:params:oauth:grant-type:jwt-bearer"
  ],
  "authorization_grant_profiles_supported": [
    "urn:ietf:params:oauth:grant-profile:wag"
  ]
}
]]></artwork>
    </section>
    <section anchor="oi">
      <name>Open Issues</name>
      <ul spacing="normal">
        <li>
          <t>Agent ownership: see issue #13.</t>
        </li>
        <li>
          <t>Proof of possession: the grant is a bearer assertion and no client authentication is required; whether to name a hardening (sender-constrained access tokens, authenticating the presenting instance, or the Platform authenticating as a client) and which, if any, to require.</t>
        </li>
        <li>
          <t>Replay: whether an Authorization Server is required to reject a <tt>jti</tt> it has already accepted while the assertion is still valid, or whether that stays optional as in <xref section="3" sectionFormat="comma" target="RFC7523"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This revision lists the considerations it is aware of; a fuller treatment will follow.</t>
      <ul spacing="normal">
        <li>
          <t>Agents are accepted on their first assertion, so the set of acceptable Agents grows at the Platform with no action at the Authorization Server, and each new Agent creates state there; an Authorization Server can cap new Agents per Workload Identity Provider registration.</t>
        </li>
        <li>
          <t>The assertion is a bearer credential: a short lifetime, its <tt>aud</tt> and, where the Authorization Server enforces it, single use by <tt>jti</tt> bound what a stolen assertion is worth.</t>
        </li>
        <li>
          <t>Keys are held per issuer identifier, so that one issuer's key never verifies another's assertion (<xref target="issuer-keys"/>); whoever controls an issuer identifier, or the DNS name under it, controls what every trusting Authorization Server accepts.</t>
        </li>
        <li>
          <t>Workload Identity Providers under a shared issuer identifier share its keys, so the claim that tells them apart (<xref target="tenants"/>) is only as trustworthy as the party signing for all of them, and a Workload Identity Provider registration for a shared issuer identifier that names no claim trusts every Workload Identity Provider under it.</t>
        </li>
        <li>
          <t>Where one Authorization Server serves several organizations, a Workload Identity Provider registration created by the wrong organization routes another organization's Agents to it; who may register a given Workload Identity Provider is out of scope.</t>
        </li>
        <li>
          <t>The <tt>nickname</tt> claim is free text set at the Platform: it is not unique, can change, and can imitate another Agent or a person, including with visually similar characters.  It <bcp14>MUST NOT</bcp14> be used in an authorization decision or as an identifier, by the Authorization Server or by any party it passes the nickname to; <xref target="identity-model"/> says what identifies an Agent.</t>
        </li>
        <li>
          <t>Error responses (<xref target="errors"/>) tell any presenter which Workload Identity Providers an Authorization Server trusts, and <tt>error_uri</tt> hands a link to an unauthenticated presenter.</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="iana-media-type">
        <name>Media Types</name>
        <t>This section registers <tt>oauth-wag+jwt</tt>, a new media type <xref target="RFC2046"/> in the "Media Types" registry <xref target="IANA.media-types"/> in the manner described in <xref target="RFC6838"/>.  It can be used to indicate that the content is a Workload Authorization Grant.</t>
      </section>
      <section anchor="iana-uri">
        <name>OAuth URI Registration</name>
        <t>This section registers <tt>urn:ietf:params:oauth:token-type:wag</tt> in the "OAuth URI" subregistry of the "OAuth Parameters" registry <xref target="IANA.oauth-parameters"/>.</t>
        <ul spacing="normal">
          <li>
            <t>URN: urn:ietf:params:oauth:token-type:wag</t>
          </li>
          <li>
            <t>Common Name: Token type URI for a Workload Authorization Grant</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Specification Document: This document</t>
          </li>
        </ul>
        <t>This section registers <tt>urn:ietf:params:oauth:grant-profile:wag</tt> in the "OAuth URI" subregistry of the "OAuth Parameters" registry <xref target="IANA.oauth-parameters"/>, for use in the <tt>authorization_grant_profiles_supported</tt> metadata parameter (<xref target="as-metadata"/>).</t>
        <ul spacing="normal">
          <li>
            <t>URN: urn:ietf:params:oauth:grant-profile:wag</t>
          </li>
          <li>
            <t>Common Name: Authorization grant profile identifier for a Workload Authorization Grant</t>
          </li>
          <li>
            <t>Change Controller: IETF</t>
          </li>
          <li>
            <t>Specification Document: <xref target="as-metadata"/> of this document</t>
          </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="RFC2046">
          <front>
            <title>Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="N. Borenstein" initials="N." surname="Borenstein"/>
            <date month="November" year="1996"/>
            <abstract>
              <t>This second document defines the general structure of the MIME media typing system and defines an initial set of media types. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2046"/>
          <seriesInfo name="DOI" value="10.17487/RFC2046"/>
        </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="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</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 Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC7517">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </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="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="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="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="RFC9525">
          <front>
            <title>Service Identity in TLS</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>Many application technologies enable secure communication between two entities by means of Transport Layer Security (TLS) with Internet Public Key Infrastructure using X.509 (PKIX) certificates. This document specifies procedures for representing and verifying the identity of application services in such interactions.</t>
              <t>This document obsoletes RFC 6125.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9525"/>
          <seriesInfo name="DOI" value="10.17487/RFC9525"/>
        </reference>
        <reference anchor="OIDC-DISCOVERY" target="https://openid.net/specs/openid-connect-discovery-1_0.html">
          <front>
            <title>OpenID Connect Discovery 1.0 incorporating errata set 2</title>
            <author initials="N." surname="Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones">
              <organization/>
            </author>
            <author initials="E." surname="Jay">
              <organization/>
            </author>
            <date year="2023" month="December"/>
          </front>
        </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="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="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="IANA.media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.oauth-parameters" target="https://www.iana.org/assignments/oauth-parameters">
          <front>
            <title>OAuth Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC7523BIS">
          <front>
            <title>Updates to OAuth 2.0 JSON Web Token (JWT) Client Authentication and Assertion-Based Authorization Grants</title>
            <author fullname="Michael B. Jones" initials="M. B." surname="Jones">
              <organization>Self-Issued Consulting</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Chuck Mortimore" initials="C." surname="Mortimore">
              <organization>Disney</organization>
            </author>
            <author fullname="Filip Skokan" initials="F." surname="Skokan">
              <organization>Okta</organization>
            </author>
            <date day="28" month="April" year="2026"/>
            <abstract>
              <t>   This document updates RFC7521, RFC7522, RFC7523 and RFC9126 with
   respect to the treatment of audience values in OAuth 2.0 Client
   Assertion Authentication and Assertion-based Authorization Grants to
   address a security vulnerability identified in the previous
   requirements for those audience values in multiple OAuth 2.0
   specifications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-rfc7523bis-11"/>
        </reference>
        <reference anchor="IDJAG">
          <front>
            <title>Identity Assertion JWT Authorization Grant</title>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
              <organization>Independent</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="30" month="October" year="2026"/>
            <abstract>
              <t>   This specification provides a mechanism for an application to use an
   identity assertion to obtain an access token for a third-party API by
   coordinating through an identity provider that the downstream
   Resource Authorization Server already trusts for single sign-on
   (SSO), using OAuth 2.0 Token Exchange (RFC 8693) and the JWT Profile
   for OAuth 2.0 Authorization Grants (RFC 7523).  This pattern is
   informally referred to as Cross-App Access (XAA).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-assertion-authz-grant-06"/>
        </reference>
      </references>
    </references>
    <?line 350?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The editors thank Pieter Kasselman, Karl McGuinness, Kevin Kelley, Emily Lauber, and Maxwell Gerber for discussions that shaped this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
L3CVLgJqqojXWjr+H46L+5K2YAAA

-->

</rfc>
