<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-carleton-workload-authz-grant-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="WAG">Workload Authorization Grant</title>
    <seriesInfo name="Internet-Draft" value="draft-carleton-workload-authz-grant-01"/>
    <author fullname="Paul Carleton" role="editor">
      <organization>Anthropic</organization>
      <address>
        <email>paulc@anthropic.com</email>
      </address>
    </author>
    <author fullname="Nick Steele">
      <organization>OpenAI</organization>
      <address>
        <email>steele@openai.com</email>
      </address>
    </author>
    <author fullname="Aaron Parecki">
      <organization>Okta</organization>
      <address>
        <email>aaron@parecki.com</email>
      </address>
    </author>
    <author fullname="Arndt Schwenkschuster">
      <organization>Defakto Security</organization>
      <address>
        <email>arndts.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Brian Campbell">
      <organization>Ping Identity</organization>
      <address>
        <email>bcampbell@pingidentity.com</email>
      </address>
    </author>
    <date year="2026" month="September" day="22"/>
    <area>sec</area>
    <keyword>agent identity</keyword>
    <keyword>workload identity</keyword>
    <keyword>workload authorization grant</keyword>
    <keyword>jwt authorization grant</keyword>
    <abstract>
      <?line 69?>

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

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

<section anchor="introduction">
      <name>Introduction</name>
      <t>Agent platforms host many agents per customer, instantiated and torn down as appropriate for the context of the customer's work environment -- one per channel, repository, or pipeline.  Registering each agent individually at the Authorization Servers it uses is impractical and creates a heavy maintenance burden.  In practice every agent of an installation ends up sharing one credential, at the cost of any attribution of an individual agent's actions.</t>
      <t>A platform that hosts many workloads -- an agent platform is a motivating case -- needs each workload to obtain an access token at third-party services without requiring an administrator to perform a per-workload provisioning step.</t>
      <t>This document defines one grant for that: a JWT authorization grant <xref target="RFC7523"/> signed by the platform and naming one workload, presented at the token endpoint of an authorization server that has been configured, once, to trust that platform.</t>
      <t>It specifies the grant, and that workloads are trusted based on the platform registration, allowing a previously unseen workload to receive an access token.</t>
      <t>How trust in a platform is established and what a workload may do are left to deployments.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions and Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>Platform: the party that creates workloads ("Agents") and signs assertions about them; the sending end of one trust relationship with an Authorization Server.  Where a provider serves several customer organizations under one issuer identifier, each customer's partition is a separate Platform (<xref target="tenants"/>).</t>
      <t>Platform registration: an Authorization Server's record of one Platform it trusts: the Platform's issuer identifier, its keys (<xref target="issuer-keys"/>) and, where several Platforms share that issuer identifier, the name of a claim and the value the claim carries for this Platform (<xref target="tenants"/>).  How a Platform registration comes to exist is out of scope (note: this is not a client registration <xref target="RFC7591"/> and yields no client identifier or credential).</t>
      <t>Authorization Server, Resource Server: as in <xref target="RFC6749"/>. Where an Authorization Server serves several customer organizations under one issuer identifier, each customer's partition is a separate Authorization Server (<xref target="tenants"/>).</t>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <ol spacing="normal" type="1"><li>
          <t>Once per Platform and Authorization Server: an administrator of the
Authorization Server creates a Platform registration (<xref target="conventions"/>),
which records the Platform's issuer identifier and how to obtain its
keys (<xref target="issuer-keys"/>).  Nothing about individual Agents is exchanged.</t>
        </li>
        <li>
          <t>Per Agent: the Platform creates an Agent and assigns it an Agent
Identifier (<xref target="identity-model"/>).  Nothing is sent to the Authorization
Server or the Resource Server.</t>
        </li>
        <li>
          <t>Per access: the Agent presents a Workload Authorization Grant in an
