<?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.23 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-oauth-identity-chaining-04" category="info" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <front>
    <title>OAuth Identity and Authorization Chaining Across Domains</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-identity-chaining-04"/>
    <author initials="A." surname="Schwenkschuster" fullname="Arndt Schwenkschuster">
      <organization>SPIRL</organization>
      <address>
        <email>arndts.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="P." surname="Kasselmann" fullname="Pieter Kasselmann">
      <organization>SPIRL</organization>
      <address>
        <email>pieter@spirl.com</email>
      </address>
    </author>
    <author initials="K." surname="Burgin" fullname="Kelley Burgin">
      <organization>MITRE</organization>
      <address>
        <email>kburgin@mitre.org</email>
      </address>
    </author>
    <author initials="M." surname="Jenkins" fullname="Mike Jenkins">
      <organization>NSA-CCSS</organization>
      <address>
        <email>mjjenki@cyber.nsa.gov</email>
      </address>
    </author>
    <author initials="B." surname="Campbell" fullname="Brian Campbell">
      <organization>Ping Identity</organization>
      <address>
        <email>bcampbell@pingidentity.com</email>
      </address>
    </author>
    <date year="2025" month="February" day="27"/>
    <area>sec</area>
    <workgroup>oauth</workgroup>
    <abstract>
      <?line 62?>

