<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-gazitt-oauth-authzen-issuance-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="AuthZEN Token Issuance">AuthZEN Profile for OAuth 2.0 Token Issuance</title>
    <seriesInfo name="Internet-Draft" value="draft-gazitt-oauth-authzen-issuance-00"/>
    <author fullname="Omri Gazitt">
      <organization>Independent</organization>
      <address>
        <email>ogazitt@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="August" day="05"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>oauth</keyword>
    <keyword>authorization</keyword>
    <keyword>authzen</keyword>
    <keyword>policy</keyword>
    <keyword>token exchange</keyword>
    <abstract>
      <?line 77?>

<t>Numerous OAuth 2.0 specifications define a moment at which an authorization
server decides whether to issue a security token, and each of them declares
the decision itself to be a matter of local policy that is out of scope.
The result is that a decision common to every OAuth deployment has no
interoperable expression.</t>
      <t>This document defines a profile for using the OpenID AuthZEN Authorization
API to externalize that decision to a Policy Decision Point. It specifies
how the inputs to a token issuance request map onto AuthZEN's mandatory
five-tuple, how a Policy Decision Point response may shape the issued token,
and how the two parties discover each other's capabilities.</t>
      <t>The mapping is complete for grants whose request names a single party and a
single target, including the authorization code and client credentials
grants. Companion documents bind the grant families that add structure this
document does not model, the token exchange family first among them.</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-gazitt-oauth-authzen-issuance/"/>.
      </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/ogazitt/oauth-authzen"/>.</t>
    </note>
  </front>
  <middle>
    <?line 96?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Consider the moment an OAuth 2.0 authorization server (AS) has authenticated
a client, validated a grant, and must decide whether to mint a token - and
if so, with what scopes, what audience, what lifetime, and what claims.
Every specification that defines such a moment models its inputs in careful
detail and then stops short of the decision.</t>
      <t><xref target="RFC8693"/>, which defines OAuth 2.0 Token Exchange, is explicit that the
decision to issue is governed by policy it does not define. The
specifications built on top of it inherit that seam: identity chaining
(<xref target="I-D.ietf-oauth-identity-chaining"/>), identity assertion authorization
grants (<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/>), and transaction
tokens (<xref target="I-D.ietf-oauth-transaction-tokens"/>) each describe an
"administrator-defined policy" or equivalent without describing how such a
policy is expressed, evaluated, or externalized.</t>
      <t>Leaving the decision to local policy is the correct choice for those
documents. But it means that the single most security-relevant step in token
issuance is, today, an implementation detail - expressed in vendor-specific
rules engines, inline hooks, and scripting extensions that do not port
between authorization servers and cannot be reasoned about by anything
outside the AS.</t>
      <t><xref target="AUTHZEN"/> defines an interoperable API between a Policy Enforcement Point
(PEP) and a Policy Decision Point (PDP). This document profiles that API for
the token issuance moment, casting the <strong>authorization server as a PEP</strong>.</t>
      <section anchor="design-goals">
        <name>Design Goals</name>
        <t><strong>One mechanism, many issuance moments.</strong> The decision point is
structurally identical across grant types: a party is asking for a token,
naming a target and some set of privileges. This document defines that
mapping once. Bindings (<xref target="companions"/>) supply what is specific to a given
grant or token type, and are expected to be short.</t>
        <t><strong>Interoperability at the level of policy, not just wire format.</strong>
          <xref target="AUTHZEN"/> makes exactly five fields mandatory in an evaluation request:
<tt>subject.type</tt>, <tt>subject.id</tt>, <tt>action.name</tt>, <tt>resource.type</tt>, and
<tt>resource.id</tt>. Everything else - the <tt>properties</tt> bag on each entity, and the
<tt>context</tt> object - is optional. That asymmetry is deliberate. It is what
allows one request shape to be understood by policy engines with very
different internal models: attribute- and policy-based engines that evaluate
expressions over arbitrary input, and relationship-based engines in the style
of <xref target="ZANZIBAR"/> that reason over a typed graph of subjects, relations, and
objects.</t>
        <t>This is not a claim that a relationship-based engine can consume nothing
beyond the five-tuple. Such engines commonly accept contextual tuples
supplied at query time, and a PDP may project <tt>properties</tt> or <tt>context</tt> into
them. It is a claim about where a profile should put the load. The five-tuple
has a shape every conforming PDP can be expected to read the same way; a
free-form bag does not, and a profile that carried its decision-critical
inputs there would nominally use AuthZEN while leaving each PDP to infer the
semantics on its own.</t>
        <t>This document therefore adopts a design rule:</t>
        <ul empty="true">
          <li>
            <t>The five-tuple is the primary information model target. Every input on
which the decision depends <bcp14>MUST</bcp14> be expressed in it. <tt>properties</tt> and
<tt>context</tt> carry advisory input only, and a conforming mapping <bcp14>MUST</bcp14> be
implementable by a PDP that reads only the five-tuple.</t>
          </li>
        </ul>
        <t>The rule is applied throughout and is not re-argued at each mapping.</t>
        <t><strong>Least surprise for the AS.</strong> The profile does not ask the AS to surrender
decisions it is authoritative for. A PDP may narrow what is issued; it may
not broaden it, re-subject it, or re-target it (<xref target="no-broadening"/>).</t>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>This document covers <strong>token issuance</strong>: the decision made by an
authorization server at its token endpoint, before a token is minted. It
does not address enforcement at a resource server, which is the ordinary
case AuthZEN already serves and requires no profile.</t>
        <t>The framework decides an <strong>issuance gate</strong>. Where a deployment's policy
depends on quantitative or transactional constraints - a payment amount, a
rate limit - those flow in as advisory context and out as token shaping
(<xref target="shaping"/>), to be enforced by downstream policy enforcement points. Any
conforming PDP can adjudicate the gate, because the gate is expressed
entirely in the five-tuple. Whether a given PDP also adjudicates the context
is a property of that deployment and is not something this profile
guarantees. Stating that boundary is what keeps the design rule above from
overpromising.</t>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</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>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>This document uses the terms Authorization Server, Client, Resource Server,
access token, and scope from <xref target="RFC6749"/>; Policy Decision Point (PDP),
Policy Enforcement Point (PEP), Subject, Action, Resource, and Context from
<xref target="AUTHZEN"/>.</t>
      <dl>
        <dt>Issuance target:</dt>
        <dd>
          <t>The audience of the access being granted - the party the issued token
authorizes its bearer to act against. Usually the value the AS intends for
the token's <tt>aud</tt> claim.</t>
        </dd>
        <dt>Gate tuple:</dt>
        <dd>
          <t>An evaluation request whose action expresses <em>issuance authority</em> - whether
the subject may obtain a token of a given type for the issuance target.
See <xref target="gate-and-scope"/>.</t>
        </dd>
        <dt>Scope tuple:</dt>
        <dd>
          <t>An evaluation request whose action is a requested scope, expressing
<em>access authority</em>. See <xref target="gate-and-scope"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <artwork type="ascii-art"><![CDATA[
+--------+           +----------------------+        +-------+
| Client |           | Authorization Server |        |  PDP  |
+---+----+           |        (PEP)         |        +---+---+
    |                +----------+-----------+            |
    | 1. token req              |                        |
    +-------------------------->|                        |
    |                           | 2. authn client,       |
    |                           |    validate grant      |
    |                           |                        |
    |                           | 3. evaluation request  |
    |                           +----------------------->|
    |                           |                        |
    |                           | 4. decision + shaping  |
    |                           |<-----------------------+
    |                           |                        |
    |                           | 5. mint per decision   |
    |                           |    and shaping         |
    | 6. token response         |                        |
    |<--------------------------+                        |
]]></artwork>
      <t>Step 2 is unchanged from the underlying grant: the AS remains solely
responsible for authenticating the client, validating the grant or subject
token, and verifying any proof of possession. The PDP is consulted only
after those checks succeed. A PDP permit does not substitute for any of
them.</t>
    </section>
    <section anchor="deployment">
      <name>Deployment Considerations</name>
      <section anchor="colocation">
        <name>Colocation and Latency</name>
        <t>A token endpoint can be a very high volume path. Multi-tenant authorization
servers operate at request rates that leave a per-request budget in the low
milliseconds, and an issuance decision that added a round trip to a remote
service would not be deployable at that scale.</t>
        <t>This profile does not add one. <xref target="AUTHZEN"/> specifies a request and response
contract between a Policy Enforcement Point and a Policy Decision Point; it
does not specify where the Policy Decision Point runs. The PDP of
<xref target="architecture"/> may be embedded in the authorization server's own process,
loaded as a module or as a WebAssembly component, resident on the same host,
or reached over a network. Conformance to this profile is a property of the
messages exchanged and not of the topology that carries them, and
deployments with the strictest budgets are expected to evaluate in process
or on the same host. Step 3 of <xref target="architecture"/> is drawn as an arrow because
it is a request, not because it is a hop.</t>
        <t>Two properties of the issuance moment make the budget more forgiving than