ordinary OAuth token request.  The Authorization Server matches it to a
Platform registration, verifies it under that Platform's keys,
allowing for previously unseen <tt>sub</tt> values,
and issues an access token under its own policy (<xref target="properties"/>).</t>
        </li>
      </ol>
      <figure anchor="fig-overview">
        <name>One-time Platform registration, then per-request grants</name>
        <artwork><![CDATA[
      Platform                    Authorization        Resource
      (issuer; Agents)            Server (AS)          Server (RS)
            |                          |                   |
  (1)  [administrator creates a Platform registration]     |
            |                          |                   |
  (2)  [Platform creates Agent; nothing sent to AS or RS]  |
            |                          |                   |
  (3)       |--- POST /token --------->|                   |
            |    grant_type=jwt-bearer |                   |
            |    assertion=<WAG>       |                   |
            |    resource=<RS>         |                   |
            |<-- access token ---------|                   |
            |--- request + access token ------------------>|
]]></artwork>
      </figure>
    </section>
    <section anchor="identity-model">
      <name>Agent Identity</name>
      <t>An Agent is identified by its Agent Identifier, carried as the <tt>sub</tt> claim in the assertion.  The Agent Identifier is opaque and immutable; it <bcp14>MUST</bcp14> be unique among all Agent Identifiers issued under the same Platform, <bcp14>MUST NOT</bcp14> be reassigned to a different Agent, and is compared as a case-sensitive string <xref section="2" sectionFormat="comma" target="RFC7519"/>. An Authorization Server <bcp14>MUST</bcp14> associate records for an Agent with its Platform and <tt>sub</tt> value, never on its <tt>sub</tt> value alone.</t>
    </section>
    <section anchor="workload-authorization-grant">
      <name>Workload Authorization Grant</name>
      <t>An Agent obtains an access token by presenting a JWT as an authorization grant per <xref section="2.1" sectionFormat="comma" target="RFC7523"/>, issued by the Platform as a third party in the sense of <xref section="3" sectionFormat="comma" target="RFC7521"/>. The token request carries <tt>grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer</tt>, the JWT in the <tt>assertion</tt> parameter, and the target resource in the <tt>resource</tt> parameter <xref target="RFC8707"/>. The <tt>resource</tt> parameter <xref target="RFC8707"/> is <bcp14>RECOMMENDED</bcp14>; an Authorization Server <bcp14>SHOULD</bcp14> restrict the audience of the access token it issues to that resource and <bcp14>MAY</bcp14> refuse a request that lacks it with <tt>invalid_target</tt> (<xref section="2" sectionFormat="comma" target="RFC8707"/>). An Agent <bcp14>MAY</bcp14> make the token request without client authentication (<xref section="3.1" sectionFormat="comma" target="RFC7523"/>), and this specification attaches no meaning to <tt>client_id</tt>. An Authorization Server <bcp14>MUST NOT</bcp14> require a client registration per Agent.</t>
      <t>Assertions <bcp14>SHOULD</bcp14> be short-lived.  The Authorization Server <bcp14>MUST NOT</bcp14> issue refresh tokens for this grant and <bcp14>SHOULD NOT</bcp14> issue access tokens that outlive the assertion by a significant period (<xref section="4.1" sectionFormat="comma" target="RFC7521"/>).</t>
      <section anchor="authorization-grant-claims">
        <name>JWT Syntax</name>
        <dl>
          <dt><tt>iss</tt></dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14> - The issuer identifier of the Platform's issuer (<xref target="issuer-keys"/>): a URL using the <tt>https</tt> scheme with no query or fragment component, as for <tt>issuer</tt> in <xref section="2" sectionFormat="comma" target="RFC8414"/>.</t>
          </dd>
          <dt><tt>sub</tt></dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14> - The Agent Identifier (<xref target="identity-model"/>).</t>
          </dd>
          <dt><tt>aud</tt></dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14> - Identifies the Authorization Server: its issuer identifier <xref target="RFC8414"/>, as a single value, as in <xref section="3.1" sectionFormat="comma" target="IDJAG"/>.  An Authorization Server <bcp14>MUST</bcp14> accept its issuer identifier as the audience; it <bcp14>MAY</bcp14> also accept its token endpoint URL, which <xref target="RFC7523BIS"/> continues to permit for authorization grants.</t>
          </dd>
          <dt><tt>exp</tt>, <tt>iat</tt>, <tt>jti</tt></dt>
          <dd>
            <t><bcp14>REQUIRED</bcp14> - As defined in <xref target="RFC7519"/>.</t>
          </dd>
          <dt><tt>scope</tt></dt>
          <dd>
            <t><bcp14>OPTIONAL</bcp14> - A space-separated list of scopes (<xref section="3.3" sectionFormat="comma" target="RFC6749"/>) the Platform asserts for this request, as in <xref section="3.1" sectionFormat="comma" target="IDJAG"/>.  The Authorization Server decides under its own policy which of them to grant, and <bcp14>MAY</bcp14> grant a subset (<xref section="4.4.1" sectionFormat="comma" target="IDJAG"/>).</t>
          </dd>
        </dl>
        <t>The assertion is signed under a key configured from the Platform (see <xref target="issuer-keys"/>) and <bcp14>MAY</bcp14> carry further claims about the Agent. An Authorization Server that publishes metadata <xref target="RFC8414"/> <bcp14>SHOULD</bcp14> list the <tt>urn:ietf:params:oauth:grant-type:jwt-bearer</tt> grant type in <tt>grant_types_supported</tt>.</t>
        <t><tt>
{
  "iss": "https://acme.agents.platform.example",
  "sub": "agent/7f3d9as3",
  "aud": "https://as.saas.example",
  "exp": 1785271980,
  "iat": 1785271680,
  "jti": "7d0f5a2b-93c8-4f0e-9c33-1b6a0e6d5f10",
  "scope": "issues:read issues:write"
}
</tt></t>
      </section>
    </section>
    <section anchor="platform-registration">
      <name>Platform Registration</name>
      <t>Prior to presenting a WAG to an Authorization Server, an administrator registers the Platform at the Authorization Server. During this registration step, the Authorization Server obtains the Platform's issuer identifier, the issuer's key, and tenant information (see <xref target="tenants"/>). The Authorization Server also decides on authorization policy for the Platform including optionally mapping claims provided by the platform to permissions. The specifics of this registration step are outside the scope of this document. It is not a client registration <xref target="RFC7591"/> and yields no client identifier or credential.</t>
      <section anchor="issuer-keys">
        <name>Issuer Keys</name>
        <t>As part of a Platform registration, the Authorization Server needs to record an issuer identifier and obtain the public keys associated with that issuer.</t>
        <t>A Platform may provide its public key via: a JWK Set <xref target="RFC7517"/> entered directly, a JWK Set URL the Authorization Server fetches over HTTPS <xref target="RFC9525"/>, or the <tt>jwks_uri</tt> in metadata the issuer publishes under its issuer identifier (<xref section="3" sectionFormat="comma" target="RFC8414"/> or <xref target="OIDC-DISCOVERY"/>).  An Authorization Server that uses issuer metadata <bcp14>MUST NOT</bcp14> use a document whose <tt>issuer</tt> value is not identical to the registration's issuer identifier (<xref section="3.3" sectionFormat="comma" target="RFC8414"/>).  A Platform <bcp14>SHOULD</bcp14> publish its keys at a URL, so that keys can rotate without administrator action.</t>
        <t>On each assertion the Authorization Server finds the Platform registration the assertion matches: <tt>iss</tt> equals the registration's issuer identifier by Simple String Comparison (<xref section="3" sectionFormat="comma" target="RFC7523"/>) and, where the registration names a claim (<xref target="tenants"/>), the assertion carries that claim with the registered value.  An Authorization Server <bcp14>MUST</bcp14> ensure that an assertion can match at most one of its Platform registrations.  The Authorization Server <bcp14>MUST</bcp14> reject an assertion that matches no Platform registration, <bcp14>MUST</bcp14> verify the signature only under a key configured or retrieved for the matched registration's issuer identifier - never under key material or key locations carried in the assertion (<xref section="3.8" sectionFormat="comma" target="RFC8725"/> and <xref section="3.10" sectionFormat="comma" target="RFC8725"/>) - and <bcp14>MUST</bcp14> interpret <tt>sub</tt> and <tt>jti</tt> only within the scope of the matched Platform registration.</t>
      </section>
      <section anchor="properties">
        <name>Permissions</name>
        <t>During Platform registration, the Authorization Server sets local policy for what permissions to assign an access token given in return for a WAG.  This policy <bcp14>MAY</bcp14> involve consulting claims the Platform asserts about the Agent in the WAG. A claim is an assertion by the Platform, meaningful only within the context of that Platform, and an Authorization Server <bcp14>MUST NOT</bcp14> assume that a similarly named value from another Platform means the same thing.</t>
        <t>The specific claims a Platform provides, and what permissions an Authorization Server decides to grant are outside the scope of this document.</t>
      </section>
      <section anchor="tenants">
        <name>Multi-Tenancy</name>
        <t>In many cases, a deployment (Platform or AS/RS) will partition its infrastructure by customer organizations, or tenants.  For the purposes of this document, a Platform and Authorization Server / Resource Server refers to a single partition belonging to a single organization (<xref target="conventions"/>). A Platform that knows the organization's identifier at the Authorization Server can carry it in the assertion, as the <tt>aud_tenant</tt> claim of <xref section="3.1" sectionFormat="comma" target="IDJAG"/> does; this document does not require it.</t>
        <t>Where each Platform has its own issuer identifier, the issuer identifier alone identifies the Platform and nothing further in this section applies.  Where several Platforms share one issuer identifier, a claim in the assertion tells them apart.  Existing issuers use different claims for this, so this document does not fix the claim's name: the Platform registration includes the claim and the value it carries for that Platform, and the Authorization Server applies both when matching an assertion (<xref target="issuer-keys"/>).  An assertion that lacks the named claim, or carries another value, does not match that registration.</t>
        <t>It is <bcp14>RECOMMENDED</bcp14> that deployments use dedicated issuers for partitions. If that's not possible, it is <bcp14>RECOMMENDED</bcp14> to use the <tt>tenant</tt> claim (<xref section="3.1" sectionFormat="comma" target="IDJAG"/>) in order to simplify interoperability.</t>
        <t>How an Authorization Server determines whether a Platform needs a differentiating claim, and which, is left to be discovered out of band of this specification.</t>
      </section>
    </section>
    <section anchor="errors">
      <name>Error Responses</name>
      <t>When a token request fails, the Authorization Server <bcp14>SHOULD</bcp14> indicate in <tt>error_description</tt> (<xref section="5.2" sectionFormat="comma" target="RFC6749"/>) who must act: an administrator of the Authorization Server, if the Platform is not trusted or the Agent holds no permission for the request; or the Platform, if the assertion is invalid.  An untrusted Platform or an invalid assertion yields <tt>invalid_grant</tt> (<xref section="3.1" sectionFormat="comma" target="RFC7523"/>); a missing permission yields <tt>invalid_scope</tt> or <tt>invalid_target</tt> (<xref target="RFC8707"/>) where a specific scope or resource is refused, otherwise <tt>invalid_grant</tt>.  When an action can be taken to resolve the issue, the Authorization Server <bcp14>SHOULD</bcp14> include a link in <tt>error_uri</tt>.</t>
    </section>
    <section anchor="oi">
      <name>Open Issues</name>
      <ul spacing="normal">
        <li>
          <t>Agent ownership: see issue #13.</t>
        </li>
        <li>
          <t>Proof of possession: the grant is a bearer assertion and no client authentication is required; whether to name a hardening (sender-constrained access tokens, authenticating the presenting instance, or the Platform authenticating as a client) and which, if any, to require.</t>
        </li>
        <li>
          <t>JWT type: whether to define an explicit <tt>typ</tt> for this grant (<xref section="3.11" sectionFormat="comma" target="RFC8725"/>), so that another kind of JWT signed by the same issuer for the same audience cannot be taken for it.</t>
        </li>
        <li>
          <t>Replay: whether an Authorization Server is required to reject a <tt>jti</tt> it has already accepted while the assertion is still valid, or whether that stays optional as in <xref section="3" sectionFormat="comma" target="RFC7523"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This revision lists the considerations it is aware of; a fuller treatment will follow.</t>
      <ul spacing="normal">
        <li>
          <t>Agents are accepted on their first assertion, so the set of acceptable Agents grows at the Platform with no action at the Authorization Server, and each new Agent creates state there; an Authorization Server can cap new Agents per Platform registration.</t>
        </li>
        <li>
          <t>The assertion is a bearer credential: a short lifetime, its <tt>aud</tt> and, where the Authorization Server enforces it, single use by <tt>jti</tt> bound what a stolen assertion is worth.</t>
        </li>
        <li>
          <t>Keys are held per issuer identifier, so that one issuer's key never verifies another's assertion (<xref target="issuer-keys"/>); whoever controls an issuer identifier, or the DNS name under it, controls what every trusting Authorization Server accepts.</t>
        </li>
        <li>
          <t>Platforms under a shared issuer identifier share its keys, so the claim that tells them apart (<xref target="tenants"/>) is only as trustworthy as the party signing for all of them, and a Platform registration for a shared issuer identifier that names no claim trusts every Platform under it.</t>
        </li>
        <li>
          <t>Where one Authorization Server serves several organizations, a Platform registration created by the wrong organization routes another organization's Agents to it; who may register a given Platform is out of scope.</t>
        </li>
        <li>
          <t>Error responses (<xref target="errors"/>) tell any presenter which Platforms an Authorization Server trusts, and <tt>error_uri</tt> hands a link to an unauthenticated presenter.</t>
        </li>
        <li>
          <t>This document defines no explicit JWT type, so an issuer that signs other kinds of JWT for the same audience risks one being taken for this grant (<xref section="3.11" sectionFormat="comma" target="RFC8725"/>).</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </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="RFC7517">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC7521">
          <front>
            <title>Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="Y. Goland" initials="Y." surname="Goland"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification provides a framework for the use of assertions with OAuth 2.0 in the form of a new client authentication mechanism and a new authorization grant type. Mechanisms are specified for transporting assertions during interactions with a token endpoint; general processing rules are also specified.</t>
              <t>The intent of this specification is to provide a common framework for OAuth 2.0 to interwork with other identity systems using assertions and to provide alternative client authentication mechanisms.</t>
              <t>Note that this specification only defines abstract message flows and processing rules. In order to be implementable, companion specifications are necessary to provide the corresponding concrete instantiations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7521"/>
          <seriesInfo name="DOI" value="10.17487/RFC7521"/>
        </reference>
        <reference anchor="RFC7523">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification defines the use of a JSON Web Token (JWT) Bearer Token as a means for requesting an OAuth 2.0 access token as well as for client authentication.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7523"/>
          <seriesInfo name="DOI" value="10.17487/RFC7523"/>
        </reference>
        <reference anchor="RFC8414">
          <front>
            <title>OAuth 2.0 Authorization Server Metadata</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <date month="June" year="2018"/>
            <abstract>
              <t>This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8414"/>
          <seriesInfo name="DOI" value="10.17487/RFC8414"/>
        </reference>
        <reference anchor="RFC8707">
          <front>
            <title>Resource Indicators for OAuth 2.0</title>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document specifies an extension to the OAuth 2.0 Authorization Framework defining request parameters that enable a client to explicitly signal to an authorization server about the identity of the protected resource(s) to which it is requesting access.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8707"/>
          <seriesInfo name="DOI" value="10.17487/RFC8707"/>
        </reference>
        <reference anchor="RFC8725">
          <front>
            <title>JSON Web Token Best Current Practices</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="225"/>
          <seriesInfo name="RFC" value="8725"/>
          <seriesInfo name="DOI" value="10.17487/RFC8725"/>
        </reference>
        <reference anchor="RFC9525">
          <front>
            <title>Service Identity in TLS</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>Many application technologies enable secure communication between two entities by means of Transport Layer Security (TLS) with Internet Public Key Infrastructure using X.509 (PKIX) certificates. This document specifies procedures for representing and verifying the identity of application services in such interactions.</t>
              <t>This document obsoletes RFC 6125.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9525"/>
          <seriesInfo name="DOI" value="10.17487/RFC9525"/>
        </reference>
        <reference anchor="OIDC-DISCOVERY" target="https://openid.net/specs/openid-connect-discovery-1_0.html">
          <front>
            <title>OpenID Connect Discovery 1.0 incorporating errata set 2</title>
            <author initials="N." surname="Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones">
              <organization/>
            </author>
            <author initials="E." surname="Jay">
              <organization/>
            </author>
            <date year="2023" month="December"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7591">
          <front>
            <title>OAuth 2.0 Dynamic Client Registration Protocol</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Machulak" initials="M." surname="Machulak"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <date month="July" year="2015"/>
            <abstract>
              <t>This specification defines mechanisms for dynamically registering OAuth 2.0 clients with authorization servers. Registration requests send a set of desired client metadata values to the authorization server. The resulting registration responses return a client identifier to use at the authorization server and the client metadata values registered for the client. The client can then use this registration information to communicate with the authorization server using the OAuth 2.0 protocol. This specification also defines a set of common client metadata fields and values for clients to use during registration.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7591"/>
          <seriesInfo name="DOI" value="10.17487/RFC7591"/>
        </reference>
        <reference anchor="RFC8628">
          <front>
            <title>OAuth 2.0 Device Authorization Grant</title>
            <author fullname="W. Denniss" initials="W." surname="Denniss"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2019"/>
            <abstract>
              <t>The OAuth 2.0 device authorization grant is designed for Internet- connected devices that either lack a browser to perform a user-agent- based authorization or are input constrained to the extent that requiring the user to input text in order to authenticate during the authorization flow is impractical. It enables OAuth clients on such devices (like smart TVs, media consoles, digital picture frames, and printers) to obtain user authorization to access protected resources by using a user agent on a separate device.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8628"/>
          <seriesInfo name="DOI" value="10.17487/RFC8628"/>
        </reference>
        <reference anchor="RFC7523BIS">
          <front>
            <title>Updates to OAuth 2.0 JSON Web Token (JWT) Client Authentication and Assertion-Based Authorization Grants</title>
            <author fullname="Michael B. Jones" initials="M. B." surname="Jones">
              <organization>Self-Issued Consulting</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Chuck Mortimore" initials="C." surname="Mortimore">
              <organization>Disney</organization>
            </author>
            <author fullname="Filip Skokan" initials="F." surname="Skokan">
              <organization>Okta</organization>
            </author>
            <date day="28" month="April" year="2026"/>
            <abstract>
              <t>   This document updates RFC7521, RFC7522, RFC7523 and RFC9126 with
   respect to the treatment of audience values in OAuth 2.0 Client
   Assertion Authentication and Assertion-based Authorization Grants to
   address a security vulnerability identified in the previous
   requirements for those audience values in multiple OAuth 2.0
   specifications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-rfc7523bis-11"/>
        </reference>
        <reference anchor="IDJAG">
          <front>
            <title>Identity Assertion JWT Authorization Grant</title>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
              <organization>Independent</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="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>
      </references>
    </references>
    <?line 269?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The editors thank Pieter Kasselman, Karl McGuinness, Kevin Kelley, Emily Lauber, and Maxwell Gerber for discussions that shaped this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA71c63LbRpb+ryq/Q4/8w3aWpE3Jjm06yUSxHUdJbGktZ1Op