<t>This specification defines a mechanism to preserve identity and authorization information across trust domains that use the OAuth 2.0 Framework.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Web Authorization Protocol Working Group mailing list (oauth@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/oauth/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/oauth-wg/oauth-identity-chaining"/>.</t>
    </note>
  </front>
  <middle>
    <?line 66?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Applications often require access to resources that are distributed across multiple trust domains where each trust domain has its own OAuth 2.0 authorization server. A request may transverse multiple resource servers in multiple trust domains before completing. All protected resources involved in such a request need to know on whose behalf the request was originally initiated (i.e. the user), what authorization was granted and optionally which other resource servers were called prior to making an authorization decision. This information needs to be preserved, even when a request crosses one or more trust domains. This document refers to this as "chaining" and defines a mechanism for preserving identity and authorization information across domains using a combination of OAuth 2.0 Token Exchange <xref target="RFC8693"/> and JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants <xref target="RFC7523"/>.</t>
      <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="identity-and-authorization-chaining-across-domains">
      <name>Identity and Authorization Chaining Across Domains</name>
      <t>This specification describes a combination of OAuth 2.0 Token Exchange <xref target="RFC8693"/> and JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants <xref target="RFC7523"/> to achieve identity and authorization chaining across domains.</t>
      <t>A client in trust domain A that needs to access a resource server in trust domain B requests a JWT authorization grant from the authorization server for trust domain A using a profile of OAuth 2.0 Token Exchange <xref target="RFC8693"/>. The client in trust domain A then presents the received grant as an assertion to the authorization server in trust domain B to obtain an access token for the protected resource in trust domain B using a profile of JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants <xref target="RFC7523"/>.</t>
      <section anchor="overview">
        <name>Overview</name>
        <t>The identity and authorization chaining flow outlined below describes how a combination of OAuth 2.0 Token Exchange <xref target="RFC8693"/> and JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants <xref target="RFC7523"/> are used to address the use cases identified.</t>
        <figure>
          <name>Identity and Authorization Chaining Flow</name>
          <artwork><![CDATA[
+-------------+         +--------+         +-------------+ +---------+
|Authorization|         | Client |         |Authorization| |Protected|
|Server       |         | Trust  |         |Server       | |Resource |
|Trust        |         |Domain A|         |Trust        | |Trust    |
|Domain A     |         |        |         |Domain B     | |Domain B |
+-------------+         +--------+         +-------------+ +---------+
       |                    |                     |             |
       |                    |----+                |             |
       |      (A) discover  |    |                |             |
       |      Authorization |<---+                |             |
       |      Server        |                     |             |
       |      Trust Domain B|                     |             |
       |                    |                     |             |
       |                    |                     |             |
       | (B) exchange token |                     |             |
       |   [RFC 8693]       |                     |             |
       |<-------------------|                     |             |
       |                    |                     |             |
       | (C) <authorization |                     |             |
       |       grant JWT>   |                     |             |
       | - - - - - - - - - >|                     |             |
       |                    |                     |             |
       |                    | (D) present         |             |
       |                    | authorization grant |             |
       |                    | [RFC 7523]          |             |
       |                    | ------------------->|             |
       |                    |                     |             |
       |                    | (E) <access token>  |             |
       |                    | <- - - - - - - - - -|             |
       |                    |                     |             |
       |                    |               (F) access          |
       |                    | --------------------------------->|
       |                    |                     |             |
       |                    |                     |             |
]]></artwork>
        </figure>
        <t>The flow illustrated in Figure 1 shows the steps the client in trust domain A needs to perform to access a protected resource in trust domain B. In this flow, the client is in posession of a token that an authorization server will accept as part of a token exchange flow as defined in <xref target="token-exchange">Token Exchange</xref>. How the client obtained this token is out of scope of this specification. The client has a way to discover the authorization server in Domain B and a trust relationship exists between Domain A and Domain B (e.g., through federation). It includes the following:</t>
        <ul spacing="normal">
          <li>
            <t>(A) The client in trust domain A discovers the location of the authorization server of trust domain B. See <xref target="authorization-server-discovery">Authorization Server Discovery</xref>.</t>
          </li>
          <li>
            <t>(B) The client in trust domain A exchanges a token it has in its posession with the authorization server in trust domain A for a JWT authorization grant that can be used at the authorization server in trust domain B. See <xref target="token-exchange">Token Exchange</xref>.</t>
          </li>
          <li>
            <t>(C) The authorization server of trust domain A processes the request and returns a JWT authorization grant that the client can use with the authorization server of trust domain B. This requires a trust relationship between the authorization servers in trust domain A and trust domain B (e.g., through federation).</t>
          </li>
          <li>
            <t>(D) The client in trust domain A presents the authorization grant to the authorization server of trust domain B. See <xref target="access-token-request">Access Token Request</xref>.</t>
          </li>
          <li>
            <t>(E) Authorization server of trust domain B validates the JWT authorization grant and returns an access token.</t>
          </li>
          <li>
            <t>(F) The client in trust domain A uses the access token received from the authorization server in trust domain B to access the protected resource in trust domain B.</t>
          </li>
        </ul>
      </section>
      <section anchor="authorization-server-discovery">
        <name>Authorization Server Discovery</name>
        <t>This specification does not define authorization server discovery. A client <bcp14>MAY</bcp14> use the <tt>authorization_servers</tt> property as defined in <xref target="I-D.ietf-oauth-resource-metadata"/>, maintain a static mapping or use other means to identify the authorization server.</t>
      </section>
      <section anchor="token-exchange">
        <name>Token Exchange</name>
        <t>The client in trust domain A performs token exchange as defined in <xref target="RFC8693"/> with the authorization server in trust domain A in order to obtain a JWT authorization grant that can be used with the authorization server of trust domain B as specified in section 1.3 of <xref target="RFC6749"/>.</t>
        <section anchor="token-exchange-request">
          <name>Token Exchange Request</name>
          <t>The parameters described in section 2.1 of <xref target="RFC8693"/> apply here with the following restrictions:</t>
          <dl newline="true">
            <dt>scope</dt>
            <dd>
              <t><bcp14>OPTIONAL</bcp14>. Additional scopes to indicate scopes included in the returned JWT authorization grant. See <xref target="claims-transcription">Claims transcription</xref>.</t>
            </dd>
            <dt>resource</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14> if audience is not set. URI of authorization server for trust domain B.</t>
            </dd>
            <dt>audience</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14> if resource is not set. Well known/logical name of authorization server for trust domain B.</t>
            </dd>
          </dl>
        </section>
        <section anchor="processing-rules">
          <name>Processing rules</name>
          <ul spacing="normal">
            <li>
              <t>If the request itself is not valid or if the given resource or audience are unknown, or are unacceptable based on policy, the authorization server in trust domain A <bcp14>MUST</bcp14> deny the request.</t>
            </li>
            <li>
              <t>The authorization server in trust domain A <bcp14>MAY</bcp14> add, remove or change claims. See <xref target="claims-transcription">Claims transcription</xref>.</t>
            </li>
          </ul>
        </section>
        <section anchor="token-exchange-response">
          <name>Token Exchange Response</name>
          <t>All of section 2.2 of <xref target="RFC8693"/> applies. In addition, the following applies to implementations that conform to this specification.</t>
          <ul spacing="normal">
            <li>
              <t>The "aud" claim in the returned JWT authorization grant <bcp14>MUST</bcp14> identify the requested authorization server in trust domain B. This corresponds with <eref target="https://datatracker.ietf.org/doc/html/rfc7523#section-3">RFC 7523 Section 3, Point 3</eref> and is there to reduce misuse and to prevent clients from presenting access tokens as an authorization grant to an authorization server in trust domain B.</t>
            </li>
            <li>
              <t>The "aud" claim included in the returned JWT authorization grant <bcp14>MAY</bcp14> identify multiple authorization servers, provided that trust relationships exist with them (e.g. through federation). It is <bcp14>RECOMMENDED</bcp14> that the "aud" claim is restricted to a single authorization server in trust domain B to prevent an authorization server from presenting the client's authorization grant to an authorization server in a different trust domain. For example, this will prevent the authorization server in trust domain B from presenting the authorization grant it received from the client in trust domain A to the authorization server for trust domain C.</t>
            </li>
          </ul>
        </section>
        <section anchor="example">
          <name>Example</name>
          <t>The example below shows the message invoked by the client in trust domain A to perform token exchange with the authorization server in trust domain A (https://as.a.org/auth) to receive a JWT authorization grant for the authorization server in trust domain B (https://as.b.org/auth).</t>
          <figure>
            <name>Token exchange request</name>
            <artwork><![CDATA[
POST /auth/token HTTP/1.1
Host: as.a.org
Content-Type: application/x-www-form-urlencoded

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange
&resource=https%3A%2F%2Fas.b.org%2Fauth
&subject_token=ey...
&subject_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token
]]></artwork>
          </figure>
          <figure>
            <name>Token exchange response</name>
            <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-cache, no-store

{
  "access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJo
  dHRwczovL2FzLmEub3JnL2F1dGgiLCJleHAiOjE2OTUyODQwOTIsImlhdCI6MTY5N
  TI4NzY5Miwic3ViIjoiam9obl9kb2VAYS5vcmciLCJhdWQiOiJodHRwczovL2FzLm
  Iub3JnL2F1dGgifQ.304Pv9e6PnzcQPzz14z-k2ZyZvDtP5WIRkYPScwdHW4",
  "token_type":"N_A",
  "issued_token_type":"urn:ietf:params:oauth:token-type:jwt",
  "expires_in":60
}
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="jwt-authorization-grant">
        <name>JWT Authorization Grant</name>
        <t>The client presents the JWT authorization grant it received from the authorization server in trust domain A as an authorization grant to the authorization server in trust domain B to obtain an access token for a resource server in trust domain B. The authorization grant is presented as defined in the JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants <xref target="RFC7523"/>.</t>
        <section anchor="access-token-request">
          <name>Access Token Request</name>
          <t>The authorization grant is a JWT bearer token, which the client in trust domain A uses to request an access token from the authorization server in trust domain B as described in the JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants <xref target="RFC7523"/>. For the purpose of this specification the following descriptions apply:</t>
          <dl newline="true">
            <dt>grant_type</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>. As defined in Section 2.1 of <xref target="RFC7523"/> the value <tt>urn:ietf:params:oauth:grant-type:jwt-bearer</tt> indicates the request is a JWT bearer assertion authorization grant.</t>
            </dd>
            <dt>assertion</dt>
            <dd>
              <t><bcp14>REQUIRED</bcp14>. Authorization grant returned by the authorization server for domain A (see <xref target="token-exchange">Token Exchange</xref> response).</t>
            </dd>
            <dt>scope</dt>
            <dd>
              <t><bcp14>OPTIONAL</bcp14>.</t>
            </dd>
          </dl>
          <t>The client in trust domain A <bcp14>MAY</bcp14> indicate the audience it is trying to access through the <tt>scope</tt> parameter or the <tt>resource</tt> parameter defined in <xref target="RFC8707"/>.</t>
        </section>
        <section anchor="processing-rules-1">
          <name>Processing rules</name>
          <t>The authorization server in trust domain B <bcp14>MUST</bcp14> validate the JWT authorization grant as specified in Sections 3 and 3.1 of <xref target="RFC7523"/>. The following processing rules also apply:</t>
          <ul spacing="normal">
            <li>
              <t>The "aud" claim <bcp14>MUST</bcp14> identify the authorization server in trust domain B as a valid intended audience of the assertion using either the token endpoint as described Section 3 <xref target="RFC7523"/> or the issuer identifier as defined in Section 2 of <xref target="RFC8414"/>.</t>
            </li>
            <li>
              <t>The authorization server in trust domain B <bcp14>SHOULD</bcp14> deny the request if it is not able to identify the subject.</t>
            </li>
            <li>
              <t>Due to policy the request <bcp14>MAY</bcp14> be denied (for instance if federation with trust domain A is not established).</t>
            </li>
          </ul>
        </section>
        <section anchor="access-token-response">
          <name>Access Token Response</name>
          <t>The authorization server in trust domain B responds with an access token as described in section 5.1 of <xref target="RFC6749"/>.</t>
        </section>
        <section anchor="example-1">
          <name>Example</name>
          <t>The example belows shows how the client in trust domain A presents an authorization grant to the authorization server in trust domain B (https://as.b.org/auth) to receive an access token for a protected resource in trust domain B.</t>
          <figure>
            <name>Assertion request</name>
            <artwork><![CDATA[
POST /auth/token HTTP/1.1
Host: as.b.org
Content-Type: application/x-www-form-urlencoded

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer
&assertion=ey...
]]></artwork>
          </figure>
          <figure>
            <name>Assertion response</name>
            <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-cache, no-store

{
  "access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJo
  dHRwczovL2FzLmIub3JnL2F1dGgiLCJleHAiOjE2OTUyODQwOTIsImlhdCI6MTY5N
  TI4NzY5Miwic3ViIjoiam9obi5kb2UuMTIzIiwiYXVkIjoiaHR0cHM6Ly9iLm9yZy
  9hcGkifQ.CJBuv6sr6Snj9in5T8f7g1uB61Ql8btJiR0IXv5oeJg",
  "token_type":"Bearer",
  "expires_in":60
}
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="claims-transcription">
        <name>Claims transcription</name>
        <t>Authorization servers <bcp14>MAY</bcp14> transcribe claims when either producing JWT authorization grants in the token exchange flow or access tokens in the assertion flow. Transcription of claims may be required for the following reasons:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Transcribing the subject identifier</strong>: The subject identifier can differ between the parties involved. For example, a user is identified in trust domain A as "johndoe@a.org" but in trust domain B they are identified as "doe.john@b.org". The mapping from one identifier to the other <bcp14>MAY</bcp14> either happen in the token exchange step and the updated identifier is reflected in the returned JWT authorization grant or in the assertion step where the updated identifier would be reflected in the access token. To support this both authorization servers <bcp14>MAY</bcp14> add, change or remove claims as described above.</t>
          </li>
          <li>
            <t><strong>Selective disclosure</strong>: Authorization servers <bcp14>MAY</bcp14> remove or hide certain claims due to privacy requirements or reduced trust towards the targeting trust domain.</t>
          </li>
          <li>
            <t><strong>Controlling scope</strong>: Clients <bcp14>MAY</bcp14> use the scope parameter to control transcribed claims (e.g. downscoping). Authorization Servers <bcp14>SHOULD</bcp14> verify that the requested scopes are not higher privileged than the scopes of the presented subject_token.</t>
          </li>
          <li>
            <t><strong>Including JWT authorization grant claims</strong>: The authorization server in trust domain B which is performing the assertion flow <bcp14>MAY</bcp14> leverage claims from the JWT authorization grant presented by the client in trust doman A and include them in the returned access token. The populated claims <bcp14>SHOULD</bcp14> be namespaced or validated to prevent the injection of invalid claims.</t>
          </li>
        </ul>
        <t>The representation of transcribed claims and their format is not defined in this specification.</t>
      </section>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section anchor="media-types">
        <name>Media Types</name>
        <t>This specification does not define any new media types.</t>
        <t>It is <bcp14>RECOMMENDED</bcp14> that any profile or deployment-specific implementation adopt explicit typing as defined in JSON Web Token Best Current Practices <xref target="RFC8725"/> and define a new media type <xref target="RFC2046"/> in the "Media Types" registry <xref target="IANA.MediaTypes"/> in the manner described in <xref target="RFC6838"/>.</t>
      </section>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <section anchor="client-authentication">
        <name>Client Authentication</name>
        <t>Authorization Servers <bcp14>SHOULD</bcp14> follow the OAuth 2.0 Security Best Current Practice <xref target="I-D.ietf-oauth-security-topics"/> for client authentication.</t>
      </section>
      <section anchor="sender-constraining-tokens">
        <name>Sender Constraining Tokens</name>
        <t>Authorization Servers <bcp14>SHOULD</bcp14> follow the The OAuth 2.1 Authorization Framework <xref target="I-D.draft-ietf-oauth-v2-1"/> for sender constraining tokens.</t>
      </section>
      <section anchor="authorized-use-of-subject-token">
        <name>Authorized use of Subject Token</name>
        <t>The authorization server in trust domain A <bcp14>SHOULD</bcp14> perform client authentication and verify that the client in trust domain A is authorized to present the token used as a subject_token in the token exchange flow before issuing an authorization grant. By doing so, it minimizes the risk of an attacker making a lateral move by using a stolen token from trust domain A to obtain an authorization grant with which to authenticate to an authorization server in trust domain B and request an access token for a resource server in trust domain B.</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="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="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="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="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="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="RFC2046">
          <front>
            <title>Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="N. Borenstein" initials="N." surname="Borenstein"/>
            <date month="November" year="1996"/>
            <abstract>
              <t>This second document defines the general structure of the MIME media typing system and defines an initial set of media types. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2046"/>
          <seriesInfo name="DOI" value="10.17487/RFC2046"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="IANA.MediaTypes">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </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="I-D.ietf-oauth-security-topics">
          <front>
            <title>OAuth 2.0 Security Best Current Practice</title>
            <author fullname="Torsten Lodderstedt" initials="T." surname="Lodderstedt">
              <organization>SPRIND</organization>
            </author>
            <author fullname="John Bradley" initials="J." surname="Bradley">
              <organization>Yubico</organization>
            </author>
            <author fullname="Andrey Labunets" initials="A." surname="Labunets">
              <organization>Independent Researcher</organization>
            </author>
            <author fullname="Daniel Fett" initials="D." surname="Fett">
              <organization>Authlete</organization>
            </author>
            <date day="3" month="June" year="2024"/>
            <abstract>
              <t>   This document describes best current security practice for OAuth 2.0.
   It updates and extends the threat model and security advice given in
   RFC 6749, RFC 6750, and RFC 6819 to incorporate practical experiences
   gathered since OAuth 2.0 was published and covers new threats
   relevant due to the broader application of OAuth 2.0.  Further, it
   deprecates some modes of operation that are deemed less secure or
   even insecure.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-security-topics-29"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-resource-metadata">
          <front>
            <title>OAuth 2.0 Protected Resource Metadata</title>
            <author fullname="Michael B. Jones" initials="M. B." surname="Jones">
              <organization>Self-Issued Consulting</organization>
            </author>
            <author fullname="Phil Hunt" initials="P." surname="Hunt">
              <organization>Independent Identity, Inc.</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <date day="15" month="October" year="2024"/>
            <abstract>
              <t>   This specification defines a metadata format that an OAuth 2.0 client
   or authorization server can use to obtain the information needed to
   interact with an OAuth 2.0 protected resource.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-resource-metadata-13"/>
        </reference>
        <reference anchor="I-D.draft-ietf-oauth-v2-1">
          <front>
            <title>The OAuth 2.1 Authorization Framework</title>
            <author fullname="Dick Hardt" initials="D." surname="Hardt">
              <organization>Hellō</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <author fullname="Torsten Lodderstedt" initials="T." surname="Lodderstedt">
              <organization>yes.com</organization>
            </author>
            <date day="15" month="November" year="2024"/>
            <abstract>
              <t>   The OAuth 2.1 authorization framework enables an application to
   obtain limited access to a protected resource, either on behalf of a
   resource owner by orchestrating an approval interaction between the
   resource owner and an authorization service, or by allowing the
   application to obtain access on its own behalf.  This specification
   replaces and obsoletes the OAuth 2.0 Authorization Framework
   described in RFC 6749 and the Bearer Token Usage in RFC 6750.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-v2-1-12"/>
        </reference>
      </references>
    </references>
    <?line 313?>

<section anchor="use-cases">
      <name>Use cases</name>
      <t>This sections outlines some use cases where the identity and authorization chaining described in this document can be applied. The use cases described are not exhaustive, but are representative of the type of use cases enabled by this specification. Other use cases may also be supported by this specification.</t>
      <section anchor="preserve-user-context-across-multi-cloud-multi-hybrid-environments">
        <name>Preserve User Context across Multi-cloud, Multi-Hybrid environments</name>
        <t>A user attempts to access a service that is implemented as a number of on-premise and cloud-based microservices. Both the on-premise and cloud-based services are segmented by multiple trust boundaries that span one or more on-premise or cloud service environments. Every microservice can apply an authorization policy that takes the context of the original user, as well as intermediary microservices into account, irrespective of where the microservices are running and even when a microservice in one trust domain calls another service in another trust domain.</t>
      </section>
      <section anchor="continuous-integration-accessing-external-resources">
        <name>Continuous Integration Accessing External Resources</name>
        <t>A continuous integration system needs to access external resources, for example to upload an artifact or to run tests. These resources are protected by different authorization servers. The identity information of the build, for example metadata such as commit hashes or repository, should be preserved and carried across the domain boundary. This not just prevents maintaining credentials it also allows fine grained access control at the resource.</t>
      </section>
      <section anchor="api-security-use-case">
        <name>API Security Use Case</name>
        <t>A home devices company provides a "Camera API" to enable access to home cameras. Partner companies use this Camera API to integrate the camera feeds into their security dashboards. Using OAuth between the partner and the Camera API, a partner can request the feed from a home camera to be displayed in their dashboard. The user has an account with the camera provider. The user may be logged in to view the partner provided dashboard, or they may authorize emergency access to the camera. The home devices company must be able to independently verify that the request originated and was authorized by a user who is authorized to view the feed of the requested home camera.</t>
      </section>
      <section anchor="extend-single-sign-on-to-api-access">
        <name>Extend Single-Sign-On to API Access</name>
        <t>A user that authenticated to an enterprise Identity Provider (IdP) does not have to sign-in to multiple SaaS applications if the SaaS applications are configured to trust the enteprise IdP. It is possible to extend this SSO relationship to API access by allowing the Client to contact the enterprise IdP and exchange the identity assertion (ID Token or SAML Token) that it previously received from the enteprise IdP for an authorization grant. The authorization grant can be used to obtain an access token from the SaaS application's authorization server, provided that a trust relationship has been established between the enterprise IdP which issues the authorization grant and the SaaS authorization server. As a result SaaS servers that trust the enterprise IdP do not require the user to complete an interactive delegated OAuth 2.0 flow to obtain an access token to access the SaaS provider's APIs.</t>
      </section>
      <section anchor="cross-domain-api-authorization">
        <name>Cross-domain API authorization</name>
        <t>An e-mail client can be used with arbitrary email servers, without requiring pre-established relationships between each email client and each email server. An e-mail client obtains an identity assertion (ID Token or SAML token) from an IdP. When the e-mail client needs access to a separate API, such as a third-party calendaring application, the email client exchanges the identity assertion for an authorization grant and uses this authorization grant to obtain an access token for the third-party calendaring application from the authorization server trusted by the third-party calendaring application. If the authorization server trusts the issuer of the authorization grant, the e-mail client obtains an access token without any additional user interaction.</t>
      </section>
    </section>
    <section anchor="Examples">
      <name>Examples</name>
      <t>This section contains two examples, demonstrating how this specification may be used in different environments with specific requirements. The first example shows the resource server acting as the client and the second example shows the authorization server acting as the client.</t>
      <section anchor="resource-server-acting-as-client">
        <name>Resource server acting as client</name>
        <t>As part of completing a request, a resource server in Domain A may need to access a resource server in Domain B. This requires the resource server in Domain A to obtain an Access Token from an authorization server in Domain B, which it may then be presented to the resource server in Domain B. A Resource server in Domain B may use the flows described in this specification by assuming the role of a client when attempting to access the resource server in Domain B. Resources servers may act as clients if the following is true:</t>
        <ul spacing="normal">
          <li>
            <t>The resource server has the ability to determine the authorization server of the protected resource outside its trust domain.</t>
          </li>
          <li>
            <t>Authorization Server B is reachable by the resource server and is able to perform the appropriate client authentication (if required).</t>
          </li>
        </ul>
        <t>The flow would look like this:</t>
        <figure>
          <name>Resource server acting as client</name>
          <artwork><![CDATA[
+-------------+       +---------------+     +-------------+ +---------+
|Authorization|       |Resource Server|     |Authorization| |Protected|
|Server       |       |Domain A       |     |Server       | |Resource |
|Domain A     |       |(acting as     |     |Domain B     | |Domain B |
|             |       | Client)       |     |             | |         |
+-------------+       +---------------+     +-------------+ +---------+
       |                     |                     |             |
       |                     |   (A) request protected resource  |
       |                     |      metadata                     |
       |                     | --------------------------------->|
       |                     | <- - - - - - - - - - - - - - - - -|
       |                     |                     |             |
       | (B) exchange token  |                     |             |
       |   [RFC 8693]        |                     |             |
       |<--------------------|                     |             |
       |                     |                     |             |
       | (C) <authorization  |                     |             |
       |        grant>       |                     |             |
       | - - - - - - - - -  >|                     |             |
       |                     |                     |             |
       |                     | (D) present         |             |
       |                     |  authorization      |             |
       |                     |  grant [RFC 7523]   |             |
       |                     |-------------------->|             |
       |                     |                     |             |
       |                     | (E) <access token>  |             |
       |                     |<- - - - - - - - - - |             |
       |                     |                     |             |
       |                     |               (F) access          |
       |                     | --------------------------------->|
       |                     |                     |             |
       |                     |                     |             |
]]></artwork>
        </figure>
        <t>The flow contains the following steps:</t>
        <t>(A) The resource server of Domain A needs to access protected resource in Domain B. It requires an access token to do so which it does not possess. In this example <xref target="I-D.ietf-oauth-resource-metadata"/> is used to receive information about the authorization server which protects the resource in domain B. This step <bcp14>MAY</bcp14> be skipped if discovery is not needed and other means of discovery <bcp14>MAY</bcp14> be used. The protected resource returns its metadata along with the authorization server information.</t>
        <t>(B) Now, after the resource server has identified the authorization server for Domain B, the resource server requests a JWT authorization grant for the authorization server in Domain B from its own authorization server (Domain A). This happens via the token exchange protocol.</t>
        <t>(C) If successful, the authorization server returns a JWT authorization grant to the resource server.</t>
        <t>(D) The resource server presents the JWT authorization grant to the authorization server of Domain B.</t>
        <t>(E) The authorization server of Domain B uses claims from the JWT authorization grant to identify the user and its access. If access is granted an access token is returned.</t>
        <t>(F) The resource server uses the access token to access the protected resource at Domain B.</t>
      </section>
      <section anchor="authorization-server-acting-as-client">
        <name>Authorization server acting as client</name>
        <t>Authorization servers may act as clients too. This can be necessary because of following reasons:</t>
        <ul spacing="normal">
          <li>
            <t>Clients in Domain A may not have knowledge of authorization servers in Domain B.</t>
          </li>
          <li>
            <t>Clients in domain A may not have network access to other authorization servers in Domain B.</t>
          </li>
          <li>
            <t>Strict access control on resources outside the trust domain is required and enforced by authorization servers in Domain B.</t>
          </li>
          <li>
            <t>Authorization servers in domain B require client authentication, but are unable to manage clients outside of Domain B.</t>
          </li>
        </ul>
        <t>Under these conditions, an authorization server in Domain A may obtain an Access Token from an authorization server in Domain B on-behalf-of any client in Domain A. This enables clients in Domain A to access a protected resource server in Domain B. Resource servers in domain A may act as a client to the authorization server in Domain A in order to obtain an access token to access a protected resource in Domain B in order to complete a request.</t>
        <t>The authorization server may use the flows described in this specification by acting first as a client to itself to obtain an assertion grant and then act as a client to the authorization server in domain B to request an access token for protected resources in Domain B. The flow when authorization servers act as a client on-behalf of another client in it's own trust domain would look like this:</t>
        <figure>
          <name>Authorization server acting as client</name>
          <artwork><![CDATA[
+--------+          +-------------+         +-------------+ +---------+
|Client  |          |Authorization|         |Authorization| |Protected|
|        |          |Server       |         |Server       | |Resource |
|Domain A|          |Domain A     |         |Domain B     | |Domain B |
|        |          |(acting as   |         |             | |         |
|        |          |client)      |         |             | |         |
+--------+          +-------------+         +-------------+ +---------+
    |                      |                       |             |
    | (A) request or       |                       |             |
    | exchange token for   |                       |             |
    | protected resource   |                       |             |
    | in domain B.         |                       |             |
    | -------------------->|                       |             |
    |                      |                       |             |
    |                      |----+                  |             |
    |                      |    | (B) determine    |             |
    |                      |<---+ authorization    |             |
    |                      |      server B         |             |
    |                      |                       |             |
    |                      |                       |             |
    |                      |----+                  |             |
    |                      |    | (C) issue        |             |
    |                      |<---+ authorization    |             |
    |                      |      grant ("internal |             |
    |                      |      token exchange") |             |
    |                      |                       |             |
    |                      |                       |             |
    |                      | (D) present           |             |
    |                      |   authorization grant |             |
    |                      |   [RFC 7523]          |             |
    |                      | --------------------->|             |
    |                      |                       |             |
    |                      | (E) <access token>    |             |
    |                      | <- - - - - - - - - - -|             |
    |                      |                       |             |
    |  (F) <access token>  |                       |             |
    | <- - - - - - - - - - |                       |             |
    |                      |                       |             |
    |                      |           (G) access  |             |
    | ---------------------------------------------------------->|
    |                      |                       |             |
    |                      |                       |             |
]]></artwork>
        </figure>
        <t>The flow contains the following steps:</t>
        <t>(A) The client in Domain A requests a token for the protected resource in Domain B from the authorization server in Domain A. This specification does not define this step. A profile of Token Exchange <xref target="RFC8693"/> may be used.</t>
        <t>(B) The authorization server of Domain A determines the authorization server of Domain B. This could have been passed by the client, is statically maintained or dynamically resolved.</t>
        <t>(C) Once the authorization server in Domain B is determined, the authorization server in Domain A issues a JWT authorization grant to itself. This reflects to <xref target="token-exchange">Token exchange</xref> of this specification and can be seen as an "internal token exchange".</t>
        <t>(D) The authorization server in Domain A acts as a client and presents the JWT authorization grant to the authorization server of Domain B. This presentation happens between the authorization servers. Authorization server A may be required to perform client authentication while doing so. This reflects to [See <xref target="access-token-request">Access Token Request</xref>] of this specification.</t>
        <t>(E) The authorization server of Domain B returns an access token for the protected resource in Domain B to the authorization server in Domain A.</t>
        <t>(F) The authorization server of Domain A returns the access token to the client in Domain A.</t>
        <t>(G) The client in Domain A uses the received access token to access the protected resource in Domain B.</t>
      </section>
      <section anchor="delegated-key-binding">
        <name>Delegated Key Binding</name>
        <t>In some environments, there is a need to bind the access token issued by the Authorization Server in Domain B to a private key held by the client in Domain A. This is so that the Resource Server in Domain B can verify the proof of possession of the private key of the client in Domain A when the client in Domain A presents the token to the Resource Server in Domain B. Any application in Domain A may act as a client, including applications that are resource servers in Domain A and need to access resource servers in Domain B in order to complete a request.</t>
        <t>In the case where the Resource Server in Domain A is acting as the client, the access token may be constrained using existing techniques as described in Security Considerations (add reference once it is merged).</t>
        <t>The case where the Authorization Server in Domain A is acting as a client is more complicated since the Authorization Server in domain A acting as client does not have access to the key material of the client on whose behalf the access token is being requested.</t>
        <t>However, the trust relationship between the Authorization Server in Domain A and the Authorization Server in Domain B can be leveraged to sender constrain the access token issued by the Authorization Server in domain B. This can be achieved as follows. The Authorization Server in Domain A verifies proof of possession of the key presented by the client. It then conveys the key of the client in Domain A in the token request sent to the Authorization Server in Domain B. This can, for example, be accomplished by including a "requested_cnf" claim that contains the "cnf" claim of the Resource Server in Domain A, in the assertion authorization grant sent to the Authorization Server in Domain B. The Authorization Server in Domain B then includes a "cnf" claim that matches the value of the "requested_cnf" claim in the authorization grant in the returned access token. The client in domain A that presents the access token must use the key matching the "cnf" claim to generate a DPoP proof or setup a MTLS session when presenting the access token to a resource server in Domain B.</t>
      </section>
    </section>
    <section anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>The editors would like to thank Joe Jubinski, Justin Richer, Aaron Parecki, Dean H. Saxe, and others (please let us know, if you've been mistakenly omitted) for their valuable input, feedback and general support of this work.</t>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <t>[[ To be removed from the final specification ]]
-latest</t>
      <t>-04</t>
      <ul spacing="normal">
        <li>
          <t>Clarified diagrams and description of authorization server acting as a client.</t>
        </li>
        <li>
          <t>Remove references to sd-jwt.</t>
        </li>
        <li>
          <t>Added text to recommend use of explicit typing.</t>
        </li>
        <li>
          <t>Added security consideration on preventing lateral moves.</t>
        </li>
        <li>
          <t>Editorial updates to be consistent about the trust domain for a client, authorization server or resource server.</t>
        </li>
        <li>
          <t>Added sender constraining of tokens to security considerations</t>
        </li>
      </ul>
      <t>-03</t>
      <ul spacing="normal">
        <li>
          <t>Editorial updates</t>
        </li>
      </ul>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>remove recommendation to not use RFC8693's requested_token_type</t>
        </li>
        <li>
          <t>Corrected discrepancy between alphabetic numbering of the diagram and text in the resource acting as client example</t>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>limit the authorization grant format to RFC7523 JWT</t>
        </li>
        <li>
          <t>minor example fixes</t>
        </li>
        <li>
          <t>editorial fixes</t>
        </li>
        <li>
          <t>added Aaron Parecki to acknowledgements</t>
        </li>
        <li>
          <t>renamed section headers to be more explicit</t>
        </li>
        <li>
          <t>use more specific term "JWT authorization grant"</t>
        </li>
        <li>
          <t>changed name to "OAuth Identity and Authorization Chaining Across Domains"</t>
        </li>
        <li>
          <t>move use cases to appendix and add continuous integration use case</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>initial working group version (previously draft-schwenkschuster-oauth-identity-chaining)</t>
        </li>
      </ul>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale">
        <organization>SGNL</organization>
        <address>
          <email>atuls@sgnl.ai</email>
        </address>
      </contact>
      <contact initials="G." surname="Fletcher" fullname="George Fletcher">
        <organization>Capital One</organization>
        <address>
          <email>george.fletcher@capitalone.com</email>
        </address>
      </contact>
      <contact initials="R." surname="Shekh-Yusef" fullname="Rifaat Shekh-Yusef">
        <organization>EY</organization>
        <address>
          <email>rifaat.shekh-yusef@ca.ey.com</email>
        </address>
      </contact>
      <contact initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
        <organization/>
        <address>
          <email>hannes.tschofenig@gmx.net</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
zQX88ovhylLSEgNg56LifYUduYJBoUsDfOa/lQjZODEGMCrPyzfTOl2IV1Sm
luYl+YCmU7939LZh1h1NIs66zMU1JvEs5j8gktMwjREroIJ7AwwlIZsOpvGS
HgxrNEnyepm4zLH/oK1V5LeizdBxlYmA8r0xVcUayqGrdRPo6nUXfK+OPlhh
wnMUVtJHXdlfGeCef3LuOJkOoX3qR4q/v9DKNkFBYaNioUFQc3DEm1bqcaeL
NDW9Gzggm0iEB8OwfRkGOnHIny5tMkMXwirmOgW7hMQyGja2MMkdMetOGXmn
TGRB6VFVBJXl0FqzX1DHgvrNaVp1OslL755OmH3tXsV+WPxJFEShvvdaZ3E/
SSxRXEbyvT5+ldAyTUyQYBwknDTKSDOwu+fnNWWJFXSvjrE5ClRiP/+VEShG
/e+MYmFSB3+DR5tyquZWTphZR3Mg3zJboR43nLasZeOycJIH1137KJShqxWl
QCUsytPyqfHWpKn0p8SPPVt1b1M1v2nO0/u86B3LCg721navmwK52ypvDpz7
rGRT7Nml1cvS0/xfGeOEYU1si6Dwnqo6bCUPcl4fi4yKDxW2FEFN7Jz4dWJn
VtPsld3G9XMndqavbW3zuLGj+7LYmcfMbmzpvk7szJ6nqRn7OrEzex4nAmfN
U/MT7NiZd57QDsCtN89N0WtxnYblm55/1FPYgbZ0kUbrTFELOA1oms2m8IX4
NpzCcSX8Q1dNsUYcYdUUawz9vClqPPO5UHCIsLp22HAKbs+/EPPZHBe5uZH4
3I2sfP4fRBHwkuhC+HOmuDGKsFLd3qIbY7w/3nwK1xHc2vkPJKo3JroxFD4/
b8Mp1u2U3zhFQ9RtMyhWP1+FTk9MdMMp/Hcof9xG0HFeHsZdNcUaYdyVUNzA
RlYN3X5WBXbXV4jr/Xz3VznstVLzdYIWnxPjXXQl7SjdOt+M5Ubk1nH/TMR0
acVgYYKqHW5Rbr5ma8m3U1lJPDqyuUbUq1sZFUvSbOyAgGnUib4NRVQo43GC
bl6tmHRX0B4C82XVJkmdiz+jeRKM9SeIUCps59jjaRIuyaxwfN+8gj9a3im2
8r4533JpwJId2TJlh6q/KVj0s9vDzNNuyN/yifP7KUCWS+5kAn9VWrumg63o
6Mr9BAia7aziWjcaQ2U0OAW3Jpi8sit9vVJbT99d6Kxg5az4c1RmIzwDpu7O
R5uNe8m/bfjWig2Cxg1N49eVGmuGjKzA8MoDbSDyBYsLr8zD2Z81CsRp9d0I
Olt7sxC0E8bEEPRxmUT8PX4RPPbXSoatVi/hMkA755CONBVkUg0ys0lf6VzB
WhgdOxcaCeRNpKohPuDuBwV/a+tIxp5i+JrQRk5Jq8KGWo6SswCe9rIQghCT
UvRI3+lZBUU2FPqRhwwzkw/s+cw57Q6xl0CIectzJ6+2HrmtRcF2dSOAWvas
9QXUvi98ruQUUK2WMLlk/BpxzZ7GR4DfuFFWyjXvmIuGPRmju4vcpKVTWRtN
NdDURAx7IVNeogxHifo3qZJa4LSpaH07iPBcUG4tJgJWfeSoDqfMvKvtaAUv
17ZVqgGctvxObV3WAlsIl08aWWrFMa9qlS5uwdAVlRaBLlNBXOPh1PM13PX7
r77kqyFdzANoeJ7OJJVdVPcojd+GshI/Jrd4pVDQGtp00yBWrVfJf67kqXc6
15XJ/FW5VGHLZqpOpl65KZItWCq3RLIgWRo6fVBOAsXhYWfXcp6XLzSLIGUX
zpvoY27F7lchuNq7Uz+5y5hgRuWimbkta8RWyRq/hMnANA80Te0rQ3/L+lRv
Y4k42F3sCeSzkjbd4DrKZ0RtCPTXTgUO3LQrOEvhSKtdbt6pt+PHhPIZYLoL
68p2LRWhq14DCIP7TT+OcMTjaC6O9NEHPtYZ3c5mUjGUiaTylEAcn6Vnhl2x
SrOYTuDpyeVLrFjSXzplff9x2e+mbm4svbbDcoluWN4cc+nCb7fqjz5xS8AI
a3Jzc1VDtzSk35Mr8SIFy3kKxkZ+pXbhNxT74lwBXUAsdQMwUbBuVYb46bGE
4/y8Iy6C93K3ym4BkQ/sjdIclBdgjC60dzExZp5OvzC+0xg0SgB7A0coHasC
aLtjzEdFTXKmdF+rkskUVBWWP2JjBVqFkRuX7aeMOYtX3ISJY9MJ4bnCxnfz
VutfP//rZ+xYRbY3dqGwqu8GVL/uei5v37ba2LQCW/229+7yvX2QcTZMpIIh
tv7TzWKcDmorCjaMnsKr7XNuVVWqRtIredR+N6OPuxHV3WGtPecypeOxTMqu
JLXGN9UbZR1waOth+moRLpxGUOyGHDm++4R4AhUZtwTLdVEvTZIX5JmUqVPO
hR93xzA2hd9QzxYTYSpwF/uxIEG5cR2pIt9+cqTLnZYPcvzkAD/JDII16him
ggsAEY06jPBFXmlhqwk40hy/mYMMe0zUyuQkwLJho4aDeDIK4A8V6i4RBvaR
NDzCWhhpWIokk6NStzSk6doJ4O8j+LHCavomEaebO8FudLtWdHjhrbFKrBr9
gXoPCPlSH3lEknkSEPadE802qisxCI3YwCoqa65GMoiozpIYhKwtw4wwGvFK
z8qaKYxUiK0Gd3wLXmH3P+Kv7YFZt7jMcp2vvuxy1wCWgzlORiSvGo4U1IgX
iK/eczcVMEYbWjSYl5AAe0gAWAIbCpBcwcWGWQqyG012qh6xSnq54VAejmYy
uYJ/sBYv00mKppqwbVq37LT+H9jtcGDajQAA

-->

</rfc>