the volume alone suggests.</t>
        <t>The decision is made once per token rather than once per request. An access
token is presented many times, over a lifetime usually measured in minutes
or hours, so the cost of deciding at issuance is amortized across every
later presentation. This is the reverse of the resource server deployments
<xref target="AUTHZEN"/> was first written for, where the decision recurs on every call
and the budget is correspondingly tighter.</t>
        <t>The inputs are already in hand. By the time an AS reaches this decision it
has authenticated the client, validated the grant, and resolved the subject.
The evaluation request of <xref target="request"/> is assembled from values the AS
already holds, and this profile implies no additional lookup to construct
it.</t>
      </section>
      <section anchor="deferred">
        <name>Decisions That Cannot Be Made Synchronously</name>
        <t>Some issuance decisions cannot complete within the time a token request will
wait, at any topology. A policy may call for human review, for an
out-of-band approval, or for a check against a system whose own latency is
unbounded.</t>
        <t>This document defines no mechanism for those, and does not need to.
<xref target="I-D.gerber-oauth-deferred-token-response"/> defines a deferred token
response, in which an authorization server that cannot answer immediately
returns a deferral code and the client retrieves the outcome later. An AS
implementing both may treat a decision it cannot obtain synchronously as a
deferral rather than as a denial, evaluate it out of band, and apply the
response of <xref target="shaping"/> to the token it eventually issues. Delay does not
relax <xref target="no-broadening"/>: a decision that arrives late constrains the issued
token exactly as one that arrives promptly would.</t>
      </section>
      <section anchor="as-seam">
        <name>The Seam Inside the Authorization Server</name>
        <t><xref target="architecture"/> separates validating a grant from deciding whether to honor
it, and asks a PDP only the second question. In a deployed authorization
server that separation is often less clean than the figure. Credential
handling, grant validation, session and consent state, and token minting are
commonly one subsystem, with the inputs this profile needs distributed across
it rather than exposed at any single point.</t>
        <t>The consequence is practical rather than normative. An authorization server
that cannot assemble the fields of <xref target="request"/> at one point in its issuance
path will have to introduce such a point, and for many implementations that
will be the substantive work rather than the mapping or the response
handling. This profile is defined in terms of the values an AS holds when it
makes the decision, not in terms of where an implementation keeps them, so it
constrains neither the internal structure nor the refactoring.</t>
      </section>
    </section>
    <section anchor="request">
      <name>Forming the Evaluation Request</name>
      <section anchor="subject">
        <name>Subject</name>
        <t><tt>subject</tt> identifies the party the issued token will represent.</t>
        <t><tt>subject.type</tt> <bcp14>MUST</bcp14> be one of the registered values in <xref target="iana-types"/>:</t>
        <ul spacing="normal">
          <li>
            <t><tt>user</tt> - a natural person.</t>
          </li>
          <li>
            <t><tt>client</tt> - an OAuth client acting on its own behalf.</t>
          </li>
          <li>
            <t><tt>workload</tt> - a non-human software identity, such as a workload with a
cryptographic identity document.</t>
          </li>
        </ul>
        <t><tt>subject.id</tt> <bcp14>MUST</bcp14> be the identifier the AS intends to place in the issued
token's subject claim. Where the AS applies a transformation to subject
identifiers - pairwise or pseudonymous identifiers, or a mapping from an
external identity to a local account - that transformation <bcp14>MUST</bcp14> be applied
<em>before</em> the evaluation request is constructed, so that the identifier the
PDP authorizes is the identifier the token carries.</t>
      </section>
      <section anchor="resource">
        <name>Resource</name>
        <t><tt>resource.type</tt> <bcp14>MUST</bcp14> be <tt>audience</tt>. <tt>resource.id</tt> <bcp14>MUST</bcp14> be the issuance
target.</t>
        <t>A single registered type is used rather than a type per kind of target
(service, trust domain, peer authorization server) because the type names
the <em>protocol role</em> the target plays, not a guess at its nature. Policies
written against <tt>audience</tt> port across deployments; policies written against
locally invented type names do not.</t>
        <t>Where the request carries an explicit target - an <tt>audience</tt> parameter, or a
<tt>resource</tt> parameter in the sense of <xref target="RFC8707"/> - that value determines
<tt>resource.id</tt>. Where it does not, the AS's default audience for the grant
determines it.</t>
      </section>
      <section anchor="gate-and-scope">
        <name>Actions: Gate Tuples and Scope Tuples</name>
        <t>Token issuance asks two questions that are frequently conflated:</t>
        <ol spacing="normal" type="1"><li>
            <t>May this subject obtain <em>a token of this kind</em> for this target? This is
<strong>issuance authority</strong>, and in delegation scenarios, delegation
authority.</t>
          </li>
          <li>
            <t>May this subject exercise <em>this scope</em> at this target? This is <strong>access
authority</strong>.</t>
          </li>
        </ol>
        <t>These are distinct privileges. <xref target="RFC8693"/> defines a <tt>may_act</tt> claim
precisely because the authority to act on another party's behalf is not the
same as the authority to access a resource. A subject may legitimately be
permitted to hold an access token for an API while being forbidden from
minting a delegated grant aimed at that same API.</t>
        <t>Because AuthZEN's information model provides exactly one action per
evaluation, these two questions <bcp14>MUST</bcp14> be expressed as separate evaluations
rather than as two interpretations of one <tt>action.name</tt>.</t>
        <section anchor="gate-tuple">
          <name>Gate Tuple</name>
          <t>A gate tuple is an evaluation whose <tt>action.name</tt> has three colon-separated
segments:</t>
          <artwork><![CDATA[
issue:<token-type>:<grant-type>
]]></artwork>
          <t>where <tt>&lt;token-type&gt;</tt> and <tt>&lt;grant-type&gt;</tt> are short names registered in
<xref target="iana-actions"/> - for example <tt>issue:access_token:authorization_code</tt>,
<tt>issue:id_token:authorization_code</tt>, <tt>issue:refresh_token:token_exchange</tt>.</t>
          <t>The <tt>issue:</tt> prefix is reserved. A deployment <bcp14>MUST NOT</bcp14> use a scope value
beginning with <tt>issue:</tt> as a scope tuple action.</t>
          <t>The grant is part of the action because it is not recoverable from the rest
of the tuple and it is not implied by the token type. The same subject,
audience, and token type arise from an authorization code request and from
its later refresh, and from a client requesting a token for itself and that
same client exchanging for one. A policy that distinguishes those cases -
requiring fresh authorization at a high-value audience, or permitting a
client to hold a token but not to exchange for one - has nothing to attach
to unless the grant is in the five-tuple.</t>
          <t>Neither segment subsumes the other. A single authorization code request may
mint an access token, a refresh token, and an ID token, which are separately
gateable; and a token exchange selects its output through
<tt>requested_token_type</tt>, so its token type is a variable of the request.
Together the two segments name one privilege: what may be minted, and by
what means.</t>
        </section>
        <section anchor="action-portability">
          <name>Action Name Portability</name>
          <t>Short names registered under <xref target="iana-actions"/> <bcp14>MUST</bcp14> match
<tt>[a-z][a-z0-9_]{0,30}</tt>, and a composed gate action name <bcp14>MUST NOT</bcp14> exceed 50
characters.</t>
          <t>The bounds exist for portability. Relationship-based engines commonly
validate relation identifiers against a restricted grammar, admitting a small
character set within a modest length limit. A PDP built on such an engine can
canonicalize an action name defined by this document by replacing each <tt>:</tt>
with a character the grammar admits, conventionally <tt>_</tt>. The bounds above are
what make that transformation total: any registered name survives it, so a
policy written against these names ports without being rewritten.</t>
          <t>Carrying a grant type URI verbatim would not survive it. The composed action
name would exceed the length limits such grammars impose before any question
of characters arose.</t>
          <t>The guarantee covers only the vocabulary this document defines. Scope values
are carried verbatim (<xref target="scope-tuple"/>) and routinely contain characters no
such grammar admits; mapping them remains internal to the PDP.</t>
        </section>
        <section anchor="scope-tuple">
          <name>Scope Tuple</name>
          <t>A scope tuple is an evaluation whose <tt>action.name</tt> is a single requested
scope value, carried verbatim.</t>
          <t>Scope values are not transformed into policy-engine relation names by the
AS. Any such mapping is internal to the PDP. This keeps <tt>action.name</tt> a
stable interface: the AS reports what the client asked for, and the PDP
decides what that means in its own policy vocabulary.</t>
        </section>
        <section anchor="gate-required">
          <name>Gate Tuples Are Always Present</name>
          <t>An AS <bcp14>MUST</bcp14> include a gate tuple in every evaluation request it forms under
this profile. A binding <bcp14>MAY</bcp14> require more than one (<xref target="composition"/>).</t>
          <t>The floor is therefore two evaluations for a request naming scopes, and one