qSmrCTTFjkAAgwYlcxLnWfZZ9sn2O+d0NwASsJ3a1KamEgqX7tPn8p0rZjwe
39irbZ2Zmdr/uagus0Kn6mhdL4vK/lvXtsjVi0rn9f6NPT2fV+aKnjt6gT8T
XZuLotrMlM0XxY29G3tpkeR6hZXSSi/qcaKrzNRFPr7264411v33+ILWG9+b
3thz6/nKOodN6k2J946fv/n2xl6+Xs1NNcN62AH/wZaH2L0yGns7k2DvS7PB
oiluqrHSFyavlU3xb1tv+FLYceCq7pyP6eEHfr2u++9dmXxNpCh1Yevlej5T
ZTjd3U84LDFH1mWKaR2lFussE3ad6nWmnvoF5GZRXejcEzFTR3m9rIrSJnLT
rLTNQAJeS77W4d4kKVZyvypInCa1dVH17ffKJpfqrDYmM327nZQmPzrubOX4
4a8L3NHWb7Sz7JGuwLFTCCq5tL0LX9a6s6ymN74u5Y3BZas8rdVZsrw2+aVL
lmsQU/Ut/8ws9GVdqDOTrCuReWsrWsVNrKkXX1/QpaHtvqmsziGNVTk3Wda3
z6nNL9Rxo1jNJvPEv/Z1iWeC7slO0OuiWmGJK1Gk198+/fzh/cfh98MH04et
363rB9PW78Pw+9H96f34++G9h83vgwfh9+MH/vfJ8bOn42fHZ09P/uv5619m
QrO3epL28TP1tMhzk9TqmXVJcWWqjZpO7sGyk6Iqiwpk48ymwg+tnKnVgV9D
VxemnqllXZdudvcuKYhNJ7mp77rSJM5fGCey+jgNq4+nb+9NlvXKM5gtXR3c
OzgcT/3Sjb3wP2PQ4qC6E3WmL+1qXemtO99PIDqdZmazdePlRH1f5MZtXX6O
y3pDciH42pLMwwePI9cffX7wqC2Bb47PgFTjZ6xL44LoHFeLhG7NLe9y/Oz7
oxc7zwR1GGvnTEWqtA0R4zHAbO7qSif895uldQqgul4RwKVmYXEMVS+N+hBS
q9vA5zsjNd+o66VNlgqcisi3LGA9qcKzWpWZrunkirbN1dFxQFLZY1WAIyL4
RDujyFMU81qDe0oniXF4rLg0+GtRFSusVy9tlQKVqnpzy6kTIm0LTXHuK7Ld
a4Bosa5VZf61thXtgP11urK5pdMDtrC0Kk3F5Gn6FXFVlVVxZcln4D24kNqU
E6Weaxy0QX3ngX9hcVgwAssXpf7X2jTXscVS82Fzw0TBv8AVXeQmxXpvwIDI
H7qKM6vvf37T5x7U7d9+87rx/v0dXhbGDjBx4LOJVI1ARcqcbR3FOJADauF3
ar7HLFUmT8vCYuliAc+R97JR6F9qp+YGr8DEFvZiXRlsVOSJGREL6wpo6SkK
x/Gn610yLUB0XpBkfiU00A2tc5PoNdTAYinalJ5ytDFonxssbCa8bnjhVtQS
UmIDzIZ4RRo4Z/CH3f3xTnGdq7LIbLIZefVd6Q0dzq2zWiWZtitRz3AcrMT2
hO3mpFNtBvNR2zbE4OPifSKRFZzcLl60Fe8/N0udLfDykRygCJcgDrAEXMBz
+B/eqCBDgKQtdUbnJAJIZEC5kiQALb9YMkmiKaSYeQ3pghEQDxxDWYCnZA/g
UWYuhBsrkyzhcNzKETp5PnQ0x9soyC+qScCOung7N28rs8Ip07cQkHn7iv6F
66+NTnHyXVTBb+iXQfABhpt3ZVaw/W1AZ2qvbLrGwTjCGalyPc+sWwrpjmRE
ukCQvuYYjrhDRKUGq2x49VLXEDzrSGpcUtm5ceDrsdhdERSMRHBRFeuSY0gm
bNToYngTD7ulLUvCr4p4t7I1gRnuw0DFvMJLZM7eugg/CmeZsXivAvtWugzE
SpTkbsGFE9XgEaEJO0BNLozkyToPghGuslWQ5CCfC0PrkezAoGudjchdZuuU
TnO9NKwdNTE7ihP0F+ssvbGHw9Digk+WwNgZACe8YCMZGLfOMuKWc2vj+Hgl
whRGTeNqB6cU/K5EpRRo3P1TgWlUnZVNU4oGb+zdVMd5XRXpOmGO/XbTtv58
T08csZcI9ufYp8BK8434D0dwraATdbEyFTHF1djKapIVQ2ABjUjJ0AAjugSe
w4bo6AvCfcgE1l6bd3UQUVjqlhguwPHKIm5kJoF0wljeETzODaQAyZO8ocQj
ElBpS5MBesDJ1+bCUvTIwQx5DO/woqpnm4DDXcd6xvDEOA3rZ0izq5L8tE1g
IHSqBP6jJjGppdFXGzCELV0DitV8XcHtkCgBbvIWNE+UjCkgXMmFU1kmWwIk
nFqXUBldCUQZ2oPdF+mapzMh5vPrRHoNO1nX3hZ5xWjEvNEtQTygKUv+qPFx
4kywmBNRNhAp0YHuCJ1hoydCgC81eMV0vDHMReIGXqcVOcgZEDSMOWhgJwDO
OPWXxQeKw4PhWIqYKsgsuqcRyw77+ZabVxIpeG/W8IU0Aa4/CKzx/R6MyAQG
HL36S/x8JIVPDaANOOMaNxQiETzd8oSVkWXoVJAmB4mds1VsPRXTNiJsKq5Z
NHS2K1usHaxnnXNM0JY9kjuD0Hpb+Ezfd8W1p912IlLICging78hcq+J3FY8
QmFBWjDZmVkwKDeOR9T7JmU1V2QwRS74+YajkCIrLjZAtqS5+150xKhLw7oP
huy//Onszf5I/qtenfDv18//86fj18+f0e+z745+/DH+2PNPnH138tOPz5pf
zZtPT16+fP7qmbyMq6pzaW//5dEv+yKa/ZPTN8cnr45+3Ce+1B3VZTkV0AWO
JCrwnpXK7QU3yQ7lm6en//Pf0/tQ2b9BZw+m08fQWfnj0fThffwBD+V9ZpFn
G/8n5L3ZAyQjHmCJwNskurRAJTcitIb/AmzDsZnJ3t5n/yDO/HOmvpgn5fT+
V/4CHbhzMfCsc5F5tntl52VhYs+lnm0iNzvXtzjdpffol87fge+ti1/8nZyH
Gk8f/f2rPdKSU6+kM7EORi62peABGpu6vc++0u3fYUb7PCKkf62IdfWEFwNC
cPRgSCoLRhCxjsqIV6D4R6JFSth6XBR8zM8kHrZK4CCCPoERyI4cDhxBcKed
qgZcTU7P0paW4o2qlSmNBNBbfphOLREVO4IYvATeUErEzq92SIkmbbZ1YGQ2
dA7sAdyAHQY+xNfhgpknTvgfrt9yfXRbuDNYtCN65PaY/qQ0DQKhDIN4FThz
GkMacromJIg7q9K+lN9JOsA5ScztrnS2NuKZ+TrCr4rAV/wLuDXAIqUIC7Xq
ZRMFuwTgBSJ06+om01CcaKjbFOvPZP0YWCeZJbzorOM92OMpAIAo3liTpfRC
eLqVHlOMHeMNkWGfpEaIqlyxrhDRyIUZAYX1e1GJ6/37SVDKfmH/f2po7/67
2npTnVxRNGKu4ScK/5OdxHSiTiimo5DztO32+1ae7QYuEtRyMaqXliaO7FcF
0Nr2W+/vjHgtyRHFZtxHLYMJXpLzjbEZTIUX6jcX6CdSySX7ewatVmQpGMc+
+53kRSl4eDBRp9iIb3ZNtTliLreZGim+SCnEX2d6jhuiiapQRFsVyJe7hFGG
RqtRPLQdwfNSnsM+y9hSW5B8KCRLlCI0+1wn1Gn0hytvHOLyVpCCzTXieymD
SbDnEzdfgOmV/krXydIwF3AMqXH26sFI4XGJ6ygpYdNgvGqJnWQn2hGDNYKh
3XDtHJntuUBXeCFPRWvcTtAuexGyNrUaEg3lceTYTDSiP/74IxRd4xl6/uky
wv8TpBMWuC36+MRr2532AsGKj87u7F58fXYnrCH//N5Hw/Ct3+nt21Os/I+u
IX/EUP/ZvP1/3PuA9t4xHubDE8J6Vv6g+UdnpN+vz/751+x9GDj6O1UJTk8Q
3t0VNRiHf74afHtrA8493lKn78tfr+vxHEEmBPSpb8ew6csvfj568dXHKN96
u/Lq9OUXr8++6t76yNtfUP7b1v948E95m7jmzV79x8A6LU56m/ltpm4iyRsH
xyO9mi/3T3Izru3KDEECECvnZDhsySx3++/FpQmYhc4VlXa6aMouPmDyTg2d
LL69gvhdiW8IvhkvBUkk9LGSP0bBBdzbWoOjGSnOM+qsVmvK/MwTAjZOKJDr
rHPLD6wK8kBZtrOKd3JphEKEdbrFqZEKuQkt19T6GWZVahcLBChYkdcdefzj
Ai20lI+nucgxhqFRMREJLfhOludjqunjEXUeGcMOKOQ5Ggh2mA5sXyRc9Aou
m5A5OkQO8YnhnQijBdMj6VpQjk6Pte6AOwiRGH9J5h/yVx15x9bOFtxD8t79
SbLPxRG3W6yQEglFRbFM0mLIBBHnKIjIF02as7lu9yhoDrGag+yw4rRZ8ZBY
/CbWUYLCh3D7vAU26yqfUR9uRiHgys24HTeTKQSeO2jQ6FyCezqjp+E8qu+5
4vepk9G0cqQBGuElvhUutF6SU1CvNpD+sadIA1uZ65PB+NlnxFgOKplIfUmv
U0T0iQlV1I5QbR28OwdLunUCOhnSYlxYULtHR9byY5lOLjniYA09tzl0zqZv
hQ3nvhNG1HeM4Y5YA+sZrb3Sl6ZVBAs7hLKfz0VITKR2SQx8d/TqkPTqThAH
BYBS7fKv6LrWHE4hwVkZzRVBHPhcNnhr0/OPmCnBhRQhzUBGVYYYVxKkJrf3
MqFKPxavxxkgI/1Q6Bc3ZMkQ/yGTZeyxhvxR7IwO3NRB/CvdrizLC+ykjbtA
zB1RrkYwq8RsbZE2LG4Z2n1msSRFN9kyzjZ5rd/BfXQAwI/1SIeOXck5qDq/
sTdToQCkxnz63WzEq+huxrKTh1B59qfXP6q1Y1mSEXEP5ByZ8NKsfCsN4oZG
IfoG0xaVvvC9v1UJZGR0F36ey9rnMVuloYouivM5CFx7zrHjyHrzE14Bxri9
QnzPDfYbZoztu+yKtBKmMngSNzITXEPIv3kOYctYqKv5QccEHSrrgY29kw/Q
Ih4a9qwzV7Tf3KptQ2ChmRtt+JvjMwAcdXps7nGopOKsVOJ7XIuUdM/NuxIg
fQ7XSf/5tbbbfD1yvrqfRrGSc46ypIIJvxNqffQOcEMn5NulSpCqzLqmvuK8
YVAxo81O3+7veDJpRUdr9dD2UZkMokIKPEuN68+6hKdiPStiYau8T3LxWEGN
Sxraub2z/f1Jy7ylAN6gBMGpxEiyuebieNN/kLmPzvlvI51UfaU2Joec80Yt
1hW3Rn0vv+naC4wOqqd0N3wPmpqqtU5pHKllDQESWXoMDn/G93t20WWSVSuE
cG/duiyB4gYeg9XoHCr0G8X6+zjr/kzth06sTlZmIn3QSWzFmHd6VWZmn3Pr
fUiD3uCH7j5cHKaPtTv092BandXcxGn8q7sAbAAPTR8+enDwcPr40T25CpNo
rn4ersJCaMGH6b3FA30wHz8+TB6N7y/umfHj5PBwPJ1/ru+Zz9MHi+m9QB6p
PL0jEcIMsXKoBcyuK1ub/Rt77z0LKMKMwn/dqTTeDKcft/0lO4ZTOBvp4LUD
S2R1HIz3i3+0W0mrfDfXbdngcAN3op6tK3EcbJsteqlROBp8MUbHHy8519HD
SQXGBydcXlRx1IziGbGVdg14EAUYYAMUFNuht0eD0D5vSuVxHKEo6UHub690
WXLHVszPdwl2O5kBkHm0wwltIbpygjl9POT+FCzaYVEJ4rlCHZ4PbaxJZwbk
Ly1Vh1DlWGTzA9Uzkeq2IIniNM40pIA/nEz3C0N63NLZpA4F9dl7C6y+ssps
JdxKpLgac79UopVWm8F35SNF1OT0EmLsb5ZRV1ZLr/oH0BV701NKG6jPTPic
ImxNahrsaZ6j4GnwZAsj1UeqO6jv3rw5PZN1aZCUYg2vYOe/Xl+6t7Akjpwi
EDea34Lpxm/t8uh2T9BFvfWCQpzuzKpUej/oGvxgBm8SaYpBteQysYt6vaS5
qxgASubs9VEopLkOX0lu60VvNb33IBweENGNOL178txpulPc2eYoyfl0jC8j
NFdVUVOVIKRGXQSUWQ5WmpPcT7RE9z0sZZtvtQi6ltfNFXxFesbMOleIZwBG
n8YWQMqZJb+lzqRU8pTLKdYNZXNbfbntTZQMVYaWW6drM9oiOxQCpDPLz3tj
M9FxwERY8B+LiZFNrUM7kLxQaxPPH5LgiidxciMDY66fue6jGWCYvMw7oqT1
fWsACDiAWPw+twUEyyl60zWRzi3+gSiOPSnkY64opPMmLpulH5fx2BeiZHFa
Gq+CBFhPIX9nReIbeKFWuF0YjGWDgwdt+3nkkb/35vQeKctYYks6d5yG8MUw
LphRfuDnGyzVybc9UnPQXpYGV3LaOEIKbJpGx409H1D8WR+CcNwxZ7K29+YZ
l5bX5XiIC5U7ZbkLZPU030WyQ5ArWRPFUGHm1S9LcbfNr4rsyoQp2pb3701e
tiLyIC5e+yjUdl1XQ7dKeqNQblmssx3+d8b7Wh0riZSGalwRybEpMNxbI3R8
ZTOaXmVw8AbtJ9JzmdBtvClock1pmBsnk5D3hNgm5iXNe94Du1EziNQW0hDF
IV4LedmnhkZe6V6SqMZveISQivUB63iuK5cpPapIE1ntmdvbkW6oxNHZ3ddn
d8D9LGu3xMkd54tKQ1PXCSMEBNjfdhevL3tDt771AFGuKxpddjvkj9qcG+qL
q7vb7Veqd3EoXzTljIbgucmK/MKX7+L9Np27ffFJ2/OKU82La5F/+81brhO3
DWcPDPeSw9p6B8RGsQWCHO6tMCx0QriE3Zf587zyk60Jr9YQvlQereiEzFCw
l4/norHAUBT4YDLSOWPGQxTdAlRHZqGrGHL1MIXmPPHIIRCEuzhtNDRBMzCs
oQc6RNCzTIILkEHSp1lsmniR9j6t4ziSa/o13lpDwcVHUL3sXNh3zWAOpC7f
ew3HQZI+efb0TfnYemu8ZwfMBlXJM1DNwWievRNHFEZd255xZxDjaCc0kKp8
GEtKhVg23EBfwEJfIYw8kejFdwC2HJ9kaK0GhDzXmrIUWZiU6u0mjRLiIYNg
u1CSYwH6W7IlYMPZeWZG0oXoblDwkmxGXRParV1J7Z90CEmY4XqCo2iToh8O
BshL67nN6BO8MGw6jNX+AxUXR/dbMCYZX6tNaHXjRYNXsMmSOlxxGnVOaiqf
u1GUJfNacy2jfbvNitixe15V1ME3rgTzDAUchq4I8P9MqqK3+iYLbWk+c1DZ
fNpBIzskKC5u8ZpvZWa0lPZWX5HzwYTaN5QuqRUNIiLjGJxpGqjb2G5xP2RZ
YdbY+xMJNZaFz/Eb/xpDUn/aJ2qrzBF36FQufWdKzGWdh93avpHn4/mp1qu+
zBA7W+y5zz/QfHpCg/BEKvShRfX2OlJ3Vtx1GGyaCatlfDPGIz5KqFpNRue7
czQCTrp6bTmZ7ZAs2OwDx5itzKllSbrD5QvHYWF0Ep+iQgyJIC+z+WVLkagY
EDWYPikNX638drOwrLmfhT7zdQ6MWNpyRp+P+c7VzenhhB45rYqCv7IikDDM
SUHo+PmUVn5upBGZOKyBrqGvwcONpk+ar3IKmd/U8J/0ZQbJ7jYN3wJnKUiG
WnMDodNQG3WW9t2nVgVTvnOhgfztOtzWezJLwNTe6WAHf8UxEtEwycwTarnJ
5/Et8qXFwZ9uvSv5SywA5qY83+4T9mdWU+mahmJDcA6XVsCJdux+38Dxsnfk
wR75WuwyQ7nIqqN+0VMct3wGKCszvWnIH8LglqiEB/4TRMnirHwDoTOqR298
t8kw87Lt/iZha00hLxsEC6T5IAsHhqA2LhZF2/OqOwUJPw0avimnLwoofvfZ
PNTb+TusOM2d9/GjE5q2Y0igroQLGVB7EfGD+pojpgUBCn2OTsTSrJfUq+g0
i4LG+CYta5LPNiIvpHhjqcRTEVg3sakr/ESF1Dz5BRqyCctcVBQa++A3Km5o
pnoA+UBsLE6QY9PcXHtTD6NqjktYxH4zPMMgwXXZvO66I7Zb4clnaqdZFaGh
qQXP+JvBokKIZBeGRqdkJpwbstulpl6yDFXsE56yHIW8g0IUGIboJZLl5usU
JFCZybtkXWP7JVPMpWgS2BK+gU/XExsHo2xCZ+kj+DpLnPr0RnvLfShaJMgr
+D1Kuqsic73V6ghZz16dCTKGsu2oeZGPKB+tsTclKOuPbVm7nAB6TAhC9YkT
g7QnK5GMIdREo8pK+Mcs2c4OuhVAniOjUgPlYUQgM34T0jL/iRkNPfg5WBoj
871TX3oYSASktjJIONMmpUl2Q0wvf6Lg2RVXDVxl1kjmRGL+lJn4rZx88EMB
NrmI29cVzct18uQKkWgrIdjKhL3lAX5t/UTCPr2JBVNsK3WndjDX/hKBDyYB
bBUDWEjJR7DULocM+WPF8EFc5bvYjaYMIYTwVETVCjvgFnKOzjkkkQ7iOm/5
XJM2m3nk6PsWMC8aXxp8LmthYzHiPHhMvfGYLrjMfsdYWXcpHxrODUcN0T1+
mpv2Duj46NXRlvPZ/axRvsuXZ9vfedIU6hw5oh8DTagQkpmU52IcjZvK/+WO
Sb/cX+jMmf34OZz/PJpODuaeWh5R+4EQJ1tp+JUfdJWpl8mLtc3BQwjnB3i7
HP+G/0Io83xlYZA/6vU8uIiX+t01qcALU819MNF8Qe7L9bA0+sh7uyr2vw6J
yyGsSAAA

-->

</rfc>