for a request naming none. Deployments are expected to write issuance policy
for every token type and grant combination their AS can produce; a PDP that
advertises support for this profile renders a decision on any registered gate
action it is sent (<xref target="pdp-capabilities"/>), so an AS never has to predict which
combinations a given PDP has policy for.</t>
        </section>
      </section>
      <section anchor="context">
        <name>Context</name>
        <t>The <tt>context</tt> object carries advisory input. A conforming PDP <bcp14>MUST</bcp14> be able
to render a decision without it.</t>
        <t>The following keys are defined by this document; bindings may define more:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Key</th>
              <th align="left">Type</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>client_id</tt></td>
              <td align="left">string</td>
              <td align="left">The authenticated client identifier</td>
            </tr>
            <tr>
              <td align="left">
                <tt>acr</tt></td>
              <td align="left">string</td>
              <td align="left">Authentication context class of the subject</td>
            </tr>
            <tr>
              <td align="left">
                <tt>amr</tt></td>
              <td align="left">array of strings</td>
              <td align="left">Authentication methods, per <xref target="RFC8176"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>auth_time</tt></td>
              <td align="left">integer</td>
              <td align="left">Time of authentication, as in <xref target="RFC7519"/></td>
            </tr>
            <tr>
              <td align="left">
                <tt>cnf</tt></td>
              <td align="left">object</td>
              <td align="left">Confirmation method of the presented credential</td>
            </tr>
          </tbody>
        </table>
        <t>The single-type rule of <xref target="envelope"/> applies here as well: each key above has
one JSON type, and bindings defining further context keys <bcp14>MUST</bcp14> state a type
for each.</t>
        <t>Per <xref target="design-goals"/>, any input on which the decision genuinely depends
belongs in the five-tuple, not here. The grant type is the worked example:
it is decision-critical, so it is a segment of the gate action name
(<xref target="gate-tuple"/>) and does not appear in <tt>context</tt> at all.</t>
      </section>
      <section anchor="composition">
        <name>Batching and Result Composition</name>
        <t>Where a request yields more than one tuple, the AS <bcp14>MUST</bcp14> use the Access
Evaluations API of <xref target="AUTHZEN"/> with <tt>options.evaluations_semantic</tt> set to
<tt>execute_all</tt>, and <bcp14>MUST</bcp14> place gate tuples at the leading indices of the
<tt>evaluations</tt> array, beginning at index 0.</t>
        <t>A request reduces to a single evaluation only when it names no scopes, in
which case the gate tuple stands alone.</t>
        <t>This document produces exactly one gate tuple. Bindings may produce more:
the token exchange family evaluates the authority of the requesting party
separately from that of the subject, and so produces two.</t>
        <t><tt>execute_all</tt> is required because scope denials must be able to narrow the
grant rather than fail it: an AS that requested three scopes and received
two permits issues a token bearing two scopes, and reports the reduced set
in the <tt>scope</tt> response parameter as <xref target="RFC6749"/> already requires.</t>
        <t>A gate denial, by contrast, is fatal. If any leading gate tuple has a
decision of <tt>false</tt>, the AS <bcp14>MUST</bcp14> fail the request and <bcp14>MUST NOT</bcp14> issue a
token, irrespective of the other results.</t>
        <t><xref target="AUTHZEN"/> evaluation semantics are selected per request and cannot mark an
individual batch item as a precondition, so this composition rule is
enforced by the AS. This is well within the PEP's role - the AS is already
interpreting per-item results in order to downscope.</t>
        <t>Where the request named scopes and every scope tuple is denied, the AS <bcp14>MUST</bcp14>
fail the request rather than issue a token with an empty scope set, even
though the gate permitted it. A permitted gate authorizes a token of that
kind to exist; it does not authorize an empty one.</t>
      </section>
    </section>
    <section anchor="shaping">
      <name>Processing the Evaluation Response</name>
      <t>A PDP <bcp14>MAY</bcp14> return, in the response <tt>context</tt>, information that shapes the
token the AS issues.</t>
      <section anchor="envelope">
        <name>The <tt>issuance</tt> Envelope</name>
        <t>All keys defined by this profile appear within a single <tt>issuance</tt> member of
the response <tt>context</tt>:</t>
        <sourcecode type="json"><![CDATA[
{
  "decision": true,
  "context": {
    "reason_admin": { "200": "matched policy P-4471" },
    "issuance": {
      "token_lifetime": 300,
      "claims": { "groups": ["engineering"] }
    }
  }
}
]]></sourcecode>
        <t>An AS implementing this profile <bcp14>MUST</bcp14> process <tt>context.issuance</tt> and <bcp14>MUST</bcp14>
ignore unrecognized members outside it, preserving the advisory character
that <xref target="AUTHZEN"/> gives response context generally.</t>
        <t>Every key defined below has exactly one JSON type, and bindings that define
further keys <bcp14>MUST</bcp14> do the same. Where the corresponding OAuth or JWT
construct admits more than one - <tt>aud</tt> is the notable case, per Section
4.1.3 of <xref target="RFC7519"/> - this profile picks one rather than carrying the
polymorphism forward. An AS validates the response context before acting on
it, and a union type costs more to validate, to schematize, and to project
into a typed representation than the shorthand saves.</t>
      </section>
      <section anchor="mtu">
        <name>Mandatory-to-Understand</name>
        <t><xref target="AUTHZEN"/>, in the definitions of the <tt>decision</tt> values in its Decision
section, states that where a PEP does not understand information in the
response context, the PEP <bcp14>MAY</bcp14> reject the decision. That permission is
appropriate for a general-purpose API in which response context is advisory.
It is not sufficient here, because the consequences are asymmetric:</t>
        <ul spacing="normal">
          <li>
            <t>Ignoring a key that <strong>narrows</strong> the grant yields a token <strong>broader than
the PDP authorized</strong> - a silent privilege escalation.</t>
          </li>
          <li>
            <t>Ignoring a key that <strong>adds</strong> information yields a token narrower than
intended - a functional shortfall, not a security failure.</t>
          </li>
        </ul>
        <t>This profile therefore adopts the following rule, from which the treatment
of every key below is derived:</t>
        <ul empty="true">
          <li>
            <t>A response-context key is mandatory-to-understand if and only if ignoring
it would produce a token broader than the PDP authorized. For such keys,
an AS that does not understand and apply the key <bcp14>MUST</bcp14> treat the permit as
a denial.</t>
          </li>
        </ul>
      </section>
      <section anchor="no-broadening">
        <name>No Broadening</name>
        <t>A PDP <bcp14>MUST NOT</bcp14> return a shaping value that grants access the AS would not
otherwise have granted, and an AS <bcp14>MUST</bcp14> reject a decision that attempts it.</t>
        <t>The PDP decides whether and how much; it does not decide what else. Without
this rule, an evaluation of <tt>files.read</tt> could return a token bearing
<tt>admin</tt>, and the token would assert a privilege no evaluation ever
considered.</t>
      </section>
      <section anchor="constraining-keys">
        <name>Constraining Keys</name>
        <t>The keys in this section are mandatory-to-understand under <xref target="mtu"/>.</t>
        <section anchor="grantedscope">
          <name><tt>granted_scope</tt></name>
          <t>A space-delimited string in the syntax of the <tt>scope</tt> parameter of
<xref target="RFC6749"/>, giving the scope set the AS is authorized to grant.</t>
          <t><tt>granted_scope</tt> <bcp14>MUST</bcp14> be a subset of the scopes the AS would otherwise have
granted - the requested scopes, or for a request naming none, the AS's
default set for that client and target. The AS <bcp14>MUST</bcp14> reject the decision
otherwise.</t>
          <t>Its principal use is the gate-only evaluation, where there are no scope
tuples and this key is how a PDP answers "permit, and grant this set."
Enumerating a grantable set is a search operation rather than a check; a PDP
unable to perform it returns a bare permit and the AS falls back to its own
defaults, which is a safe degradation.</t>
          <t>Where scope tuples are present, the per-item decisions already express
downscoping, and a PDP <bcp14>SHOULD NOT</bcp14> also return <tt>granted_scope</tt>.</t>
        </section>
        <section anchor="tokenlifetime">
          <name><tt>token_lifetime</tt></name>
          <t>A non-negative integer number of seconds, interpreted as a <strong>ceiling</strong>. The
AS <bcp14>MUST</bcp14> issue a token whose lifetime is the lesser of this value and the
lifetime it would otherwise have used. It is never a floor: a PDP cannot
extend a token's life beyond the AS's own policy.</t>
          <t>A value of <tt>0</tt> <bcp14>MUST</bcp14> be treated as a denial rather than as an instruction to
mint an already-expired token.</t>
        </section>
        <section anchor="audience">
          <name><tt>audience</tt></name>
          <t>An array of strings, narrowing the set of targets for which the token may be
issued. Each value <bcp14>MUST</bcp14> appear among the <tt>resource.id</tt> values of the
permitted evaluations.</t>
          <t>The value is an array even when it names a single target. This is the key
where the single-type rule above is most visible, and where it also makes
the aggregation rule of <xref target="aggregation"/> state plainly: intersection is an
operation over sets. An AS remains free to render a single-element set as a
bare string in the token's own <tt>aud</tt> claim, where <xref target="RFC7519"/> permits it.</t>
          <t>Where the resulting set is empty, the AS <bcp14>MUST</bcp14> fail the request; for token
exchange requests the appropriate error is <tt>invalid_target</tt> (<xref target="RFC8693"/>).</t>
        </section>
        <section anchor="authorizationdetails">
          <name><tt>authorization_details</tt></name>
          <t>An array in the syntax of <xref target="RFC9396"/>, replacing - not merged with - the
authorization details of the request.</t>
          <t>Replacement admits arbitrary structured narrowing, which is what a PDP
filtering rich authorization requests needs, but "narrower" is not decidable
for arbitrary authorization detail types. This profile therefore requires:</t>
          <ul spacing="normal">
            <li>
              <t><strong>Structural check, always.</strong> Every returned entry <bcp14>MUST</bcp14> have a <tt>type</tt>
present in the request, and its <tt>locations</tt>, <tt>actions</tt>, and <tt>datatypes</tt>
members <bcp14>MUST</bcp14> be subsets of the corresponding members of the request entry
of that type. The AS <bcp14>MUST</bcp14> reject the decision otherwise.</t>
            </li>
            <li>
              <t><strong>Type-specific members.</strong> For members beyond those defined in
<xref target="RFC9396"/>, the AS <bcp14>MUST</bcp14> either apply a validator specific to that
authorization details type or reject the decision. An AS <bcp14>MUST NOT</bcp14> pass
unvalidated structure into an issued token.</t>
            </li>
          </ul>
        </section>
        <section anchor="crit">
          <name><tt>crit</tt></name>
          <t>An array of strings naming members of <tt>claims</tt> (<xref target="claims"/>) that are
themselves mandatory-to-understand. The name and semantics are taken from
the <tt>crit</tt> header parameter of <xref target="RFC7515"/>: an AS that does not understand
and apply a named member <bcp14>MUST</bcp14> treat the permit as a denial.</t>
          <t><tt>crit</tt> exists because the static classification in this section is
incomplete. An additive claim is normally safe to ignore, except where the
claim <em>is</em> a constraint that a downstream enforcement point is expected to
apply - a ceiling asserted by policy, for instance. Dropping such a claim
broadens what the token effectively authorizes.</t>
          <t>A PDP <bcp14>MUST NOT</bcp14> include <tt>crit</tt> unless the AS has declared support for the
corresponding capability (<xref target="discovery"/>).</t>
        </section>
      </section>
      <section anchor="decorating-keys">
        <name>Decorating Keys</name>
        <section anchor="claims">
          <name><tt>claims</tt></name>
          <t>An object whose members are claim names, in the sense of <xref target="RFC7519"/>, and
the values to be included in the issued token. This is the mechanism by
which policy-derived attributes reach the token - group memberships, roles,
and entitlements of the kind <xref target="RFC9068"/> describes for JWT access tokens,
drawn from the schema of <xref target="RFC7643"/>.</t>
          <t>Members of <tt>claims</tt> are advisory under <xref target="mtu"/>: an AS that drops them issues
a less capable token. A PDP that requires a member to be honored <bcp14>MUST</bcp14> name
it in <tt>crit</tt>.</t>
          <t>A PDP <bcp14>MUST NOT</bcp14> set, and an AS <bcp14>MUST</bcp14> reject a response that sets, any of the
following claims:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Reserved</th>
                <th align="left">Rationale</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>iss</tt>, <tt>iat</tt>, <tt>jti</tt></td>
                <td align="left">Provenance, for which the AS is authoritative</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>sub</tt></td>
                <td align="left">It is <tt>subject.id</tt>, an input to the decision</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>aud</tt></td>
                <td align="left">It is <tt>resource.id</tt>, an input to the decision</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>exp</tt>, <tt>nbf</tt></td>
                <td align="left">Expressed by <tt>token_lifetime</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>scope</tt></td>
                <td align="left">Expressed by <tt>granted_scope</tt></td>
              </tr>
              <tr>
                <td align="left">
                  <tt>client_id</tt></td>
                <td align="left">Established by client authentication</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>cnf</tt></td>
                <td align="left">Derived from a proof of possession the AS verified</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>act</tt></td>
                <td align="left">Delegation chain, constructed by the AS</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>authorization_details</tt></td>
                <td align="left">Has its own key and narrowing rules</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>may_act</tt></td>
                <td align="left">Confers future delegation authority; broadening by construction</td>
              </tr>
            </tbody>
          </table>
          <t>The entries for <tt>sub</tt> and <tt>aud</tt> rest on stronger ground than the rest. Both
are inputs to the five-tuple; a PDP that could rewrite either would cause the
AS to issue a token corresponding to a decision that was never evaluated.
Re-subjecting a token is a fresh issuance, not an attenuation of an existing
one, and <bcp14>MUST</bcp14> be evaluated as such.</t>
        </section>
      </section>
      <section anchor="aggregation">
        <name>Aggregation Across a Batch</name>
        <t>An Access Evaluations response in <xref target="AUTHZEN"/> carries no top-level context;
each element of the <tt>evaluations</tt> array is a decision with its own optional
context. Token shaping, however, is a property of the token: there is one
lifetime, one claim set, one authorization details array for the token being
minted, while this profile fans scopes and targets out across many
evaluations.</t>
        <t>An AS <bcp14>MUST</bcp14> therefore compose per-item shaping as follows:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Key</th>
              <th align="left">Aggregation</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>token_lifetime</tt></td>
              <td align="left">Minimum over permitted items</td>
            </tr>
            <tr>
              <td align="left">
                <tt>granted_scope</tt></td>
              <td align="left">Union over permitted items, intersected with what the AS would otherwise grant</td>
            </tr>
            <tr>
              <td align="left">
                <tt>audience</tt></td>
              <td align="left">Intersection over permitted items</td>
            </tr>
            <tr>
              <td align="left">
                <tt>authorization_details</tt></td>
              <td align="left">Union of entries, then the per-entry structural check</td>
            </tr>
            <tr>
              <td align="left">
                <tt>claims</tt></td>
              <td align="left">Merge; see below</td>
            </tr>
            <tr>
              <td align="left">
                <tt>crit</tt></td>
              <td align="left">Union</td>
            </tr>
          </tbody>
        </table>
        <t>Shaping keys appearing in the context of a <strong>denied</strong> item <bcp14>MUST</bcp14> be ignored.</t>
        <t>Where two permitted items return different values for the same member of
<tt>claims</tt>, the AS <bcp14>MUST</bcp14> reject the decision. There is no general narrowing
merge for arbitrary JSON values, and choosing one arbitrarily could
broaden the result. Identical values are not a conflict. A PDP <bcp14>SHOULD</bcp14> return
token-level shaping on a single item to avoid the situation.</t>
      </section>
    </section>
    <section anchor="discovery">
      <name>Discovery</name>
      <section anchor="pdp-capabilities">
        <name>Policy Decision Point Capabilities</name>
        <t>A PDP supporting this profile <bcp14>MUST</bcp14> advertise the capability URN registered
in <xref target="iana-capability"/> in the <tt>capabilities</tt> member of its metadata document,
retrievable at <tt>/.well-known/authzen-configuration</tt>:</t>
        <sourcecode type="json"><![CDATA[
{
  "policy_decision_point": "https://pdp.example.com",
  "access_evaluation_endpoint":
      "https://pdp.example.com/access/v1/evaluation",
  "access_evaluations_endpoint":
      "https://pdp.example.com/access/v1/evaluations",
  "capabilities": [
    "urn:ietf:params:authzen:token-issuance"
  ]
}
]]></sourcecode>
        <t>The URN asserts support for the request mapping and response vocabulary of
this document. It is not a statement about the content of the PDP's policy,
and a PDP <bcp14>MUST NOT</bcp14> be read as claiming to hold rules for any particular
issuance. What a deployment's policy permits is disclosed only through
decisions. This is the same line
<xref target="I-D.ietf-oauth-identity-assertion-authz-grant"/> draws for
<tt>authorization_grant_profiles_supported</tt>, which indicates that a server
implements a profile's processing rules and not that any particular issuer,
client, subject, or audience will be accepted.</t>
        <t>Advertising the capability is accordingly a commitment to the request shapes
this profile can produce. A PDP that advertises it <bcp14>MUST</bcp14> render a decision for
a gate tuple naming any action name composable from the short names
registered in <xref target="iana-actions"/>, and <bcp14>MUST NOT</bcp14> reject the evaluation on the
grounds that it holds no policy for that action. Denying is a decision; a
protocol error is not. The same applies to a batch that mixes a gate tuple
with scope tuples, which is the ordinary shape of a request naming scopes
(<xref target="composition"/>).</t>
        <t>The obligation matters because the gate vocabulary is a product of two
registries and grows as bindings register short names. An AS pairs the token
type it is about to mint with the grant it received; it cannot know which
pairings a given deployment's policy anticipated, and must not have to.</t>
        <t>For the same reason, this profile defines one capability URN rather than one
per token type and grant combination. Finer granularity would oblige the AS
to predict what the PDP has policy for, which the rule above exists to avoid,
and would publish the shape of a deployment's issuance policy in an
unauthenticated metadata document. Capability granularity in this profile
tracks vocabulary, not policy. An extension that adds response vocabulary
registers its own URN, since an AS must understand what it is asked to
enforce; one that adds only advisory context keys or new registered action
names does not, since a PDP ignores a context key it does not recognize and
the rule above already obliges it to decide any registered gate action.</t>
        <t>An operator enabling a new grant or token type nonetheless has a real
question to answer: whether the deployment's policy anticipates the gate
actions the AS is about to start sending, or whether every such request will
be denied. That question is about policy content, so its answer belongs on
the authenticated evaluation surface rather than in metadata; <xref target="AUTHZEN"/>
notes that an unauthenticated PDP can be probed for the shape of its policy.
The Action Search API of <xref target="AUTHZEN"/> answers it directly: a search for a
representative subject and an <tt>audience</tt> resource returns the action names
policy would permit, and gate actions among them indicate the issuances the
deployment is prepared for. This is a deployment-time check, not a
per-request one, and nothing in this profile requires it.</t>
      </section>
      <section anchor="policy-enforcement-point-capabilities">
        <name>Policy Enforcement Point Capabilities</name>
        <t>An AS <bcp14>MAY</bcp14> declare the capabilities it understands in the request context,
using the same URNs:</t>
        <sourcecode type="json"><![CDATA[
{
  "subject":  { "type": "user", "id": "U0405936" },
  "action":   { "name": "issue:access_token:authorization_code" },
  "resource": {
    "type": "audience",
    "id": "https://api.example/files"
  },
  "context": {
    "issuance": {
      "capabilities": [
        "urn:ietf:params:authzen:token-issuance"
      ]
    }
  }
}
]]></sourcecode>
        <t>Capability URNs are reused on both legs rather than introducing a list of
key names, so that extensions obtain granularity from the registry rather
than from a second, parallel mechanism.</t>
        <t>The declaration is an optimization, not a safety mechanism, and this is why
it is <bcp14>OPTIONAL</bcp14>. Safety is already unilateral: a PDP that marks a key <tt>crit</tt>
obliges any AS implementing this profile to fail closed if it does not
understand it (<xref target="mtu"/>), and an AS that does not implement this profile
ignores the <tt>issuance</tt> envelope entirely, <tt>crit</tt> included. Withholding <tt>crit</tt>
from an undeclared AS therefore protects nothing. What the declaration buys a
PDP is the ability to choose a decision the AS can actually enforce -
denying, say, rather than permitting subject to a constraint it knows will be
discarded. That is worth having as extensions add vocabulary, and worth
nothing in a deployment using only the keys defined here.</t>
        <t>An AS is not otherwise required to announce itself. The behaviors this
profile depends on - treating a gate denial as fatal, narrowing to the
permitted scope subset - are constitutive of implementing it rather than
features an AS might separately lack, and <xref target="AUTHZEN"/> already assumes a PDP
trusts its PEP to enforce what it decides.</t>
        <t>The declaration describes the AS's implementation and <bcp14>MUST NOT</bcp14> be treated as
an authorization input. A PDP that varied its decision based on it would be
allowing a property of the enforcement point to influence policy.</t>
      </section>
    </section>
    <section anchor="error-mapping">
      <name>Error Mapping</name>
      <table>
        <thead>
          <tr>
            <th align="left">Condition</th>
            <th align="left">Authorization server behavior</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Gate tuple denied</td>
            <td align="left">Fail the request; do not issue</td>
          </tr>
          <tr>
            <td align="left">All scope tuples denied</td>
            <td align="left">Fail the request; <tt>invalid_scope</tt></td>
          </tr>
          <tr>
            <td align="left">Some scope tuples denied</td>
            <td align="left">Issue with the permitted subset; report via <tt>scope</tt></td>
          </tr>
          <tr>
            <td align="left">Target denied or empty audience set</td>
            <td align="left">
              <tt>invalid_target</tt> (<xref target="RFC8693"/>)</td>
          </tr>
          <tr>
            <td align="left">Shaping key violates <xref target="no-broadening"/></td>
            <td align="left">Treat as denial; fail the request</td>
          </tr>
          <tr>
            <td align="left">Unknown <tt>crit</tt> member</td>
            <td align="left">Treat as denial; fail the request</td>
          </tr>
          <tr>
            <td align="left">PDP unreachable or malformed response</td>
            <td align="left">Fail closed; do not issue</td>
          </tr>
        </tbody>
      </table>
      <t>Reason information returned by a PDP is diagnostic and intended for the
operator of the AS. An AS <bcp14>MUST NOT</bcp14> relay PDP reason strings to the client,
as they may disclose policy structure to a party that is not authorized to
learn it.</t>
      <t>Where a PDP returns a denial accompanied by authentication requirements -
the step-up pattern of <xref target="AUTHZEN"/>, in which the required <tt>acr</tt> and <tt>amr</tt>
values are named - an AS <bcp14>SHOULD</bcp14> surface the requirement to the client. This
document does not define that mapping, and neither end of it is presently
specified. <xref target="AUTHZEN"/> illustrates the pattern in a non-normative example
rather than defining the response context keys that carry it, leaving a
profile nothing normative to reference; and on the OAuth side,
<tt>insufficient_user_authentication</tt> in <xref target="RFC9470"/> is defined for resource
servers rather than for the token endpoint, where no equivalent signal
exists. This is an open item, and closing it requires work in both
specifications.</t>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>The first example below is shown in full, framed against the HTTPS JSON
binding of <xref target="AUTHZEN"/>. The remaining examples show only the JSON payload.</t>
      <t>The transport is a property of the deployment, not of this profile: an
evaluation carrying the mapping defined here is the same evaluation whatever
binding conveys it. Where the HTTPS JSON binding is in use, the request URL
is the PDP's <tt>access_evaluations_endpoint</tt>, or <tt>access_evaluation_endpoint</tt>
for a request that reduces to a single evaluation, as published in the PDP's
metadata; the paths shown below are the defaults that apply when metadata
provides no value.</t>
      <section anchor="client-credentials-one-scope">
        <name>Client Credentials, One Scope</name>
        <t>One scope is requested, so the request is the gate tuple and one scope
tuple. This is the floor: two evaluations, so the Access Evaluations API.</t>
        <sourcecode type="http-message"><![CDATA[
POST /access/v1/evaluations HTTP/1.1
Host: pdp.example.com
Content-Type: application/json
Authorization: Bearer <token>

{
  "subject":  { "type": "client", "id": "svc-reporting" },
  "resource": {
    "type": "audience",
    "id": "https://telemetry.example"
  },
  "context": {
    "client_id": "svc-reporting",
    "issuance": {
      "capabilities": [
        "urn:ietf:params:authzen:token-issuance"
      ]
    }
  },
  "evaluations": [
    {
      "action": {
        "name": "issue:access_token:client_credentials"
      }
    },
    { "action": { "name": "telemetry.write" } }
  ],
  "options": { "evaluations_semantic": "execute_all" }
}
]]></sourcecode>
        <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
  "evaluations": [
    {
      "decision": true,
      "context": { "issuance": { "token_lifetime": 900 } }
    },
    { "decision": true }
  ]
}
]]></sourcecode>
      </section>
      <section anchor="authorization-code-downscoping">
        <name>Authorization Code, Downscoping</name>
        <t>Three scopes are requested. The gate leads at index 0 and <tt>execute_all</tt>
allows the AS to issue the permitted subset of the rest.</t>
        <sourcecode type="json"><![CDATA[
{
  "subject":  { "type": "user", "id": "U0405936" },
  "resource": {
    "type": "audience",
    "id": "https://api.example/files"
  },
  "context": {
    "client_id": "chatterbox",
    "acr": "urn:example:loa:2",
    "issuance": {
      "capabilities": [
        "urn:ietf:params:authzen:token-issuance"
      ]
    }
  },
  "evaluations": [
    {
      "action": {
        "name": "issue:access_token:authorization_code"
      }
    },
    { "action": { "name": "files.read"   } },
    { "action": { "name": "files.write"  } },
    { "action": { "name": "files.delete" } }
  ],
  "options": { "evaluations_semantic": "execute_all" }
}
]]></sourcecode>
        <sourcecode type="json"><![CDATA[
{
  "evaluations": [
    { "decision": true },
    {
      "decision": true,
      "context": {
        "issuance": { "claims": { "groups": ["engineering"] } }
      }
    },
    { "decision": true },
    {
      "decision": false,
      "context": { "reason_admin": { "403": "policy P-118" } }
    }
  ]
}
]]></sourcecode>
        <t>The AS issues a token bearing <tt>files.read files.write</tt>, a <tt>groups</tt> claim,
and reports the reduced scope set in the token response.</t>
        <t>Had the same subject arrived at the same audience with the same scopes on a
refresh, index 0 would have read
<tt>issue:access_token:refresh_token</tt>, and a policy that requires fresh
authorization here could deny it while leaving the scope tuples untouched.</t>
      </section>
      <section anchor="no-scopes-requested">
        <name>No Scopes Requested</name>
        <t>No scopes and no default set, so the gate tuple stands alone. This is the
only shape this document produces that is a single evaluation, and it is
therefore the only one sent to the Access Evaluation API rather than the
Access Evaluations API: the payload is a bare evaluation with no
<tt>evaluations</tt> array, and under the HTTPS JSON binding it is a <tt>POST</tt> to
<tt>/access/v1/evaluation</tt>.</t>
        <sourcecode type="json"><![CDATA[
{
  "subject":  { "type": "client", "id": "svc-reporting" },
  "action":   {
    "name": "issue:access_token:client_credentials"
  },
  "resource": {
    "type": "audience",
    "id": "https://telemetry.example"
  },
  "context": {
    "issuance": {
      "capabilities": [
        "urn:ietf:params:authzen:token-issuance"
      ]
    }
  }
}
]]></sourcecode>
        <sourcecode type="json"><![CDATA[
{
  "decision": true,
  "context": {
    "issuance": {
      "granted_scope": "telemetry.write",
      "token_lifetime": 900
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="companions">
      <name>Relationship to Companion Documents</name>
      <t>This document defines the mapping and the shaping vocabulary, and registers
short names for the grant types listed in <xref target="iana-actions"/>. For a grant whose
request names a single party and a single target, that is everything an AS
needs; the client credentials and authorization code examples above are
complete, and no companion document is required to implement them.</t>
      <t>A binding is required where a grant family adds structure this document does
not model. The token exchange family adds two such things: a request names a
second party, the requesting party, whose authority is separately at stake;
and several of its members issue an artifact whose own audience differs from
the audience of the access it describes. Bindings are therefore expected for
that family - including identity chaining, identity assertion authorization
grants, and transaction tokens - and a profile describing the use of AuthZEN
search operations to populate the authorization claims of <xref target="RFC9068"/>.</t>
      <t>Bindings specify the subject derivation for their grant, any additional
context keys, the token type short names they register, and any invariants
of their own that a PDP cannot override.</t>
      <section anchor="related">
        <name>Related Work</name>
        <t>Two other efforts place an AuthZEN Policy Decision Point behind an
authorization server.</t>
        <t><xref target="I-D.brossard-oauth-rar-authzen"/> carries an AuthZEN request and response
inside <tt>authorization_details</tt>, placing the evaluation on the OAuth wire. It
has expired. This document does not adopt that approach: the evaluation
stays between the authorization server and its Policy Decision Point, and
the client sees only an OAuth response.</t>
        <t><xref target="ARAP"/> defines what happens when a Policy Decision Point denies a request
but marks the denial as requestable: the enforcement point submits an access
request, an approval is obtained out of band, and a fresh evaluation is
performed so that the Policy Decision Point remains authoritative at
enforcement time. That profile deliberately does not bind the loop to OAuth,
requiring instead that a separate profile define a completion mode
appropriate to the flow. The AuthZEN Working Group's Access Request OAuth
Profile supplies that completion mode, and it governs the same moment as
this document.</t>
        <t>The two divide along the value of <tt>decision</tt>. The approval work specifies
the deny path: a requestable denial becomes an asynchronous approval, and
issuance follows the re-evaluation. This document specifies the allow path:
how the evaluation request is formed, and how a permit may narrow what is
issued. The approval work therefore already establishes that response
<tt>context</tt> shapes issuance; it does so for approval state, where this
document does so for the granted authorization.</t>
        <t>Because both must construct an evaluation request from an OAuth token
request, that construction is shared surface, and its treatment in the
approval profiles is deliberately brief, being incidental to their subject.
Where the two overlap, this document is intended to supply the detail rather
than to compete, and aligning the two is expected work.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="fail-closed">
        <name>Fail Closed</name>
        <t>Every failure of the profile - an unreachable PDP, a malformed response, a
shaping value that violates <xref target="no-broadening"/>, an unrecognized <tt>crit</tt>
member - <bcp14>MUST</bcp14> result in no token being issued. A PDP that cannot be
consulted is not an authorization to proceed.</t>
        <t>Because the PDP is on the token issuance path, its availability becomes the
AS's availability. Deployments should consider caching of decisions, local
policy fallback that is explicitly configured rather than implicit, and the
latency budget of the token endpoint.</t>
      </section>
      <section anchor="the-policy-decision-point-as-a-trust-dependency">
        <name>The Policy Decision Point as a Trust Dependency</name>
        <t>A PDP that can shape tokens can narrow every grant an AS issues, and a
compromised PDP can deny service. The constraints in this document bound the
damage in the other direction: because no shaping key may broaden a grant,
because <tt>sub</tt>, <tt>aud</tt>, and <tt>cnf</tt> are reserved, and because the AS validates
every constraining key before applying it, a compromised PDP cannot cause an
AS to issue a token for a different subject, aimed at a different audience,
bound to a different key, or bearing a privilege that no evaluation
considered.</t>
        <t>This is why the reservations in <xref target="claims"/> are normative rather than
advisory. An implementation that passed PDP-supplied claims into a token
without checking them against that list would give the PDP the ability to
mint arbitrary identities.</t>
      </section>
      <section anchor="integrity-of-the-decision-response">
        <name>Integrity of the Decision Response</name>
        <t>The <tt>crit</tt> mechanism relies on the response arriving intact. An attacker
able to strip <tt>crit</tt> from a response is also able to change <tt>decision</tt> to
<tt>true</tt>, so <tt>crit</tt> does not extend the attack surface beyond what transport
protection between the AS and the PDP must already cover. It is not a
substitute for that protection, and deployments requiring non-repudiation of
decisions should use the response signing mechanisms of <xref target="AUTHZEN"/>.</t>
      </section>
      <section anchor="privacy">
        <name>Privacy</name>
        <t>Evaluation requests carry subject identifiers, client identifiers, targets,
and authentication context to the PDP, and do so on every token issuance.
Where the PDP is operated by a party other than the operator of the AS, this
is a disclosure of authentication and access patterns for every user of the
system.</t>
        <t>Requiring that identifier transformations be applied before the request is
constructed (<xref target="subject"/>) means that a PDP
receiving pairwise or pseudonymous identifiers sees only the identifier the
token itself will carry, rather than a durable global identifier. Deployments
sensitive to this should prefer such identifiers.</t>
        <t>Where <tt>context</tt> conveys authentication context or device posture, deployments
should include only what their policies actually consume. The design rule of
<xref target="design-goals"/> already bounds how much that ought to be.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>The registrations requested by this document fall into two groups with
different dependency properties, described in <xref target="iana-deps"/>.</t>
      <section anchor="iana-deps">
        <name>Registration Dependencies</name>
        <t>The capability registration in <xref target="iana-capability"/> is an entry in a registry
established by another body's specification, and inherits that registry's
state. The two registries created in <xref target="iana-types"/> and <xref target="iana-actions"/> are
new registries created by this document, and have no such dependency.</t>
        <t><xref target="AUTHZEN"/> Section 12 asks IANA for two things: an <tt>authzen</tt> sub-namespace of
<tt>urn:ietf:params</tt> under <xref target="RFC3553"/>, and an "AuthZEN Policy Decision Point
Capabilities" registry whose entries are named as URNs within that
sub-namespace. At the time of writing, neither appears in the IANA registries.
The <tt>urn:ietf:params</tt> sub-namespace registry has a registration policy of IETF
Review <xref target="RFC6924"/>, which a specification published outside the IETF stream
cannot satisfy on its own.</t>
        <t>This document is on the IETF stream, and therefore can. Three resolutions are
available, and the choice is for the working group:</t>
        <ol spacing="normal" type="1"><li>
            <t>This document, or a companion document, performs the <xref target="RFC3553"/>
registration of the <tt>authzen</tt> sub-namespace, satisfying IETF Review. The
capability name then takes the form given in <xref target="iana-capability"/>.</t>
          </li>
          <li>
            <t>The capability is named in the <tt>urn:openid:authzen</tt> namespace rather than
under <tt>urn:ietf:params</tt>, and no IANA action is requested for it. <xref target="ARAP"/>
takes this route, naming its capability
<tt>urn:openid:authzen:capability:access-request</tt> and its error conditions
under <tt>urn:openid:authzen:access-request:error</tt>, so this is the scheme
AuthZEN profiles use in practice. The capability name would be
<tt>urn:openid:authzen:capability:token-issuance</tt>.</t>
          </li>
          <li>
            <t>This document declines the dependency and registers its capability under
<tt>urn:ietf:params:oauth</tt>, the sub-namespace established by <xref target="RFC6755"/>,
whose registration policy is Specification Required and is therefore not
blocked. The capability name would be
<tt>urn:ietf:params:oauth:authzen-capability:token-issuance</tt>.</t>
          </li>
        </ol>
        <t>A capability identifier is only useful if both parties compute the same
string, so one naming scheme for all AuthZEN capabilities is worth more than
this document's independence from any particular one. Options 1 and 2 both
achieve that, and differ in which body assigns the name; option 2 has the
advantage of matching what AuthZEN profiles already do, at the cost of leaving
the registry <xref target="AUTHZEN"/> asks for without entries. Option 3 is the fallback if
neither is available.</t>
      </section>
      <section anchor="iana-capability">
        <name>AuthZEN Policy Decision Point Capability</name>
        <t>IANA is requested to register the following in the "AuthZEN Policy Decision
Point Capabilities" registry established by <xref target="AUTHZEN"/>, subject to
<xref target="iana-deps"/>:</t>
        <dl>
          <dt>Capability Name:</dt>
          <dd>
            <t><tt>:token-issuance</tt></t>
          </dd>
          <dt>Capability URN:</dt>
          <dd>
            <t><tt>urn:ietf:params:authzen:token-issuance</tt></t>
          </dd>
          <dt>Capability Description:</dt>
          <dd>
            <t>Support for the OAuth 2.0 token issuance profile, comprising the request
mapping and the <tt>issuance</tt> response context vocabulary.</t>
          </dd>
          <dt>Change Controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Specification Document(s):</dt>
          <dd>
            <t>This document</t>
          </dd>
        </dl>
        <ul empty="true">
          <li>
            <t><strong>Editor's note.</strong> <xref target="AUTHZEN"/> requires capability names to begin with a
colon but gives no worked example of the resulting URN, so the rendering
above is inferred. It should be confirmed against the registry as
established and against the first registrations made in it.</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-types">
        <name>Issuance Authorization Entity Types Registry</name>
        <t>IANA is requested to establish the "OAuth Token Issuance Authorization
Entity Types" registry, with a registration policy of Specification Required
<xref target="RFC8126"/>, containing the following initial entries:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Type</th>
              <th align="left">Applies to</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>user</tt></td>
              <td align="left">subject</td>
              <td align="left">A natural person</td>
            </tr>
            <tr>
              <td align="left">
                <tt>client</tt></td>
              <td align="left">subject</td>
              <td align="left">An OAuth client acting on its own behalf</td>
            </tr>
            <tr>
              <td align="left">
                <tt>workload</tt></td>
              <td align="left">subject</td>
              <td align="left">A non-human software identity</td>
            </tr>
            <tr>
              <td align="left">
                <tt>audience</tt></td>
              <td align="left">resource</td>
              <td align="left">The audience of the access being granted</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-actions">
        <name>Issuance Authorization Action Names Registry</name>
        <t>IANA is requested to establish the "OAuth Token Issuance Authorization
Action Names" registry, with a registration policy of Specification Required
<xref target="RFC8126"/>, for the two short-name vocabularies from which action names in
the reserved <tt>issue:</tt> space are composed.</t>
        <t>A gate action name is <tt>issue:&lt;token-type&gt;:&lt;grant-type&gt;</tt>, so the registry
grows with the number of token types plus the number of grant types, not
with their product. The combinations that are meaningful in a deployment are
a matter of policy, not of registration.</t>
        <t>Every short name <bcp14>MUST</bcp14> match <tt>[a-z][a-z0-9_]{0,30}</tt>, and a composed action
name <bcp14>MUST NOT</bcp14> exceed 50 characters. <xref target="action-portability"/> gives the reason:
these bounds are what let the name be transformed mechanically into a
relation identifier that relationship-based engines accept. Registrants
should note that the hyphen is excluded deliberately, and that a short name
therefore differs from the corresponding URI wherever that URI contains one.</t>
        <t>Token type short names, initially:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Short name</th>
              <th align="left">Token type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>access_token</tt></td>
              <td align="left">
                <tt>urn:ietf:params:oauth:token-type:access_token</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>refresh_token</tt></td>
              <td align="left">
                <tt>urn:ietf:params:oauth:token-type:refresh_token</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>id_token</tt></td>
              <td align="left">
                <tt>urn:ietf:params:oauth:token-type:id_token</tt></td>
            </tr>
          </tbody>
        </table>
        <t>Grant type short names, initially:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Short name</th>
              <th align="left">Grant type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>authorization_code</tt></td>
              <td align="left">
                <tt>authorization_code</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>client_credentials</tt></td>
              <td align="left">
                <tt>client_credentials</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>refresh_token</tt></td>
              <td align="left">
                <tt>refresh_token</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>token_exchange</tt></td>
              <td align="left">
                <tt>urn:ietf:params:oauth:grant-type:token-exchange</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>device_code</tt></td>
              <td align="left">
                <tt>urn:ietf:params:oauth:grant-type:device_code</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>jwt_bearer</tt></td>
              <td align="left">
                <tt>urn:ietf:params:oauth:grant-type:jwt-bearer</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>saml2_bearer</tt></td>
              <td align="left">
                <tt>urn:ietf:params:oauth:grant-type:saml2-bearer</tt></td>
            </tr>
          </tbody>
        </table>
        <t>Registrations <bcp14>MUST</bcp14> give the URI or parameter value the short name
corresponds to, and <bcp14>MUST</bcp14> state which of the two vocabularies they join.
Names outside the <tt>issue:</tt> prefix are not registered here, since scope
values are carried verbatim and are not a registered vocabulary.</t>
      </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="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="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="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="AUTHZEN" target="https://openid.net/specs/authorization-api-1_0-final.html">
          <front>
            <title>Authorization API 1.0</title>
            <author initials="" surname="OpenID Foundation AuthZEN Working Group">
              <organization>OpenID Foundation</organization>
            </author>
            <date year="2026" month="January" day="11"/>
          </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="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="RFC7643">
          <front>
            <title>System for Cross-domain Identity Management: Core Schema</title>
            <author fullname="P. Hunt" initials="P." role="editor" surname="Hunt"/>
            <author fullname="K. Grizzle" initials="K." surname="Grizzle"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>The System for Cross-domain Identity Management (SCIM) specifications are designed to make identity management in cloud-based applications and services easier. The specification suite builds upon experience with existing schemas and deployments, placing specific emphasis on simplicity of development and integration, while applying existing authentication, authorization, and privacy models. Its intent is to reduce the cost and complexity of user management operations by providing a common user schema and extension model as well as binding documents to provide patterns for exchanging this schema using HTTP.</t>
              <t>This document provides a platform-neutral schema and extension model for representing users and groups and other resource types in JSON format. This schema is intended for exchange and use with cloud service providers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7643"/>
          <seriesInfo name="DOI" value="10.17487/RFC7643"/>
        </reference>
        <reference anchor="RFC8176">
          <front>
            <title>Authentication Method Reference Values</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>The "amr" (Authentication Methods References) claim is defined and registered in the IANA "JSON Web Token Claims" registry, but no standard Authentication Method Reference values are currently defined. This specification establishes a registry for Authentication Method Reference values and defines an initial set of Authentication Method Reference values.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8176"/>
          <seriesInfo name="DOI" value="10.17487/RFC8176"/>
        </reference>
        <reference anchor="RFC8707">
          <front>
            <title>Resource Indicators for OAuth 2.0</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document specifies an extension to the OAuth 2.0 Authorization Framework defining request parameters that enable a client to explicitly signal to an authorization server about the identity of the protected resource(s) to which it is requesting access.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8707"/>
          <seriesInfo name="DOI" value="10.17487/RFC8707"/>
        </reference>
        <reference anchor="RFC9068">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
            <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9068"/>
          <seriesInfo name="DOI" value="10.17487/RFC9068"/>
        </reference>
        <reference anchor="RFC9470">
          <front>
            <title>OAuth 2.0 Step Up Authentication Challenge Protocol</title>
            <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>It is not uncommon for resource servers to require different authentication strengths or recentness according to the characteristics of a request. This document introduces a mechanism that resource servers can use to signal to a client that the authentication event associated with the access token of the current request does not meet its authentication requirements and, further, how to meet them. This document also codifies a mechanism for a client to request that an authorization server achieve a specific authentication strength or recentness when processing an authorization request.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9470"/>
          <seriesInfo name="DOI" value="10.17487/RFC9470"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC3553">
          <front>
            <title>An IETF URN Sub-namespace for Registered Protocol Parameters</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <author fullname="T. Hardie" initials="T." surname="Hardie"/>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <date month="June" year="2003"/>
            <abstract>
              <t>This document describes a new sub-delegation for the 'ietf' URN namespace for registered protocol items. The 'ietf' URN namespace is defined in RFC 2648 as a root for persistent URIs that refer to IETF- defined resources. 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="73"/>
          <seriesInfo name="RFC" value="3553"/>
          <seriesInfo name="DOI" value="10.17487/RFC3553"/>
        </reference>
        <reference anchor="RFC6755">
          <front>
            <title>An IETF URN Sub-Namespace for OAuth</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This document establishes an IETF URN Sub-namespace for use with OAuth-related specifications. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6755"/>
          <seriesInfo name="DOI" value="10.17487/RFC6755"/>
        </reference>
        <reference anchor="RFC6924">
          <front>
            <title>Registration of Second-Level URN Namespaces under "ietf"</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>RFC 2648 defines the "ietf" URN namespace and a number of sub- namespaces. RFC 3553 defines an additional sub-namespace, "params", and creates a registry to document allocations under that. But there is no registry that lists, in one place, all sub-namespaces of "ietf". This document creates and populates such a registry, thereby changing the mechanism defined in RFC 2648 for adding new sub- namespaces of "ietf".</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6924"/>
          <seriesInfo name="DOI" value="10.17487/RFC6924"/>
        </reference>
        <reference anchor="I-D.brossard-oauth-rar-authzen">
          <front>
            <title>AuthZEN Request/Response Profile for OAuth 2.0 Rich Authorization Requests</title>
            <author fullname="David Brossard" initials="D." surname="Brossard">
              <organization>Axiomatics</organization>
            </author>
            <author fullname="Omri Gazitt" initials="O." surname="Gazitt">
              <organization>Aserto</organization>
            </author>
            <author fullname="Alex Babeanu" initials="A." surname="Babeanu">
              <organization>3Edges</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   This specification defines a profile of OAuth 2.0 Rich Authorization
   Requests leveraging the OpenID AuthZEN authorization request/response
   formats within the authorization_details JSON object.  Authorization
   servers and resource servers from different vendors can leverage this
   profile to request and receive relevant authorization decisions from
   an AuthZEN-compatible PDP in an interoperable manner.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-brossard-oauth-rar-authzen-03"/>
        </reference>
        <reference anchor="I-D.gerber-oauth-deferred-token-response">
          <front>
            <title>Deferred Token Response</title>
            <author fullname="Frederik Krogsdal Jacobsen" initials="F. K." surname="Jacobsen">
              <organization>Idura</organization>
            </author>
            <author fullname="Guilherme de Oliveira Niero" initials="G." surname="de Oliveira Niero">
              <organization>Itaú</organization>
            </author>
            <author fullname="Maxwell Gerber" initials="M." surname="Gerber">
              <organization>Twilio</organization>
            </author>
            <date day="23" month="June" year="2026"/>
            <abstract>
              <t>   This document defines the Deferred Token Response (DTR) extension for
   OAuth 2.1.  In existing OAuth grants, the token endpoint either
   issues an access token or returns an error.  DTR establishes a
   generic asynchronous token request mechanism that any OAuth grant may
   plug into.  In DTR-aware flows, the authorization server returns a
   deferral_code and a polling interval, indicating that the final token
   response will be available at a later time.  The client retrieves the
   eventual response by polling the token endpoint, or by receiving a
   callback from the authorization server when one is configured.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-gerber-oauth-deferred-token-response-00"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-identity-chaining">
          <front>
            <title>OAuth Identity and Authorization Chaining Across Domains</title>
            <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Kelley Burgin" initials="K." surname="Burgin">
              <organization>MITRE</organization>
            </author>
            <author fullname="Michael J. Jenkins" initials="M. J." surname="Jenkins">
              <organization>NSA-CCSS</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <date day="19" month="July" year="2026"/>
            <abstract>
              <t>   This specification describes a mechanism for preserving identity and
   authorization information across trust domains that use the OAuth 2.0
   Framework.  A JSON Web Token (JWT) authorization grant, obtained
   through an intra-domain OAuth 2.0 Token Exchange, facilitates the
   cross-domain acquisition of an access token.  The relevant identity
   and authorization information is chained throughout the flow by being
   conveyed in the respective artifacts exchanged at each step of the
   process.  Chaining across multiple domains is achieved by using the
   same protocol every time a trust domain boundary is crossed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-chaining-17"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-identity-assertion-authz-grant">
          <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="21" month="May" 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 Token Exchange [RFC8693] and JWT Profile for OAuth 2.0
   Authorization Grants [RFC7523].  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-04"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-transaction-tokens">
          <front>
            <title>Transaction Tokens</title>
            <author fullname="Atul Tulshibagwale" initials="A." surname="Tulshibagwale">
              <organization>CrowdStrike</organization>
            </author>
            <author fullname="George Fletcher" initials="G." surname="Fletcher">
              <organization>Practical Identity LLC</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <date day="30" month="July" year="2026"/>
            <abstract>
              <t>   Transaction Tokens (Txn-Tokens) are designed to maintain and
   propagate user identity, workload identity and authorization context
   throughout the Call Chain within a trusted domain during the
   processing of external requests (e.g. such as API calls) or requests
   initiated internally within the Trust Domain.  Txn-Tokens ensure that
   this context is preserved throughout the Call Chain thereby enhancing
   security and consistency in complex, multi-service architectures.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-transaction-tokens-11"/>
        </reference>
        <reference anchor="ARAP" target="https://openid.github.io/authzen/authzen-access-request-approval-profile-1_0">
          <front>
            <title>AuthZEN Access Request and Approval Profile 1.0</title>
            <author initials="K." surname="McGuinness" fullname="Karl McGuinness">
              <organization>Independent</organization>
            </author>
            <date year="2026" month="July" day="27"/>
          </front>
        </reference>
        <reference anchor="ZANZIBAR" target="https://www.usenix.org/conference/atc19/presentation/pang">
          <front>
            <title>Zanzibar: Google's Consistent, Global Authorization System</title>
            <author initials="R." surname="Pang">
              <organization/>
            </author>
            <author initials="R." surname="Caceres">
              <organization/>
            </author>
            <author initials="M." surname="Burrows">
              <organization/>
            </author>
            <date year="2019"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 1287?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This work was motivated in part by Karl McGuinness, whose initiative to
bridge OAuth and AuthZEN - in <xref target="ARAP"/> and its OAuth completion mode -
established that a Policy Decision Point belongs behind the token endpoint,
and that the response of such a Policy Decision Point may legitimately shape
what is issued. This document takes up the other half of that decision.</t>
      <t>Thanks also to the participants in the OpenID AuthZEN interoperability
events, whose December 2025 identity provider scenario demonstrated AuthZEN
search operations populating token claims, and to the members of the AuthZEN
Working Group and the OAuth Working Group.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9V9bZPbRpLm9/oVuNYHj9sk1XqzR60577Yl2aMZW9ZJ8jlm
JhwiSIDdsECAiwK7Tbe0v+V+y/2yy3wys6oAsmV5d3YjThHjaZJAoVCVla9P
Zk6nU9dXfV2eZkdn2/7i70+fZy+6dlXVZbZqu+x7/jK7OzvJXrdvyyZ75v02
b5blkcsXi668TG4bX7DM+/K87Xanme8LV7TLJl/TY4ouX/XT8/zXqu+nbU43
T/k/v5bNtNJ7pycnzm8Xa/pctU2/29Btz56+/tpVm+4067ut7++enDw8uevy
rsxpCq/K5bar+t2Ru2q7t+ddu93Qtz+Wi4wn13bVr3lPI/Gb9e2yrWlybePL
xm89xisdvcg997bc0f3FqcumGWbGf+TpCPYFzZb/3LR1tdzxXz1evvxleZE3
5zRc2WxLGif7mLlkmbzi0Y80+ao5z77hm/j7dV7V9D3m8q9V2a9mbXfOP+Td
8oJ+uOj7jT+9fZuv46+qy3Jml93mL24vuvbKl7cxwm2+87zqL7YLHlS24PZg
C46ck/flNaCrs2y1rWvZuKPv112VfYO7jvAbPSVv9H3o92dNUW5K+k+jv5c2
f3nUv57z59myXdNjmrZb042XWKWXXz/+/Iv7D/XPLx7csT//+PnDe/rnw3sP
P+c/z354/Wcit1M8ISXduLRnL55ld2YnMok+787LPlmsluZYFbOm7G/7Tbn0
twc7PM031fTOm5PpqmryenbRr2sZpyByPs3untz9fHpyZ3rnDr4Mi4V/06xq
PC8UPeHZk+zrdtsUOiM9I3s7LP9oIQ/dRstUNavRQtHqPLA/P79vq/PHO198
bn9+cfKFrdnJ53+0P+9/cRKuvWvX3nvw4F7YgAc27ucP797nP59Nn8yIgLzP
u0KPapd3Rit2xXnZLcpOfy/KVdl1ZTHFgZh2pd/wSbNrmTj1yorphM7slI5M
1dCifOia3Puyk+3hh0/Pu7zpD9zQ0/c+X+JKzMCDZF6evdinF96Ps+Wy9D57
Wf7btvR9ljdFdrbZdO1lXgc2+JuUJEdqVrW3dWXs/6c5hqdVwPBEWjL0dCND
M53tE9cX07tf3Excf51l3y2/2VZNQyMHAtIT+te8q5OfxwQ2OqB/P3v+92df
nb0cLs3f8+bXapETo/2mbc/r8hOfPaYtrHxPt02yb+p2QYszPHCvdvTr+oZV
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

-->

</rfc>
