<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mora-oauth-entity-profiles-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title abbrev="OAuth Entity Profiles">OAuth 2.0 Entity Profiles</title>
    <seriesInfo name="Internet-Draft" value="draft-mora-oauth-entity-profiles-00"/>
    <author fullname="Sreyantha Chary Mora">
      <organization>Microsoft Corporation</organization>
      <address>
        <email>sreyanthmora@microsoft.com</email>
      </address>
    </author>
    <author fullname="Pamela Dingle">
      <organization>Microsoft Corporation</organization>
      <address>
        <email>pamela.dingle@microsoft.com</email>
      </address>
    </author>
    <date year="2025" month="October" day="17"/>
    <area>Security</area>
    <workgroup>Web Authorization Protocol</workgroup>
    <keyword>OAuth</keyword>
    <keyword>Entity Profile</keyword>
    <keyword>Subject Profile</keyword>
    <keyword>Client Profile</keyword>
    <keyword>AI Agent</keyword>
    <abstract>
      <?line 54?>

<t>This specification introduces Entity Profiles as a mechanism to categorize OAuth 2.0 entities—clients and subjects—based on their operational context. Entity Profiles provide structured descriptors for the client initiating the OAuth flow and the subject represented in tokens. This document defines new JWT Claim names and metadata parameters for use in access tokens, ID tokens, token introspection responses, dynamic client registration, and Authorization Server metadata.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://drafts.srey.io/draft-mora-oauth-entity-profiles.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mora-oauth-entity-profiles/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Web Authorization Protocol Working Group mailing list (<eref target="mailto:oauth@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/oauth/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/oauth/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/Sreyanth/draft-mora-oauth-entity-profiles"/>.</t>
    </note>
  </front>
  <middle>
    <?line 58?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This specification introduces a mechanism for classifying entities participating in OAuth 2.0 and OpenID Connect flows using standard or custom-defined "Entity Profiles." These profiles offer a structured way to describe the nature or operational context of clients and token subjects, enhancing authorization decisions, policy enforcement, risk assessment, and audit capabilities.</t>
      <t>This specification introduces two new Claims:</t>
      <ul spacing="normal">
        <li>
          <t><tt>client_profile</tt>: Describes the nature of the client software or application initiating the OAuth flow (e.g., web app, native app, AI agent).</t>
        </li>
        <li>
          <t><tt>sub_profile</tt>: Describes the entity represented by the subject (<tt>sub</tt>) Claim in an issued token (e.g., user, service, AI agent).</t>
        </li>
      </ul>
      <t>This specification establishes a registry for OAuth Entity Profiles and defines an initial set of Entity Profile values. This document also defines how the Entity Profiles can be used in access tokens, ID tokens, token introspection responses, dynamic client registration, and Authorization Server metadata.</t>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</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>This specification uses the Augmented Backus-Naur Form (ABNF) notation of <xref target="RFC5234"/>.</t>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>This document uses the terms "User", "Resource Owner", "Client", "Authorization Server", "Resource Server", and "Access Token" defined in <xref target="RFC6749"/> and the terms "JSON Web Token (JWT)", "Claim", "Claim Name" defined in <xref target="RFC7519"/>.</t>
        <ul spacing="normal">
          <li>
            <dl>
              <dt><strong>Entity Profile</strong>:</dt>
              <dd>
                <t>A string-based descriptor identifying the category of an OAuth entity (client or subject) based on its operational context.</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt><strong>Client Profile</strong>:</dt>
              <dd>
                <t>A descriptor for the client software or application initiating the OAuth flow (e.g., web app, native app, AI agent etc.).</t>
              </dd>
            </dl>
          </li>
          <li>
            <dl>
              <dt><strong>Subject Profile</strong>:</dt>
              <dd>
                <t>A descriptor for the entity represented by the token subject (e.g., user, AI agent, service account etc.).</t>
              </dd>
            </dl>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="motivation-and-use-cases">
      <name>Motivation and Use Cases</name>
      <t>As OAuth 2.0 continues to be used in increasingly diverse environments—including cloud-native architectures, zero-trust systems, IoT ecosystems, and AI-driven platforms—the nature of entities participating in OAuth flows has become more heterogeneous.</t>
      <t>Current OAuth deployments lack a standardized way to represent and reason about these differing entity types. The introduction of Entity Profiles helps address several practical needs:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Access Control and Policy Enforcement</strong>: Resource Servers can apply different access policies depending on whether the caller is a user, service, device, or AI agent.</t>
        </li>
        <li>
          <t><strong>Risk Scoring and Security Posture</strong>: Authorization Servers can assess and adjust risk and their security measures based on client type (e.g., public native app vs. backend service).</t>
        </li>
        <li>
          <t><strong>Auditing and Forensics</strong>: Security logs become more useful and interpretable when entity types are made explicit.</t>
        </li>
        <li>
          <t><strong>Future-Proofing OAuth Flows</strong>: As AI agents and autonomous systems take on greater roles, profiles offer a way to signal and manage their participation explicitly.</t>
        </li>
        <li>
          <t><strong>User Experience</strong>: Customized interfaces and consent flows, such as enhanced disclosures and controls for human users and granular permissions for AI agents.</t>
        </li>
      </ul>
      <t>By introducing a consistent way to describe the operational context of clients and subjects, this specification enhances the overall authorization decisions, policy enforcement, risk assessment, and audit capabilities in OAuth 2.0 and OpenID Connect deployments.</t>
    </section>
    <section anchor="entity-profiles">
      <name>Entity Profiles</name>
      <section anchor="standardized-entity-profiles">
        <name>Standardized Entity Profiles</name>
        <t>The following is a list of Entity Profile values defined by this specification. These identifiers are not intended to be exhaustive, and additional profiles can be defined by implementers or through other specifications. The values defined herein are an intentionally small set that covers the most common scenarios.</t>
        <section anchor="user">
          <name><tt>user</tt></name>
          <t>A user is a human resource owner who interacts with the system through a client such as a web application, native application, user-agent-based application, or device interface. Users provide consent, make authorization decisions, and are typically assumed to have access to their own credentials, session tokens, and authorization settings on their devices. While users often act directly through a client, they may also delegate access to applications or AI agents acting on their behalf. It is assumed that users can make informed consent decisions, understand the implications of delegated access, and manage their own permissions within the system.</t>
        </section>
        <section anchor="device">
          <name><tt>device</tt></name>
          <t>A device is a hardware-based computing entity (e.g., smart TVs, IoT sensors, mobile phones, kiosk terminals) that can host client applications. Devices may have limited user interfaces and may act autonomously or under user control. They are often constrained in security capabilities (e.g., lack of secure storage, no local display, indirect input methods) and typically require indirect authorization mechanisms such as the Device Authorization Grant <xref target="RFC8628"/>. Devices are generally considered public clients unless they can securely protect credentials.</t>
          <t>Devices are distinct from backend services or virtualized compute instances (e.g., VMs, containers) based on their physical deployment and user-facing interaction model.</t>
        </section>
        <section anchor="nativeapp">
          <name><tt>native_app</tt></name>
          <t>Same as "native application" defined in <xref section="2.1" sectionFormat="of" target="RFC6749"/>.</t>
        </section>
        <section anchor="webapp">
          <name><tt>web_app</tt></name>
          <t>Same as "web application" defined in <xref section="2.1" sectionFormat="of" target="RFC6749"/>.</t>
        </section>
        <section anchor="browserapp">
          <name><tt>browser_app</tt></name>
          <t>Same as "user-agent-based application" defined in <xref section="2.1" sectionFormat="of" target="RFC6749"/>.</t>
        </section>
        <section anchor="service">
          <name><tt>service</tt></name>
          <t>A service is a non-human actor that represents a logical service, backend process, or microservice within a distributed system. When acting as a client in OAuth flows, services are classified as confidential applications, meaning they can securely store credentials and access tokens. Unlike user-facing applications, services do not involve direct user interaction and typically operate within system-defined scopes and trust boundaries, often performing automated tasks or facilitating communication between components in the system.</t>
        </section>
        <section anchor="aiagent">
          <name><tt>ai_agent</tt></name>
          <t>An AI agent is an autonomous or semi-autonomous system capable of initiating actions and making decisions independently or on behalf of a user or organization. These agents may participate in OAuth flows as clients, subjects, or both. They might perform delegated tasks based on user instructions, operate persistently across sessions and services, possess their own identity, credentials, and entitlements. They are typically powered by machine learning or reasoning systems, exhibiting adaptive, context-aware, non-deterministic, and proactive behavior over extended sessions and across multiple systems.</t>
          <t>AI agents can be deployed in various environments, such as backend services, cloud-based systems, edge devices, or within user-controlled platforms. Depending on their operational context and deployment, AI agents can be clients -- making outbound API calls and initiating OAuth flows; or, subjects -- acting as the resource owner in systems that authorize autonomous services. Depending on their ability to securely store credentials and maintain integrity, they may be classified as either confidential or public clients. In some contexts, even well-secured AI agents may be treated as public clients due to the inherent complexity and unpredictability of their behavior. While it can be difficult to objectively verify that an entity truly qualifies as an AI agent, trusted publishers or registries may attest to the nature of the entity.</t>
        </section>
      </section>
      <section anchor="private-or-custom-entity-profiles">
        <name>Private or Custom Entity Profiles</name>
        <t>Entity Profiles can be defined at will by those using this specification. However, in order to prevent collisions, any new Entity Profile should either be registered in the IANA OAuth Entity Profiles registry established by (<xref target="oauth-entity-profiles-registry"/>) or be a collision-resistant value. The definer of the value needs to take reasonable precautions to ensure they are in control of the part of the namespace they use to define the Entity Profile.</t>
      </section>
      <section anchor="representation-in-token-claims-and-metadata">
        <name>Representation in Token Claims and Metadata</name>
        <t>The value of an Entity Profile, whether appearing as a Claim in JWT tokens or as a parameter in metadata or introspection responses, is expressed as a space-delimited, case-insensitive list of strings. Each string represents a classification of the entity (either a client or a subject) and <bcp14>MUST</bcp14> adhere to the syntax defined below.</t>
        <t>Multiple values <bcp14>MAY</bcp14> be included if the entity fits into more than one category. The order of values is insignificant, and there is no implicit hierarchy or relationship between the values. When multiple Entity Profiles are present, each value is interpreted independently. When including multiple values, the Entity Profile combinations <bcp14>SHOULD</bcp14> be semantically meaningful and validated against expected usage patterns. Conflicting profiles (e.g., <tt>user service</tt>) <bcp14>SHOULD</bcp14> be avoided unless a clear operational justification exists (e.g., <tt>user ai_agent</tt> to indicate an AI agent acting as a digital employee).</t>
        <sourcecode type="abnf"><![CDATA[
entity-profile = profile-token * ( SP profile-token )
profile-token = 1*( ALPHA / DIGIT / "-" / "_" / "." )
]]></sourcecode>
        <t>Examples:</t>
        <ul spacing="normal">
          <li>
            <t><tt>"user"</tt></t>
          </li>
          <li>
            <t><tt>"ai_agent"</tt></t>
          </li>
          <li>
            <t><tt>"service ai_agent"</tt></t>
          </li>
        </ul>
        <t>All profile values <bcp14>MUST</bcp14> either:</t>
        <ul spacing="normal">
          <li>
            <t>Be registered in the OAuth Entity Profiles IANA registry (see <xref target="oauth-entity-profiles-registry"/>), or</t>
          </li>
          <li>
            <t>Be privately defined (see <xref target="private-or-custom-entity-profiles"/>).</t>
          </li>
        </ul>
        <t>When processing these values, Authorization Servers and Resource Servers <bcp14>MUST NOT</bcp14> assume any implicit relationships or hierarchies between the Entity Profiles unless explicitly agreed upon by the Authorization Server and the Resource Server or if defined in a different specification.</t>
        <t>For example, a token might include the Entity Profiles <tt>ai_agent acme_verified_robot</tt>, where <tt>acme_verified_robot</tt> is a vendor-defined profile used to identify industrial automation clients from ACME Corp. These two profiles are independent — the presence of both does not imply that one is a subtype of the other, nor that they share privilege or trust levels. Treating <tt>acme_verified_robot</tt> as a subclass of <tt>ai_agent</tt>, or vice versa, could result in incorrect access decisions.</t>
      </section>
    </section>
    <section anchor="entity-profile-jwt-claims">
      <name>Entity Profile JWT Claims</name>
      <t>This specification defines two new Claim Names: <tt>client_profile</tt> and <tt>sub_profile</tt>. These Claims may appear in access tokens (e.g., JWT access tokens) and OpenID Connect ID tokens.</t>
      <section anchor="clientprofile-claim">
        <name><tt>client_profile</tt> Claim</name>
        <t>The <tt>client_profile</tt> (Client Profile) Claim indicates the Entity Profile(s) of the Client identified by the <tt>client_id</tt> (Client ID) Claim in a JWT access token or ID token. If included, the value of this Claim <bcp14>MUST</bcp14> conform to the rules defined in <xref target="representation-in-token-claims-and-metadata"/>. Use of this Claim is <bcp14>OPTIONAL</bcp14>.</t>
      </section>
      <section anchor="subprofile-claim">
        <name><tt>sub_profile</tt> Claim</name>
        <t>The <tt>sub_profile</tt> (Subject Profile) Claim indicates the Entity Profile(s) of the Subject represented by the <tt>sub</tt> (Subject) Claim in a JWT access token or ID token. If included, the value of this Claim <bcp14>MUST</bcp14> conform to the rules defined in <xref target="representation-in-token-claims-and-metadata"/>. Use of this Claim is <bcp14>OPTIONAL</bcp14>.</t>
        <t>Below is a non-normative example illustrating how the new Entity Profile Claims can appear within a JWT access token. Other standard Claims are omitted for brevity:</t>
        <sourcecode type="json"><![CDATA[
{
  "sub": "user123",
  "sub_profile": "user",
  "client_id": "client456",
  "client_profile": "service ai_agent"
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="authorization-server-metadata">
      <name>Authorization Server Metadata</name>
      <t>If an Authorization Server supports publishing metadata as defined in <xref target="RFC8414"/> and also implements the mechanisms defined in this specification, it <bcp14>SHOULD</bcp14> advertise its support for the mechanisms defined in this specification using the following metadata parameter in its Authorization Server Metadata document:</t>
      <dl>
        <dt>"entity_profiles_supported":</dt>
        <dd>
          <t><bcp14>OPTIONAL</bcp14>. JSON object containing two JSON arrays: <tt>client</tt> and <tt>subject</tt>. Each array lists the Entity Profiles supported by the Authorization Server. The <tt>client</tt> array <bcp14>SHOULD</bcp14> include all Entity Profiles that the server can issue in <tt>client_profile</tt> Claims, and the <tt>subject</tt> array <bcp14>SHOULD</bcp14> include all Entity Profiles that the server can issue in <tt>sub_profile</tt> Claims. Authorization Servers <bcp14>MAY</bcp14> omit some supported profiles from this metadata if desired.</t>
        </dd>
      </dl>
      <t>Clients can use this metadata to determine which Entity Profiles the Authorization Server recognizes and to understand how their own Entity Profiles might be interpreted or classified.</t>
      <t>Below is an example of how this metadata parameter might be included in the Authorization Server Metadata document. Other standard parameters are omitted for brevity:</t>
      <sourcecode type="json"><![CDATA[
{
  "entity_profiles_supported":
  {
    "client": ["native_app", "web_app", "browser_app", "service", "ai_agent"],
    "subject": ["user", "device", "service", "ai_agent"]
  }
}
]]></sourcecode>
    </section>
    <section anchor="dynamic-client-registration-metadata">
      <name>Dynamic Client Registration Metadata</name>
      <t>If an Authorization Server supports Dynamic Client Registration as defined in <xref target="RFC7591"/> and also implements the mechanisms defined in this specification, it <bcp14>SHOULD</bcp14> allow clients to declare their Entity Profile using the following metadata parameter in their registration requests:</t>
      <dl>
        <dt>"client_profile":</dt>
        <dd>
          <t><bcp14>OPTIONAL</bcp14>. The Entity Profile of the client. This value <bcp14>MAY</bcp14> be included in the client's registration request and, if present, <bcp14>SHOULD</bcp14> match the client's actual Entity Profile. If omitted, the Authorization Server <bcp14>MAY</bcp14> assign a default Entity Profile based on its policies or the client's other metadata.</t>
        </dd>
      </dl>
      <t>If the provided <tt>client_profile</tt> does not match the server's policy or fails the server's validation and verification checks, the Authorization Server <bcp14>MUST</bcp14> reject the registration request with an <tt>invalid_client_metadata</tt> error. The verification mechanisms for the <tt>client_profile</tt> value are out of scope for this specification, but it is recommended that Authorization Servers implement appropriate checks based on their security policies and operational context. They may also employ verification strategies like checking against known registries, validating against trusted sources, admin approval, metadata inference, out-of-band attestation by an accountable party etc.</t>
      <t>Authorization Servers <bcp14>MAY</bcp14> choose to ignore all or some of the provided Entity Profile values during registration, depending on their policies and other client metadata. Authorization Servers <bcp14>MAY</bcp14> also choose to assign additional Entity Profiles that are not requested by the client based on their policies.</t>
      <t>Below is an example of how this metadata parameter might be included in a Dynamic Client Registration request. Other standard parameters are omitted for brevity:</t>
      <sourcecode type="json"><![CDATA[
{
  "client_name": "Example Client",
  "redirect_uris": ["https://example.com/callback"],
  "client_profile": "service ai_agent"
}
]]></sourcecode>
    </section>
    <section anchor="token-introspection-response-parameters">
      <name>Token Introspection Response Parameters</name>
      <t>If an Authorization Server supports Token Introspection as defined in <xref target="RFC7662"/> and also implements the mechanisms defined in this specification, it <bcp14>SHOULD</bcp14> include the following parameters in its introspection responses:</t>
      <dl>
        <dt>"sub_profile":</dt>
        <dd>
          <t><bcp14>OPTIONAL</bcp14>. The Entity Profile of the resource owner identified by the <tt>sub</tt> Claim in the access token.</t>
        </dd>
        <dt>"client_profile":</dt>
        <dd>
          <t><bcp14>OPTIONAL</bcp14>. The Entity Profile of the client identified by the <tt>client_id</tt> Claim in the access token.</t>
        </dd>
      </dl>
      <t>The following is a non-normative example of how these parameters might appear in a token introspection response. Other standard parameters are omitted for brevity:</t>
      <sourcecode type="json"><![CDATA[
{
  "active": true,
  "sub": "user123",
  "sub_profile": "user",
  "client_id": "client456",
  "client_profile": "native_app"
}
]]></sourcecode>
    </section>
    <section anchor="client-behavior">
      <name>Client Behavior</name>
      <section anchor="registration">
        <name>Registration</name>
        <t>Clients implementing this specification:</t>
        <ul spacing="normal">
          <li>
            <t><bcp14>MAY</bcp14> declare <tt>client_profile</tt> at registration when using OAuth Dynamic Client Registration</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> use registered or private Entity Profiles</t>
          </li>
          <li>
            <t><bcp14>MUST NOT</bcp14> attempt to register with Entity Profiles that do not match their actual nature</t>
          </li>
        </ul>
        <t>In environments where clients are manually registered or configured (e.g., enterprise deployments), <tt>client_profile</tt> provided <bcp14>MUST</bcp14> accurately represent the nature of the client. The value <bcp14>MUST</bcp14> be a registered Entity Profile or follow the naming conventions for private Entity Profiles.</t>
        <t>Clients are incentivized to declare accurate <tt>client_profile</tt> values because authorization and access policies rely on them. Misrepresenting profiles may cause stricter enforcement, failed authorizations, or rejection due to incompatible policy constraints. Moreover, Authorization Servers and Resource Servers should monitor client behavior to ensure consistency with the declared profile, with deviations potentially resulting in penalties or revocation of access.</t>
      </section>
    </section>
    <section anchor="authorization-server-behavior">
      <name>Authorization Server Behavior</name>
      <section anchor="client-registration">
        <name>Client Registration</name>
        <t>During client registration (dynamically or otherwise), Authorization Servers implementing this specification:</t>
        <ul spacing="normal">
          <li>
            <t><bcp14>MUST</bcp14> verify the <tt>client_profile</tt> value during client registration, if present in the registration request.</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> ensure that the <tt>client_profile</tt> value conforms to the rules defined in <xref target="representation-in-token-claims-and-metadata"/>.</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> reject registration requests with invalid or unrecognized <tt>client_profile</tt> values.</t>
          </li>
          <li>
            <t><bcp14>SHOULD</bcp14> provide clear error messages when rejecting registration requests due to invalid or unrecognized <tt>client_profile</tt> values.</t>
          </li>
          <li>
            <t><bcp14>MAY</bcp14> log Client Profile information for auditing and monitoring purposes.</t>
          </li>
          <li>
            <t><bcp14>MAY</bcp14> restrict clients from updating their <tt>client_profile</tt> after registration or limit the frequency of such updates, depending on their policies.</t>
          </li>
        </ul>
      </section>
      <section anchor="subject-profile-assignment">
        <name>Subject Profile Assignment</name>
        <t>The Authorization Server <bcp14>MAY</bcp14> determine the <tt>sub_profile</tt> value based on:</t>
        <ul spacing="normal">
          <li>
            <t>Attributes of the subject (e.g., user, service account, AI agent) as provided during registration.</t>
          </li>
          <li>
            <t>Subject attributes returned during authentication.</t>
          </li>
          <li>
            <t>The grant type used (e.g., <tt>client_credentials</tt> implies service account).</t>
          </li>
          <li>
            <t>Preconfigured mappings.</t>
          </li>
        </ul>
        <t>The client’s declared profile or request parameters <bcp14>MUST NOT</bcp14> directly influence or determine the value of <tt>sub_profile</tt> to prevent manipulation or unauthorized elevation of subject classification.</t>
      </section>
      <section anchor="jwt-token-issuance">
        <name>JWT Token Issuance</name>
        <t>Authorization Servers implementing this specification:</t>
        <ul spacing="normal">
          <li>
            <t><bcp14>MAY</bcp14> include <tt>sub_profile</tt> and <tt>client_profile</tt> Claims in access tokens and ID tokens, according to their policies and client registration metadata. When included, these Claims <bcp14>MUST</bcp14> conform to the rules defined in <xref target="representation-in-token-claims-and-metadata"/>.</t>
          </li>
          <li>
            <t><bcp14>MAY</bcp14> automatically include Entity Profile Claims for certain categories of clients, such as always providing <tt>client_profile</tt> for autonomous AI agent clients.</t>
          </li>
          <li>
            <t><bcp14>SHOULD</bcp14> include these Claims when explicitly requested by clients through supported mechanisms (e.g., OpenID Connect Claims parameter <xref target="OIDC"/>, specific scope requests).</t>
          </li>
          <li>
            <t><bcp14>SHOULD</bcp14> populate these Claims consistently using verified Entity Profile information obtained during client registration or other trusted validation methods.</t>
          </li>
          <li>
            <t>When issuing refreshed or exchanged tokens, Authorization Servers <bcp14>SHOULD</bcp14> re-evaluate the Entity Profiles and update them if context or identity has changed. Entity Profiles <bcp14>MUST NOT</bcp14> be assumed to persist across sessions without validation.</t>
          </li>
        </ul>
        <t>This specification does not prescribe how clients request Entity Profile Claims. In practice, Authorization Servers may enforce the inclusion of these Claims, especially for high-risk or privileged profiles such as AI agents, to ensure consistent and secure policy enforcement. For other entity profiles, to reduce token size and privacy exposure, Claims may be omitted by default and included only when explicitly requested through standard mechanisms like the OpenID Connect <tt>claims</tt> parameter <xref target="OIDC"/> or OAuth <tt>scopes</tt>. This approach balances the need for security and efficient token management, while preventing clients from arbitrarily adding or omitting Entity Profile information to manipulate access control decisions.</t>
      </section>
      <section anchor="token-introspection-responses">
        <name>Token Introspection Responses</name>
        <t>Authorization Servers implementing this specification:</t>
        <ul spacing="normal">
          <li>
            <t><bcp14>SHOULD</bcp14> include <tt>sub_profile</tt> and <tt>client_profile</tt> parameters in token introspection responses. If included, Authorization Servers <bcp14>MUST</bcp14> ensure that the values of these parameters conform to the rules defined in <xref target="representation-in-token-claims-and-metadata"/>.</t>
          </li>
        </ul>
      </section>
      <section anchor="validation-requirements">
        <name>Validation Requirements</name>
        <t>Authorization Servers:</t>
        <ol spacing="normal" type="1"><li>
            <t><bcp14>MUST</bcp14> verify that Entity Profile values are either registered in the OAuth Entity Profiles registry or follow proper namespaced private conventions per the rules defined in <xref target="representation-in-token-claims-and-metadata"/>.</t>
          </li>
          <li>
            <t><bcp14>SHOULD</bcp14> ensure that Entity Profile assignments are trustworthy and not based solely on unverified self-assertion. The mechanisms for these verifications are out of scope for this specification, but it is recommended that Authorization Servers implement appropriate checks based on their security policies and operational context.</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> enforce authentication assurance and policy requirements appropriate to the Entity Profile.</t>
          </li>
        </ol>
        <t>If validation fails during:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Client registration</strong>: Authorization Servers <bcp14>SHOULD</bcp14> return <tt>invalid_client_metadata</tt> (as defined in <xref target="RFC7591"/>).</t>
          </li>
          <li>
            <t><strong>Token issuance</strong>: Servers <bcp14>MAY</bcp14> refuse to issue tokens or omit the invalid profile Claims.</t>
          </li>
          <li>
            <t><strong>Token introspection</strong>: Servers <bcp14>SHOULD</bcp14> ensure introspection results match stored profile metadata and <bcp14>MUST NOT</bcp14> fabricate or guess unknown profiles.</t>
          </li>
        </ul>
        <t>Clear, actionable error responses <bcp14>MUST</bcp14> be returned in accordance with OAuth and OpenID Connect error handling frameworks.</t>
        <t>Authorization Servers <bcp14>MAY</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>Log Entity Profile assignments to support auditing and forensic analysis.</t>
          </li>
          <li>
            <t>Incorporate Entity Profiles into rate limiting and other risk-based controls.</t>
          </li>
          <li>
            <t>Return clear, descriptive error messages if Entity Profile validation fails.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="resource-server-behavior">
      <name>Resource Server Behavior</name>
      <t>Resource Servers handling tokens with Entity Profile Claims:</t>
      <ul spacing="normal">
        <li>
          <t><bcp14>SHOULD</bcp14> use <tt>sub_profile</tt> and <tt>client_profile</tt> Claims to inform access control decisions and apply appropriate policies.</t>
        </li>
        <li>
          <t><bcp14>SHOULD</bcp14> apply conservative or default-deny policies when processing unrecognized Entity Profile Claims, when Entity Profile values are missing, or when the semantics of the Entity Profile are not known.</t>
        </li>
        <li>
          <t><bcp14>MAY</bcp14> log Entity Profile information for auditing, monitoring, and anomaly detection purposes.</t>
        </li>
        <li>
          <t><bcp14>MUST NOT</bcp14> interpret or infer additional meaning beyond the profile's definition.</t>
        </li>
      </ul>
      <t>This specification does not prescribe specific behaviors or policies for Resource Servers based on Entity Profiles. However, it encourages Resource Servers to use these Claims to strengthen security, enforce fine-grained policies, and improve user experience.</t>
      <t>When rejecting a request due to invalid, missing, or unsupported Entity Profile Claims, Resource Servers <bcp14>SHOULD</bcp14> provide informative error responses to assist with diagnostics and troubleshooting. These responses <bcp14>SHOULD</bcp14> use existing OAuth 2.0 and HTTP mechanisms, such as the <tt>WWW-Authenticate</tt> <xref target="RFC6750"/> header or the <tt>error_description</tt> field <xref target="RFC6749"/> in the response body, to convey additional context.</t>
      <t>These messages are intended for human end-users or developers and are not standardized by this specification. Clients <bcp14>MUST NOT</bcp14> rely on specific error formats for automated decision-making.</t>
      <section anchor="handling-multiple-entity-profiles-in-authorization-policies">
        <name>Handling Multiple Entity Profiles in Authorization Policies</name>
        <t>When multiple Entity Profiles are present, authorization policies associated with each should be evaluated in combination, with the most restrictive outcome prevailing. Implementers should avoid writing Entity Profile checks that override previous decisions imperatively, as this can lead to inconsistent behavior.</t>
        <t>Here is a non-normative pseudo-code example of how these values can be used for enforcing authorization policies at a Resource Server:</t>
        <sourcecode type="python"><![CDATA[
client_profiles = set(token.get("client_profile", "").split(" "))
sub_profiles = set(token.get("sub_profile", "").split(" "))

# Define applicable policies
policies_to_apply = []

if "service" in client_profiles:
    # Add service-specific policies
    policies_to_apply.append(apply_service_policy)

if "ai_agent" in sub_profiles:
    # Add AI agent-specific policies
    policies_to_apply.append(apply_ai_agent_policy)

if "user" in sub_profiles:
    # Add user-specific policies
    policies_to_apply.append(apply_user_policy)

# Evaluate combined policies (e.g., intersection of permissions or most restrictive)
final_decision = evaluate_combined_policies(policies_to_apply, mode="most_restrictive")

]]></sourcecode>
      </section>
    </section>
    <section anchor="delegation-considerations">
      <name>Delegation Considerations</name>
      <t>Entity Profile Claims do not define or imply delegation relationships. They are intended solely to classify entities participating in an OAuth flow and to provide additional information that can assist relying parties in enforcing policies or making authorization decisions.</t>
      <t>Implementations <bcp14>MAY</bcp14> include Entity Profile Claims in delegated contexts to convey additional information about the delegator or delegate. For example, in a token exchange flow <xref target="RFC8693"/>, the <tt>act</tt> Claim could include a <tt>sub_profile</tt> value to indicate the profile of the acting entity within the delegation chain.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="trust-and-verification">
        <name>Trust and Verification</name>
        <t>Entity Profile Claims should only be trusted when issued by verified and trusted authorities. Without proper validation, self-asserted or spoofed Claims may result in misclassification and undermine security policies. Authorization Servers should enforce strict validation during client registration and token issuance.</t>
      </section>
      <section anchor="entity-profile-spoofing">
        <name>Entity Profile Spoofing</name>
        <t>Malicious clients may attempt to register or use false Entity Profiles to bypass access controls. To mitigate this, Authorization Servers should require verification for all profiles, especially privileged types like "ai_agent", and restrict dynamic registration of sensitive profiles unless additional validation is performed.</t>
        <t>Implementations are encouraged to monitor client behavior for consistency with the declared profile, applying penalties or revoking access when discrepancies indicate potential abuse or security risks.</t>
      </section>
      <section anchor="consistency-and-semantics">
        <name>Consistency and Semantics</name>
        <t>Authorization Servers, Resource Servers, and Clients must interpret Entity Profile Claims consistently. To avoid misclassification or policy errors they should follow the definitions and semantics outlined in the specification, and not infer additional meanings or relationships beyond the defined Entity Profiles. This consistency is crucial for interoperability and security.</t>
      </section>
      <section anchor="separation-from-authentication-and-assurance">
        <name>Separation from Authentication and Assurance</name>
        <t>Entity Profile Claims are intended solely for classification and do not convey authentication strength or assurance. It is advised not to use these Entity Profile Claims as replacements for Claims such as <tt>acr</tt> (Authentication Context Class Reference <xref target="OIDC"/>). Authorization decisions should incorporate authentication context Claims alongside Entity Profiles to ensure robust access control.</t>
        <t>Also, different Entity Profiles often require different levels of authentication assurance. It is recommended that Authorization Servers define minimum assurance requirements per Entity Profile, express these through the <tt>acr</tt> Claim, and reject authorization requests that do not meet the required assurance level. This alignment helps prevent unauthorized access by weakly authenticated entities.</t>
      </section>
      <section anchor="layered-policy-enforcement">
        <name>Layered Policy Enforcement</name>
        <t>It is recommended that Entity Profile Claims be used as one element within a multi-layered authorization policy. Relying exclusively on Entity Profile Claims can create brittle or exploitable policies. Implementers should combine Entity Profile Claims with scopes, roles, authentication assurance, and other contextual information.</t>
      </section>
      <section anchor="audit-and-monitoring">
        <name>Audit and Monitoring</name>
        <t>It is recommended that Entity Profile Claims be incorporated thoughtfully into logging, telemetry, and audit trails to improve visibility into system behavior and support forensic investigations. However, implementers should balance these benefits against potential privacy concerns, ensuring that sensitive classification information is not overexposed or retained longer than necessary. Careful access controls and data minimization practices are advised when handling logs containing Entity Profile details.</t>
      </section>
      <section anchor="default-handling">
        <name>Default Handling</name>
        <t>While it is recommended to apply conservative or restrictive policies when Entity Profile Claims are missing, Resource Servers should also consider backward compatibility. Many existing tokens and systems may not include these Claims, so resources might need to accept requests without them. In such cases, applying default or fallback policies that balance security and usability is advised. Monitoring and logging requests missing Entity Profile Claims can help identify when stronger enforcement or client registration updates are needed.</t>
      </section>
      <section anchor="misclassification-risks">
        <name>Misclassification Risks</name>
        <t>Entity Profile Claims can be misclassified or misinterpreted, leading to incorrect access control decisions. It is recommended that implementers validate Entity Profile Claims against known registries or trusted sources to ensure accurate classification. Implementers should also consider the implications of misclassification and implement fallback mechanisms or default policies to mitigate risks.</t>
      </section>
      <section anchor="token-bloating">
        <name>Token Bloating</name>
        <t>Entity Profile Claims can increase the size of JWT access tokens or ID tokens, especially when multiple profiles are included. This can lead to performance issues, particularly in environments with limited bandwidth or storage. Implementers should consider the impact of token size on their systems and apply data minimization principles, only including Entity Profile Claims when necessary.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Entity Profile Claims can reveal sensitive information about clients, users, or system architecture. When exposed improperly, they may increase risks related to fingerprinting, profiling, or data leakage. Implementers should evaluate the privacy impact of using these Claims and apply protective measures accordingly.</t>
      <section anchor="fingerprinting">
        <name>Fingerprinting</name>
        <t>Entity Profile Claims can potentially be used to fingerprint clients or subjects based on their operational context. It is recommended that implementers consider the privacy implications of exposing Entity Profile information in tokens, especially when these Claims are accessible to untrusted parties. It is recommended to only include Entity Profile Claims when necessary, and assess whether their inclusion could enable cross-context tracking or re-identification.</t>
      </section>
      <section anchor="profiling-and-behavioral-inference">
        <name>Profiling and Behavioral Inference</name>
        <t>Entity Profile Claims may unintentionally support profiling of users or clients, enabling assumptions about behavior, preferences, or roles. It is recommended that implementers carefully consider the potential for behavioral inference and ensure that Entity Profile Claims are not used to make unwarranted assumptions about user behavior or preferences. Implementers should also be cautious about exposing sensitive Entity Profile information in tokens that could be accessible to untrusted parties.</t>
      </section>
      <section anchor="minimization">
        <name>Minimization</name>
        <t>Implementers should apply data minimization principles when including Entity Profile Claims in tokens. This means only including Entity Profile information that is necessary for the intended purpose and avoiding overexposure of sensitive classification details. Implementers should also consider whether Entity Profile Claims are needed in all contexts or if they can be omitted in certain scenarios to reduce privacy risks.</t>
      </section>
      <section anchor="data-exposure">
        <name>Data Exposure</name>
        <t>Entity Profile Claims may reveal sensitive information about system architecture or user categories. It is advised to carefully consider the exposure of these Claims in tokens accessible to untrusted parties. Limiting or anonymizing Entity Profile information can reduce the risk of unintended data disclosure.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="oauth-entity-profiles-registry">
        <name>OAuth Entity Profiles Registry</name>
        <t>This specification requests the creation of a new IANA registry titled "OAuth Entity Profiles Registry" within the "OAuth Parameters" group. This registry will contain the string identifiers used to represent the Entity Profiles described in this specification.</t>
        <t>NOTE: Private or vendor-specific Entity Profiles may use namespaced values and do not require IANA registration.</t>
        <section anchor="registration-template">
          <name>Registration Template</name>
          <t>Each registry entry <bcp14>MUST</bcp14> include:</t>
          <ul spacing="normal">
            <li>
              <t>Entity Profile Name: A case-insensitive ASCII string representing the entity type (e.g., "user").</t>
            </li>
            <li>
              <t>Entity Profile Description: Brief human-readable description of the entity type.</t>
            </li>
            <li>
              <t>Usage location: The location(s) where the Entity Profile can be used. The possible locations are "Subject Profile" and "Client Profile".</t>
            </li>
            <li>
              <t>Change Controller: The party responsible for the definition (e.g., IESG).</t>
            </li>
            <li>
              <t>Specification Document: A stable URL or RFC that defines the semantics and use of the value.</t>
            </li>
          </ul>
        </section>
        <section anchor="initial-registry-contents">
          <name>Initial Registry Contents</name>
          <section anchor="user-1">
            <name>user</name>
            <ul spacing="normal">
              <li>
                <t>Entity Profile Name: "user"</t>
              </li>
              <li>
                <t>Entity Profile Description: Human resource owner interacting through a client</t>
              </li>
              <li>
                <t>Usage Location: "Subject Profile"</t>
              </li>
              <li>
                <t>Change Controller: IESG</t>
              </li>
              <li>
                <t>Specification Document: <xref target="standardized-entity-profiles"/> of this document.</t>
              </li>
            </ul>
          </section>
          <section anchor="device-1">
            <name>device</name>
            <ul spacing="normal">
              <li>
                <t>Entity Profile Name: "device"</t>
              </li>
              <li>
                <t>Entity Profile Description: Hardware device or IoT endpoint</t>
              </li>
              <li>
                <t>Usage Location: "Client Profile", "Subject Profile"</t>
              </li>
              <li>
                <t>Change Controller: IESG</t>
              </li>
              <li>
                <t>Specification Document: <xref target="standardized-entity-profiles"/> of this document.</t>
              </li>
            </ul>
          </section>
          <section anchor="nativeapp-1">
            <name>native_app</name>
            <ul spacing="normal">
              <li>
                <t>Entity Profile Name: "native_app"</t>
              </li>
              <li>
                <t>Entity Profile Description: Native application running on a device (e.g., mobile app, desktop app)</t>
              </li>
              <li>
                <t>Usage Location: "Client Profile"</t>
              </li>
              <li>
                <t>Change Controller: IESG</t>
              </li>
              <li>
                <t>Specification Document: <xref target="standardized-entity-profiles"/> of this document.</t>
              </li>
            </ul>
          </section>
          <section anchor="webapp-1">
            <name>web_app</name>
            <ul spacing="normal">
              <li>
                <t>Entity Profile Name: "web_app"</t>
              </li>
              <li>
                <t>Entity Profile Description: Web application as defined in <xref target="RFC6749"/>.</t>
              </li>
              <li>
                <t>Usage Location: "Client Profile"</t>
              </li>
              <li>
                <t>Change Controller: IESG</t>
              </li>
              <li>
                <t>Specification Document: <xref target="standardized-entity-profiles"/> of this document.</t>
              </li>
            </ul>
          </section>
          <section anchor="browserapp-1">
            <name>browser_app</name>
            <ul spacing="normal">
              <li>
                <t>Entity Profile Name: "browser_app"</t>
              </li>
              <li>
                <t>Entity Profile Description: User-agent-based application as defined in <xref target="RFC6749"/>.</t>
              </li>
              <li>
                <t>Usage Location: "Client Profile"</t>
              </li>
              <li>
                <t>Change Controller: IESG</t>
              </li>
              <li>
                <t>Specification Document: <xref target="standardized-entity-profiles"/> of this document.</t>
              </li>
            </ul>
          </section>
          <section anchor="service-1">
            <name>service</name>
            <ul spacing="normal">
              <li>
                <t>Entity Profile Name: "service"</t>
              </li>
              <li>
                <t>Entity Profile Description: Non-human backend service or microservice.</t>
              </li>
              <li>
                <t>Usage Location: "Client Profile", "Subject Profile"</t>
              </li>
              <li>
                <t>Change Controller: IESG</t>
              </li>
              <li>
                <t>Specification Document: <xref target="standardized-entity-profiles"/> of this document.</t>
              </li>
            </ul>
          </section>
          <section anchor="aiagent-1">
            <name>ai_agent</name>
            <ul spacing="normal">
              <li>
                <t>Entity Profile Name: "ai_agent"</t>
              </li>
              <li>
                <t>Entity Profile Description: Autonomous or semi-autonomous AI-based entity.</t>
              </li>
              <li>
                <t>Usage Location: "Client Profile", "Subject Profile"</t>
              </li>
              <li>
                <t>Change Controller: IESG</t>
              </li>
              <li>
                <t>Specification Document: <xref target="standardized-entity-profiles"/> of this document.</t>
              </li>
            </ul>
          </section>
        </section>
      </section>
      <section anchor="jwt-claims-registration">
        <name>JWT Claims Registration</name>
        <t>This document requests registration of the following Claims in the "JSON Web Token Claims" registry:</t>
        <section anchor="clientprofile-claim-1">
          <name><tt>client_profile</tt> Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: "client_profile"</t>
            </li>
            <li>
              <t>Claim Description: Client Entity Profile information</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document: <xref target="entity-profile-jwt-claims"/> of this document.</t>
            </li>
          </ul>
        </section>
        <section anchor="subprofile-claim-1">
          <name><tt>sub_profile</tt> Claim</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: "sub_profile"</t>
            </li>
            <li>
              <t>Claim Description: Subject or resource owner Entity Profile information</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document: <xref target="entity-profile-jwt-claims"/> of this document.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="authorization-server-metadata-registration">
        <name>Authorization Server Metadata Registration</name>
        <t>IANA is requested to register the following fields in the "OAuth Authorization Server Metadata" <xref target="RFC8414"/> registry:</t>
        <section anchor="entityprofilessupported">
          <name><tt>entity_profiles_supported</tt></name>
          <ul spacing="normal">
            <li>
              <t>Metadata Name: entity_profiles_supported</t>
            </li>
            <li>
              <t>Metadata Description: JSON object containing two JSON arrays: <tt>client</tt> and <tt>subject</tt>, each listing the Entity Profiles supported.</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document: <xref target="authorization-server-metadata"/> of this document.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="dynamic-client-registration-metadata-registration">
        <name>Dynamic Client Registration Metadata Registration</name>
        <t>IANA is requested to register the following field in the "OAuth Dynamic Client Registration Metadata" registry:</t>
        <section anchor="clientprofile">
          <name><tt>client_profile</tt></name>
          <ul spacing="normal">
            <li>
              <t>Client Metadata Name: "client_profile"</t>
            </li>
            <li>
              <t>Client Metadata Description: Entity Profile information of the registering client</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document: <xref target="dynamic-client-registration-metadata"/> of this document.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="token-introspection-response-registration">
        <name>Token Introspection Response Registration</name>
        <t>IANA is requested to register the following fields in the "OAuth Token Introspection Response" <xref target="RFC7662"/> registry:</t>
        <section anchor="clientprofile-1">
          <name><tt>client_profile</tt></name>
          <ul spacing="normal">
            <li>
              <t>Name: "client_profile"</t>
            </li>
            <li>
              <t>Description: Entity Profile information of the client</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document: <xref target="token-introspection-response-parameters"/> of this document.</t>
            </li>
          </ul>
        </section>
        <section anchor="subprofile">
          <name><tt>sub_profile</tt></name>
          <ul spacing="normal">
            <li>
              <t>Name: "sub_profile"</t>
            </li>
            <li>
              <t>Description: Entity Profile information of the subject or resource owner</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document: <xref target="token-introspection-response-parameters"/> of this document.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC6750">
          <front>
            <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6750"/>
          <seriesInfo name="DOI" value="10.17487/RFC6750"/>
        </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="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="RFC7662">
          <front>
            <title>OAuth 2.0 Token Introspection</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7662"/>
          <seriesInfo name="DOI" value="10.17487/RFC7662"/>
        </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="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="OIDC" target="https://openid.net/specs/openid-connect-core-1_0.html">
          <front>
            <title>OpenID Connect Core 1.0</title>
            <author>
              <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="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>
      </references>
    </references>
    <?line 605?>

<section anchor="example-usage-in-various-flows-and-use-cases">
      <name>Example Usage in Various Flows and Use Cases</name>
      <t>The following non-normative examples illustrate how Entity Profiles might appear in various OAuth flows.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Flow / Use Case</th>
            <th align="left">Client Profile</th>
            <th align="left">Subject Profile</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Authorization Code Flow (Web App)</td>
            <td align="left">
              <tt>web_app</tt></td>
            <td align="left">
              <tt>user</tt></td>
          </tr>
          <tr>
            <td align="left">Authorization Code Flow (SPA)</td>
            <td align="left">
              <tt>browser_app</tt></td>
            <td align="left">
              <tt>user</tt></td>
          </tr>
          <tr>
            <td align="left">Authorization Code Flow (Mobile App)</td>
            <td align="left">
              <tt>native_app</tt></td>
            <td align="left">
              <tt>user</tt></td>
          </tr>
          <tr>
            <td align="left">Client Credentials Flow (Backend Service)</td>
            <td align="left">
              <tt>service</tt></td>
            <td align="left">
              <tt>service</tt></td>
          </tr>
          <tr>
            <td align="left">Device Authorization Flow (Smart TV app)</td>
            <td align="left">
              <tt>native_app</tt></td>
            <td align="left">
              <tt>user</tt></td>
          </tr>
          <tr>
            <td align="left">IoT sensors reporting telemetry</td>
            <td align="left">
              <tt>device</tt></td>
            <td align="left">
              <tt>device</tt></td>
          </tr>
          <tr>
            <td align="left">A web app talking to a downstream API on behalf-of a user</td>
            <td align="left">
              <tt>service web_app</tt></td>
            <td align="left">
              <tt>user</tt></td>
          </tr>
          <tr>
            <td align="left">Resource Owner Password Credentials Flow (legacy)</td>
            <td align="left">
              <tt>web_app</tt></td>
            <td align="left">
              <tt>user</tt></td>
          </tr>
          <tr>
            <td align="left">S2S OBO Flows (e.g., Service Mesh)</td>
            <td align="left">
              <tt>service</tt></td>
            <td align="left">
              <tt>service</tt></td>
          </tr>
          <tr>
            <td align="left">An AI  acting as itself (e.g., Workspace bots)</td>
            <td align="left">
              <tt>service ai_agent</tt></td>
            <td align="left">
              <tt>ai_agent service</tt></td>
          </tr>
          <tr>
            <td align="left">AI agents acting on behalf of a user (e.g., personal assistant)</td>
            <td align="left">
              <tt>ai_agent</tt></td>
            <td align="left">
              <tt>user</tt></td>
          </tr>
          <tr>
            <td align="left">An AI agent running in a desktop app</td>
            <td align="left">
              <tt>native_app ai_agent</tt></td>
            <td align="left">
              <tt>user</tt></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <section anchor="draft-00">
        <name>draft-00</name>
        <ul spacing="normal">
          <li>
            <t>Initial draft</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank the following people for their contributions and reviews of this specification: Adrian Frei, Anna Barhudarian, Diana Smetters, Emily Lauber.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9192XIbyZXoO74iB3owqQCgpRd3807PDEVJFieklq7IboXD
4SALqARQzUIVXFlFCpbl8EfMy7zNt8yn+Evu2XKrBaS65WvPOBwtEKjK5eTZ
t5xOp6M6q3N9pMavj5t6rR7PHqpnBXy3U2+qcpnl2oxHyXxe6Wv3TOf3RVLr
VVntjpSp09EoLRdFsoEx0ypZ1tNNWSXTMoE3p5renG7lzenDhyPTzDeZMVlZ
1LstvHP67Pz5qGg2c10djVIY+Gi0KAujC9OYI1VXjR7BSr4YJZVOYEVnetFU
MOZ4dFNWV6uqbLbw7Ts9V7jUssr+mNQwNi62LhdlPh5d6R08mh6N1FQ2NKaP
8a74u7Nm/pNe1PGXJ3kG+4i/Oz5Vxyv4djy61kUDa1bqLmtRijc9fgeLz4qV
+g2+hN9vkiyH7wls/5bpejkrqxX+kFSLNfywruutOXrwAJ/Dr7JrPbOPPcAv
Hsyr8sboBzTCA3xzldXrZo4wq/QuKeDb284H38rhCEwdzEgvmZmBQWZZeesY
s3W9gZ2OEgIBQh0GVWrZ5DkjiVtOok7WSbVTr2CsMT0Ee0kKgRo8+CpbVKUp
l7U6KastPIXf85Na4GVkLFzPv23s87NFuRn3zPwG/skT9RQgTwf5s6bc0iCz
lAZpzzkqymoDL10TSrx9fvLV4y++lI9f//rLb93Hrx7Kx19/9ehb9/HbR/bj
118/lo/ffPnIjvDN14+/wY+vT5+eHNGiHDFvdXH6FBZdFIi/sHitHs0e8srr
pFrp8EhLeDpLZ4WuH5itXhj5Yrrg1+HfSk8fXTyUs8QxiDLV+KleaCRV9fjh
4y/Go6xYtvb7zdfffnE0Gk2nU5XMTV0li3o0Ol9nRuFM2TJbME1kRV2VabPQ
ps1eVAL/Vxu9WMPBmI2qSyX8JvujVp5rEd5l2vz1L/+xIAqF14pUGSZh/Hqe
GJ0qmKxe66xSsEk+zyRXsNNav69nnckBja+zVANjq5pF3VQwQKrNosq2dVkZ
BdvF0RTPCLuAJcCYQMn4LS9umZc3tBT8SpajKr2tNHC1GgbMYEXlFXC4mSLI
AP9sNjhcqpdZAYso9I3693fn6iRPso1C5OW9bXSdwEEkaptU8GWtZUWN0Tho
sgBwGhl7ogAf7Ef6l2GOx0AnAMvZIqOFn9MdzJEt7K4qvcrw6PCxCU0c87Mz
XV0DCtjVzPi4N1ma5no0uqdO5Wzx4dsOPzxp3MoiT0A4LHcIUnvCuN06W2Rb
hjTs1GMBrq6F/Ah/AzDBZ00NDyQVYAEM3Zi63EwZyGlbAJjZGE4DjkhZTqbK
5RK2mYS4cJPsECEZJeaajrhI8DecoQfDYBAVoiefhEXSCewRNr/ApSYRjFOA
FwpJeGRb5tliB08CfID6YKiJqjJzBYQCp2f4Cxw7adKsBmLZJvMsJ8jNbgN/
fVMSthGmGSRcdcnLvRAwXB6pp7JbE213GRICcsCbhKGQbLe5n2qIQA70bDWb
qBuQlvDCBIcFLsKfQbomKF0PZ7geANbgYlj4RNQ130WEd4DvXx4KLSGVwKqM
abQ9C1kI0FA1UfCf62yhoyX0gRBEZDLPM7MmFBaC2REG9+pMdD6WvBMLlxzm
IwyJn1bXSd7oDndIclO6MdYAQtxme54FDA542RjmM38/lnDvHhLkNR4QDEmv
PMW1Z/Q3AlUrUM0U6mYGBO8PZ+fjCf+rvn9Nn98++78/nL599hQ/n704fvnS
fRjJE2cvXv/w8qn/5N88ef3q1bPvn/LL8K2KvhqNXx3/dswbGb9+c376+vvj
l2NizDHIAaOB3OfIXoHbApIhhiVmZBkAAfnJyZv//q9HX6oPH/4JJODjR4++
/fhR/vjm0a+/hD9u1lrAVhb5Tv6E49uNAN91UtFR5TnSblbDOU9QCBo440Kt
daUBnPd/h5D5/ZH65/li++jLf5EvcMPRlxZm0ZcEs+43nZcZiD1f9UzjoBl9
34J0vN7j30Z/W7gHX/7zv+aA3Wr66Jt//ZdRL+EBYjPlHzerDRP8k2Rx1Zjp
90lTqeegjqiD4yffPz9URVnzO0BgHz6ILvbxI+Pmua42WVHm5Won87hDd1PA
iW8ANX8ApkBIpU3ZAAdWr28K/oYtA/zURw3RO+4rQrljJstzpMGxshIJkIDW
iYoiII1VIWQZ/372+nuFxsU5sy1QEA55EcDY3Af1PSgG3SFRy6StT9X9+zHP
uH//aHSkjlHKAZuestLkdR4F2hA8zxKZOL4YfwjWxIpi4cMHwi7gNeG/h8pp
YRmIwD4djBcVW1l2UcE6WqrX30biKF0vZoeypJY1uGdNw2IokvexrLFzOqmD
3LpsgkXcA9sI1sgbQ3QAVFQnAE/gn8cm0IIQlBnYoUa4lWX/WbEAsxk1IeA6
Key2MrjY66wqC8R11JLhmbxBawYgWzbp1IIFjcxak94D/OiPuiqnoAcZgPzO
1HqD0qQ8V3pRur9JLJxO0wreL9QWLEm0DnCOWG+4Ta9jBW4NLHAOw2+02qA5
s0Z9twSA6bJBxeakqSo8MX4n1du83NGewIRdXJHaxrofmA1OcXMnRItF2CBk
52VT42kBcNIMlT6nfe7IYCdRrJ3eZJlKW/audb4FSZemFRK30QBuQPMt2kCA
nTkoWjplHev+feEAICJhzJxW84b1vGdezwOMUy0OwhIeEX4na6XN8GikKSJg
ARq6oDOFlYK0gb0J8YCUgY8Zai0tjSfV/C+gtMXMGS31LeqaZ2ATkpYKC7U+
GFixwTPFZfYxQFkraamsoKY/IQKx8srcDewyY4fbwHEgtnmWIbSOZ2BpZ9uA
3rUIiFddw/HM4cg1Wn+8m0Ne+TEqxHbVIBpA8ckWBpfrtgACIEYzgMqy4QNx
Mh9UPU1CO0IK0g42CRiL+j3yn0zg9bxBoEwBLQAvYHJG0OeI1AQp4+ArUGnq
sig3gNWWtMBiv9K4/xVgKKxBAYogEXYsE8Fqk62QoZKJmBQwtEA2oC/UWWWV
+Y7XiXJNPXsPHBmAvKBTPCETiQiGNr9MFqK7sk9OjCvAmmaxRh2FzRcUGJkB
9sHHJ88jYrN9um5gWYRv/OOqSoomB7Vni1KYnIH8oAMM0PeTnSM4OkJaAiih
uIo+M+wOxpc3u+oelZ63wqK/JNrN/yZG2a0GbMDLAA4gBVqMhhSYs5C7dR5A
drUsczgs4qxI7mCtDNsaTmEgsdWGzUwsY1EFMjpHQH7QsAhPipSsKZQ8+v06
ASQC2pTtp2kmh7Jt2SjBlNlmmxMQcWSSqVXZrNaqJMYVrUV4cWvZqCWjDg2L
IuuqZrsDjnCnzAZPEi2tep3AUZTEmvCUN8C/4O/NBs7WLHSRVFlpSD+8py4R
XS9BzhLeMggZjyvLkUvUA4EvlEwswOaNusngXMn+JFJ2O0mc3iKUk1hFxGou
oULiv8PJp0QToplFvwKomG17cp2hklB5R5YQ7gQ4A/CUQXyms0JrZ7dFWQVg
A0QGfZjOdZ1ca29KWncaGCegXRBKkMmCeI+jWgtTeFswH5wBsmPjfXK8ejjT
d2tERmYRoNlpNF2BErIKCCLfdcDI1hPsaWfN4lyvgFUGqwwAZUKhZnBkEY28
iLleJ/lypk5rOma7b0QWXhAiLIGP/Z3as8MAgg1QQUU6B50/orSffulWmMoS
J112jRANOSLiEpmkFpssajLUCDnt8RN6AjtAlVgwBRB729SBKiMSFOihqtX5
j6LBYailrOCPTTnHM9iuywKFzRXQwhUZHxnQkTkU6gFQrIlsGJ1DKM/Awqfj
pHMhpMmzTYZ7ZhqKRQodHhyyl39w0OjNREDyGyJFiOR3hJ+MGwj+ukqsieM0
iIjNynZJG4QDoIfQsVtWAHKgthKEP6plILpAV91NYCTGN/gAgENnxrpMYeN0
pI4uKv2HBh7zT8c47tyZxpE6HiBDpqUm/QbkYM0GGrr2wUBzEMS9oq5b0Zwk
+gAqsF3Rf6xYa4qc8B3hg2fDu4RXgP5Rew9JFNAnHB72DdiBDtOq3LQ1KCIZ
sBPqJslJxDA24bYRxxcevj++AmTBg8LjqExg8IkSst4ZUn+9WCOIEmcDbGDV
n/knAbAEUrGYzizxArAMsP0MTFuE57jLKFsW75k4tB7PHuHRO5vaDgustz1m
ixt/4oAcfKvag+7j3p84g5wLEb21F4nqi7KYsmACAJLsTIJwA0n+ckUH4FR9
e9aAI8yK4DUOZMnAwnkSwhHQsBqkYeFBwKqZO5NWZrxki+23icckRDbx62fk
PkN0WWaClhELmaARUIjx3sJopFwd4jNLmNDDCcKvyLMrHSFXPL5bVVqK/nJd
5tdaRE3AqAQdY+JnJdMBiEHiQgpmUW6FubGpDIYlKmkZ8lPmXPA+ihBx+Jcb
kgh1Yq6I4HDFwL3YHkbFpCmsejrX9Y0m1rfZAoPGk+2VDUl2QQiHiFJ4v0ZG
bufA1EAXjd5k0471wUw0J0s9cKYwOCznpuC1E37IC8nihJmYh9OCUaqSl4ih
il8H0VarVIpQRmng7RXd9gYg0jDLmwRqPAw5Bx1R5MMmW61rC+FA4DJ4HVuS
I+aoDiOFPVb4R0wMVICQIIxVa8SCEOxBA4DtWi+6GaFrECSRWoSv0Q+s4ZpA
mHm82pY3xN3nqNMs1ugEzXVSESXAJtlRQQEt62wBRTubi3WbJlvWuMXumSao
BkyINaSaRTgy+wWvBsgeTxOQHs/oOsODQe89vMmqfLRlAcOmyesMtHS7AsA3
r1E5jR45PHO0a1SmGxN5m7zd2JY2E3E+8SH5TaYrbXVEOm2hOyJvUQ5yFIrW
14QCNHB9DAZ+JR5jBdJEdfZiBSxGNhndy6YmelbHb07JkWLES+BoJEDY/wOr
9ZiKo3iOiUTbMiIcLzHMv61OoSPvgACrd5Os97A7YD/H3ICgRmFNbG5VEcY6
bXreZtU6Ixss4thwELEaArozbAB9KAJfPDt0At7oPJ/yetIAxjJTTe4Nmqal
1qSNFksDVrlmJxdyvly/x02S/lCAiEuzRW13zhFJ0ecRq61VkdUOQbMl2JGA
yTh4SWcDZACQAvTPljuBvXfzVA389gdUgZaZZCYUgd+WmLzVycxajFeJlWWi
Byc1JtTY3cTRU56HIxJvKvT0kj+b3TBdq34g2GfFD6z9JgNTl2x4kOUSA++z
518Av7lG9x+gQVmhvg3rA3heM6Dz3NuFOwoQt7wGZl02eWqRY65l08TDRCyd
Hn9/PBAMdfFSH0Yl1nfwu98f3OvPHLOvHB4S09fkD5Jlwo/ItVGXJrcAewgY
KpUFNf3CLlg6CzTnmK2SsIO9L2Bi4nrwM6afVZrJIiFl39oidjyUVfYzZWhs
wbDhFzAdo7ah2p4oLZ/3W6ui2biFBHY4FE8o/krCqezP4R1w1CUecOJ8vBxO
dJqZC3pjNgmrSBQvwd9cDgn+7jJLymo4JgxopN/jog3TbKJo0yBixMwDLg78
e5pR+l5GEsZ6nTi6BIziGYg3+SvWUi3bWbigXRBZORBMc8pmSYkZNsZEwMJw
aJIis7DEZnYA3ffe0aSBMwPwX1lRJk6kV8e/5RAvBkIQgaOplxmpWjAk+YeB
RcDiCh8HY2xjIoJFy5gZvoN+WdqRdQbWtDr4DYxPdhAAb1pnIJ6qxXrHzCNn
TXWdbZ3O5/DXiPbthHEnzaAiVGaPj0ZQM9bQcnwEO9LXZEwfB9rE8Jn0oDAy
43lWiHtDgsQAQ1ApYbOi1Igqb93pMFqWMr9fJah/ITbB8ZF7AL0gW2SVFWrx
JyBtADgkMJ3bUOxNcsxZWXh5GEyeXJcZnp/YxIgrGFsPxT/GHwKX73vAztbA
Tn9GJEIbf0FupUCVDk2fNFthwF7pDWk+GHgY/fnPf07mxXIUszD1nd3JlGOC
99WBOnvT+vJwFP/9nXp0/0Adv3zz4lg9UE9Pf3N6Dv+Op2P87wX9dzaGt2BO
EA/vE5SQksZDxuf4kj7aTcmfLt7ovx4d585D6+gCKYoJj4Z80sfm+zk8MX/H
5g+M1uouvB11PJ5oy9IQo1xCvW4Q+WlaggrIKV2tAQ/xFAinxcAVe9J4jO4P
VyGWduJtNs1CHIMkER3thuRKrNUSM0r/kHzbABIc9TEZQK5KI/Ju0XbaSY5D
T46NdTC2Fkqcexn6FJIgQBiL/9HoeYnqPqELcCaJUrP9JGywd9XOugQi2OgL
0ppAT7yoSjDDLkkMAQO67PuRnRWgX6RwbnaVFuEoXo30JrkGSHgNCokkt2Zy
5sKBhh1WxyevnlGWrjUkMZdtGzLCgMupv/7lP1hsE3NckBxF01GlJSZcoiNg
s81FA0T2TssFAUOxRxFGFI5As0q8LCTtzZqZbnYNE69If2PjPwdtKkdzD7Vc
RMF+uCQyEck/nMmb8BN2wsFqERMTtO9Q64ItoArL8f2yYicku0GcST7rxo18
SqnpTa2xqWVRTiDlk5ijTlYgoWGUmmePQfQXUn19clPopbEMF9cT/XDYFw1z
OWusNnUWQvOxhtT57SDOKvFZgMzWTQ+SH8Aq5LjlZRf1ckkddp4s9VOcPg1z
DDt7w5O0OwFraem0jUmgndK8cC48DjEetLvQmyEaDRgkQdQLZkKGWEWaJKhf
LDymCzqJKcB0avW7QwoPtSaCDzYXS2AcnmsE4OiHg1aCzCeC96wnNdoCGHM2
3fj/SwD7BNVP77N1lQKWESuw3RpOsgRmYRM8e4wvoTBJBEEKc/7aNnRm6jWH
UG0etLUu0AYFnR1hjoF3rPeBKY5Ie/kJjKLRh5FSYziG8RG7sR89/mI8ke8s
Ctjf+AdHFPg1//HlV19HvwXvdXSQ0UfWYu71iz1vC52SBdT7kGm227KqjbXI
SZu1pk1iVDstDmsrJNOOwoguDi3xYR/LCd7s2tMTdDGIHpqksJA6w2h5beyC
XKLYXUd0pnsYxu+m/5MMgGn2QsxlNsLpjllVsgdhLmSBGg5tdOSxVVG2IXtI
bHCHFgSygX5KqirZebng5QG+cSlmHj1EJmAfK3DQ8XTftw+2r/w8NKYA2+oq
GOBvD24lNJkK6MGyid8ItH4pYpyV5rfyuSbsslRQDfrVULRHkTjZo+aB5JQb
0n8IaRxKkOpnMlDMMTVO9KQFZ920HiXXBDuFMaspW3TV90HlE3SNEmzaP9oo
RxmGvYVliTu8PSZrl61Ual/xkdHKPY8sHFsEnsojh5vwJBCMa+33YngDHaLo
cMigtuaOXHIfTSn1geqnhAMC5/vd2Ac1MW1XYpH4MYgi4p/CIvGj45K/n/Bw
gp40XiMJyuwoH3wTXvzomexTSfAX9eVtkOD/ibx230g9PBer3D43z0UO6awD
wm/AqsrmVbTE591ZK78e1j5Q9F8DP0Ne2hZqEQM97/pMopIZqe5g/aTjgSqC
J39lepeAEJwg3Tt/j0ADtIrFOn4/WWAcv+2GRG1J0Huyh2JgbUihK7Io9TJB
26O1syjH22WhRgnbsArO5gpqRE7FlcqpSmmXKzvjzO+JmeuvjM3Ao6hplpv4
R/E12QAu21wiWhdrvbgy+3aM+mGlSfZxrKYH+pToBbRxmRU02YWs3W7vUumq
KkV6RfMHGG7Vgs7GGS2I/zTsP8XQsjzfJYU5PJRRkBcZ9GYjGXkokPpFjCM6
1CCrEqxX9HIxZNoJHC67xh0sFbL0VVOeR0lZ7BSLN09wBHjCKBSopynJnSY+
wasChYePoUzcWQYP2cALe0BQbKebrOC9wOOTQC4W5AGhxOamnpbL6Zw4DwVl
JLK+o9A4595zMCCpYLuYhT8aDYvoxbos2dMPtIGuYVQKMKyOUrtsoXaLYGz6
YiN+8LC6Ku0G92LIc0COua2jpj26BB2GX60lZp+Z2avJ2ARPQXivpMnM7TQf
WeJnFOLJXtEi6/oM8luID6M4aJmIG1XZ6h58BCON6Ge5gAMzJHRtLbVsEMu/
H6DbGyPbLKU/zejh4M9pFHt5K7EX9cbt6W4iuW+wPlH89dePP7MoDr2HXrwG
ZyIWy0CQCcVqZGDeUaa2w+ldlw15FJwfAb+K7ORfKs5v8RLtm7gnV7vfP+Bo
iKqUPUiZeAJn297izs9AMJw9Mub2HJO/saMg0JY9tQhDeCKRfgmoeu7gbSCH
0/2hcApsIJO0KmPX0RlXv3IdCOuQHPvYw6RwbFQm0AgLQieYPyHR/naMfxrE
G+AYNtuay5b4XdY6etm1pLM5RQlTQljr45QDYBxFlIwjznpXH0HFLEUjOa7h
Win3Y0UpHOK51WzCoZcjKFY4nHSh5wQgh2cXoEpwWMdXYnXTIryGbB149DZF
/YOltemxEjKyMXlOovM1yMthuAdGM0cOFvjSNWW+BvaEXf+AwkaVRAkedpwT
HOQpOklOCTosPTcz9SozDiBR0BOVKR4S1aEF4kBUc4K6r27l2XOqFCuw5Njn
ZBoMFmywFohUHNaeXSI15vC8AiWmpKyQTwiPSSbIpiyyunRqiUss87kUrnwH
pnVVEgJY59uY8E9oyUpseVtSLYegJQY+pFYQlKQkr8XOAD5V+sQBhvVs0JcY
sY0+sh09ZcWsp/pdHUhpPOeDVqyO3QApHA7B7U4sCBHcZSENWgTp4LpCU9AK
mj7DZWYncyku4rUamFH85ObzOcrtAsTC6jWvGQ3EtOKiAOd66rETJTkCRhY1
xFW/UAYAWWKgzhhMMzDMwYU8Wtq3X4Ajmk9eAkqTvFxZxLLsyfXKgVmQEyVh
caKQD5F+U21BU3dDAWCJ8uPoZ7NNXZEzsPqu1FpS3WC4NZiT8nRYN6ONIi2i
cYlZmTQitX4Ytj84PNQK+6hjMigQwVmZGXQjeLejVcna2GaNCqKJ41pyz40V
DL111K3q6aB3ByUWWgHUY2sRwsiQiZ+s0iCMCv8KMldNWS32Jdzlioo3KDxM
4WubRSInEWRdXnK+gDbtpRItvEGscgJ2A3oOJUoxKHmwv/7lP02HVTLbY2dE
oMI59cHVTgHi5Q3HvKvWEbjoWHwWQS4gqATZtskdBjWFS01Nlc71tWO69mzi
PC7GGAxLiU1iTIPlI0OG9V3VNWtnxAunIES/a78bhcaHg4YoeCYVob0rcYvM
7j5Z4K3vIIVKvGk+FP63iTcKIGx6BMsjC5b+iCE1WNIVJf/anlpMXEFuvZQn
5jfJzlIPJS+0wco8zCUnu/QomxLsmXFgE3qgcDm1T3+J3AzOlStlfz4GEtik
QnDt1mc8vHctfPiA7dI+fpw4TBJnmmX1h6HcKAnZW2v1lcf5TlR/m8XRhnTI
5ct5zSVqw1LbKRDOpRV4LqUADZfH6AW0wywMuDflzFIWDwJkZdsZDeY2yQYr
PdVI9bLH3j5FLAlIM0WlwhVTV67EgZozyLzdHmqOBaHC7qtIpbiiU1eBoh69
nH7n/T2XnDMYiYTrvteB29/ywl7UpwR16cSgh0CEurYo1wQbwlvjk1EdQoAB
REsjkqMCd7DAp1T+LSYGpQIFETtLVi4FftKnGddSY0KFit0K8xn2MBB0kXOw
E0zYSsSmXrblCBUPULUHWDw40Pst1edPwgydubf35zvn3eeyBnHEuY5F/dTq
SNS6EwIKJQ8vJQnGNHrJDO2yh0qV66B1ydVUlxIoId8uBpXnSe7r9DGfm07A
Oamp3Aaz/LlzBCe2UZUtG0w3VBIg4s1TpahVSTXPgDSrDBPy0lTKbwhE+HkP
sWN+sJWVzsVjc8ajtKz9vj7zSyRji+HeQTjGnrm9TcFa2TUD/uY+00KMY0dF
waSfXywigH/0TPQtl+uSg2IAtAC6R7OWBZZ0GIlsAt0Akox+12RYlwfrPRQY
c4ERXOFA6hwTocNiK11bPgNUHs8scoSH09pi4hR53ifJpBsQvGumK2S+UqFV
5uK/aAonCo3Ol1Psf1G5+r6eYJeJw2Hmf1yUa/TFzKI5y4rYPiCRVyGLYvbL
bLwK0DBajSB+KzRLbv5AFeAQJ+sRR1HDrFCbGG7E46Q/WjZ7YpYHgwF7aanD
rCsTLZ5b6fhIE2gmUvzCiS++5KS0hqc1qLexfA4HD9lPOEOMwB0uBZLLiP+T
Ct/8HD4FzNaJoHayTOYVZ/fD+lYN8uum4PCjFavkFtRJNZHyV4oOsjfBsUXn
m3RmI1saYEwQEpAngxlDT3YrDwYkkubI15fIGLGztdkXemSG9bLsCKSQgLEQ
ULLPIlfDUvogwR9JvgPFg5jDKWYSU8Pjrk5IxS/0C/kP7ECsiKDW4xpOcM8f
opC3jGoLBp/tmUbhjNgbk/W1pInwnhx57XR378PruCQdNAX9epzmYcNTQStE
3Ltbk+QaIsk1JOrZ60uNukJ6964UNzM/RC1FqmsO+ZClTsrYFFTugCndtMoa
IqdU7x4n/M6wNKN+I8WK62vXUq9gC3mc66WNaRIdJnoJvV57VKTQ6zUJXF7S
KgYMyYTqPWqh6cgTZqnWZY9xqRr1wfKRbNs9YK53pWTyycn9Shhb9kkGhjMZ
rUObmJk7DdxRB/2cYGnHGIKqSyB8ILimIgrojIBpdaZlgyI510C5K5Q1TlpN
nBBCnj1dSU8Uu0CGLIhBMOO5KQLVXHHDL1sk4z2hiTOiYu/nJMKRpvDm+ADG
dXbUcssGfcM77FQyFGyKTZolq6I0hIrcWKFsgAubdVnimm3VgX8/IGeq7/KB
Ottu68X5+ZtAMfFOD/JKvnv3bnrsJTqQvDTl/OohmCdrnaRcbEMP0+IvHHcr
i0s4CJ2nUSNP542XaP68THdksJGutwvx1/fE5G05LslRKanP9z3V4O+pNE2i
Zko6R43FuHZOiM1RH8SB/l42+OXIzIanHAHwMfGxGef84f4VludNuVKedfAX
lgu/GipWzNppDG8EbQUx71blGIfavPZmTLnIaHmER1QMKcEq7FMmTpCUS3td
MePEx6aoO5j1vhNTbmrqE4jGI8glwr7TsHOZDE91iOqmyvpsRtE+uc4IaKNC
esARqVtC0FJjw6onlqdPGDkzzugFiZraeJ5zHLia99HohdSYttMItkY3aTld
lOlASoHIhLCFNJ4zc5hui3IPatAw2iTPKQPbHbxQjGIZatR32AnsgPMfVvCp
HfWfqPH4cGa2eQa/qfHh4SiQyz2vh5kG3Xcx2ZVLsaUTjIt/IqrZDxd1ecGC
+Dswr0YjUEtcGi3hSLwHvn7hnjpOXROLqaMVNzg+05lghpkaRXpAf1zIyxds
JxzyxC4/iBpDBHsPp7W+pJ83r50inpiSNPZNSp03ftaE+Kaf7J56Zt2QTH2B
1LKeXRL1Rrt+q2FvNNQgW/R5OFpip7ILS0NwkJbKL+wcF3aOg85qJ9R56rsx
DnsRDDs+HLmcaW4pg2OfSEcutmHbrRms0JakDOkEgAoLFRmmfpyogDRoDeN4
vVjaKC3kaoQ9/XOTonMHRemEbiBmIseVbesmUhc5v+Rs2W6VngOEub3SFmWg
pSCasJY3iqEfxm364ZUVQdse20qkX1KGW3ANfO3b1GrIDcV+U1fuGmRIWec5
w0sasX37BQYLSLwnWADCuVtceunqP3qjl2HFeKB6WhVaCsfFdRt09wvwAdaT
UdDMt6htoxo6EKnAFM/3x8CVMoSFIpbIkTvXLtJwY2MKrBY4N45rX+XzSugu
CfVOHPXivPJm2iR0/XBYAlSdcqnT0Nfsy1Y32Cw26vbADV1SCU12fDFD2a22
DYnowBIoD+zHPZEXfxuH9Waw3tKC4dmW2/iORq8SXAxKaesytu1d2llaciXL
MslNV3nBPqm7Ldb6xpYjUn+p0L5eMf5kg7Ec2bbtRBglWJNm5mv541hFEJrg
FsbkoffiZiJtsQWQ9hKIOGK1VL69h5PJtueCJ9DgFDJju3JRkU+bL5BL1ZpD
xLKGsomWnI12lzwi4unEstp5Qsy1GPZEA9i7uNJbvIeF+J1QsMs8Av6CxxlG
GdDrYdwtF2493B1bLOcBB07XOmKoWxV8g6Ttrdx+kg4jkoQ3rHN2CctaqztW
4KVTpCBQkC7nbWPb6MzZ/02d+9xf3XbKWr/wkClu2l1NTGicW19jx1Qm8zw8
avyzahCPCQsIQOSdle5PLnLmGiqdaYwzMFFQw4CWmxY7eVlX7RDr7BPFwTVF
4Vgi662kiiezpjt335FJXcfZ9DpDZRtfj0z/gTWh/3ubJwvxJuN6LKcXQxYE
V3WpDlo7PpFA7gl1GnirpTLCxd4O22zWWyOCMFngJWztcOEHp0XmJZx91pH0
YXelqpyTGIvYIPo9c1NOguYV7RG4k6Llfv45brhACYADHnkL8TvGD0Rvw+55
m2YTOPYjbz7KwniJE9snSc7RxkhFp6hEp7Dc9qduF1mXhhbl9mptC5Jo+jRY
Ee3dhkpzcQLLjQQ2lyfK3RGog+C/0clVHmGsTp2OyaT0MtlRmKt7RQFw836I
9uOutSsTQ002tIRnXP06mfzTXKbrsTd36Flmxg7KG4bnr8VTMcAoE+pSjQg7
B9ZQc94URrLLrI4swX5bXgyHgdFJ/nCcemKb9A/h3iQs3mFiaWI9lmFNlxZw
pMJ5SD8dygGl4qOIfjXehLhjb35erlbkz6vpCOpqF3arx4zgnH3c4joEBpUJ
o6X3pVWoE8zcXd/VunOAIQNOaEidIYMgcH/2AFrC+kIxc11oarxlK768MLb5
DADDBXaLmjA74ag4gMQrJy0mHVoMGTt60QFDeRGstOJVDySOkHlR7BWwp9BI
KAk2+jpJKr4cIlbcmP1jfIk4hcNXSTdhKWKZPGkcLkJB108E9fWt80xxQbkQ
4VPJzrCONfSSZdzesI0a5UBMIfRmxSGFYfHnXL9Dqd9cXiZGCnX2vME8EJts
TlgzU6+wb5JzyAYpeLbvJSrTrEh0s8XAwChdjY8teKHcD9wqnMa2VlHqsNiD
G25MiVIRO9OZQC20uS5UP8plWx4khEgWI6PUksZYhcML7llAqfSQUJdfksBw
D49CTu3bH9GRwFExGgYpQMorxZFSLsm77PMFuJCeDTjzqqMQ4m0ug/4Kcf0F
aiQTBnwRVO1PyAUpmZKdFkTdnJchoRuxAdsdbggTB8pDXbslXw0aaBiuXqOV
lNrvto3wuO7p4d9vt/osA4dIQdaDj+QF6BXYeYElweHvJ3lJ/px9ZyT3OrGX
gTK9YHWddkpha5zYDryJ3OvOiJPSF0rwsSp44HAWG46IgvwG2AaZXFB4mQuJ
llaFEYpHewUA1t3eZCnrwNKFf0jmxmeAlwSgC8XntfmsDWEePtbax4dhT7hR
rIspXJLsMD0SdDzbR2fMGxE6d3P7LeiWkGtNPdetNOo6rFzSLUVwKLYmcjW8
fEtyi62YIokMJ5GHXXsdPhA2sbnFzBFdF1SqVXDUlc/ahvIIWHC8V4NnESWL
WtHrz6QJeusFjUv5KLZ8BQFu3l3t5LKsc7HSnkcL3AfRsBJo7nvGBTt0jpnS
3T/XyfPprVu/C4OKsDKARMQh6JRuyRR01/92STIGZGXzCKlii3qtuI7D7Jzt
XXkZYvmg5hrhuCh/3NE8uC8sq4Ik2IX42khrphzeqTX68J7nK9erfGprYcMS
gDcW8Wgqm70Bh3BqK/RHQ4ePGN4UrUt9RNl0+MzYKJFQR1m0Wu7WaZrNVvwb
RH1Wd0WasKawVM6V+QBou0jBGmFwRQejh9NWqYrWb9a1I5C28IOpeAEOoFJk
kZ1uoWmKG2xKVNRiAcb7oii/b+xehdvbI/iw8Tc1QG7sQA6XPQ+7C1ZLQMEG
Wm/DYFFTPL8O/IPhGm9l7uLPvoW3t+/eRi+VuUUsdKIlaD1Y0nE9PJybSNJW
mKTQLUfYaS0NKXMdtFKsyn8HFcUS6h7UIVVQ2dtlbUCFW4XW9oaNIAkcA51S
IOIuxApSyy3bC5SWp3gkz2Rn+yj4DgKxR/qJL70K6lXabjO6IL6XDEOAR6zV
I+utDPalTXkjK7csdoB6t+AIi3/OxV+zTCbuVDgU4Q5U7so8UjGoZW5PrKc/
p1jKVXe9iUyB90iz90Mc9wm1E4yb89LNFHgN8t55xmG8Sp71XSnGalWVzVZo
yg1N3ejFumVVlft+h/fIWc4W14O3lxHdt9yTwDLCG6GfHYVN9KXVrItVt4ck
qWJ0mINtk+K8N9c6GUOQeaEW9xxQ59jwBmYHKsBkE9/lvsD/UmqNCGXKO2xh
EDZaxetlOy3Uj89OTk87LdNtDyuJJoZXZHIUnxJ2W3M89YlKR+oJENOS84im
gCMpyfUglanVgh1nwCF/oF7duZRbH1GWt/0Lu3tyW4GelMEgr4Rzw/EKFaI8
+zozrXGrvnRMBzKOy2nHuJQTDt6e2ItAKl4Nt++RdCuawPJoH+WwsDp9dvYb
LgCLKOipbZlIFyMTZH54+xLR6u3zE3HK2na5Ubak3GwV3ToguHIqd75bkmJ/
PJUl3MPf8dQG8YLP9JYTfdF3P6G7zIgQJr5Gzx3nS3ecHej3wxnhtgdqWKAQ
5p11WnS7TqmuD59AgZvYDcNBmtzdBgm5Cs/ej4eWMN5WXKTbMuvfdwu/Jn93
SPjGJ8PQCJuj7IfI90n7zjRVNUUhZd6JBZSQhdwFSHdjA0u4qsst/nF4B8D9
f4aStE8cBpHtr3gLfN7F97/1tUuyF7L9w8Eg6Bs5DIewueQtsPhhz7V1/6MA
I8l1w0CxGX63EY+7Y691cVX75ry7wODvz1lsvscwXHyDsv2AOd57odzxqeAP
r+wfHji2VYFYCXFLmPPwYa9it3Nj6qibV2BvoN5MrZOR04RX/Yydpngkd/gN
tLifBi35jzqtstzP0QEJeIetlZ8N3Rig059uaik9HMK7/rbyrU2Fqbz9O7Lo
weGsUNP5B9jkLU2HY4wioyJzlevWDpIkshiRqKrAIxIbYHsnG0ctztsoxhvr
6Vl8SR027IL5VAYfDh+NDumXtQ+Xq4tyGyzc1zp8wA64w9lG2QVTbh3rS2YH
zvcubZN/6TG3TvkuU97KQ5jQaIDW4fbykfjB6Gj3OD5cM0bem8+8/NlnJBmI
Ux5mGjLbW49qb0fNz0yJ++YaR80273BOg+fyiefwC2HP5eRRme3U1jBNfQn/
3dh9sK8Wi//ETZkh9v932ed0OiWVkAoapKaGVRzAjx/lCtTnfIMtcDi8IuQk
oSYP5xFS9Tb8NP5GEG510nFhtRp/2jtXg3tIYY1/ogWoB2529an/+1O7l5n7
vt0KDL+ECae/7H9qYITe72nCWBKeYIkTbfoAla1jMFxv3aG7E7z9PTpeWl/u
m/DszfFtk8nA4Z3hv2DCV2yq37bJP0WXqd9hh3LkJ8HtsTzhEzGBztjkGZr1
T/7O8tu/xwn5bvrWRgWoG7xt8/xH8kF8th2iRwjdrJgWXWlUJ0jbsBlxQ/OE
A7PX5PIO39MZKrllXtVJfiUJNHgVxQ124dTJhq4WLu3d2VN/d3YbdCrC1sEd
upSt16Qgv0mMuSnxFqDOoWIBymLXhu0nk8XZ4zP1+slrYXniTBJEAX3CrG+h
jU9GGr7jPLiTMauxFsVO/Q5bKdDNrPOyNj2TByD1Nz/y9+6uOzczTeguMZY5
y56rzmV2LMWlRAMurUqwJWEw8GVrIQOEH1w9aT12fLuf98vdAlJPFsEmBybE
Mjdr5L7IME9nR9pUWiXLevrwIQpy68mm76jL6gLzsnKdrrjPzoejotnMMYf3
uzFVwYw/ssRjnduoGwpncn+okvIsr1pq1laXW++5zzhnljo0uhoFLJrVN8bJ
5bgfkjpOqywBDlLpbAJQLBL1JKnWTZrg1xP1FP6bqDMg9Zqyb55tsOnTy6SB
dc9G/w8mLnGqKp8AAA==

-->

</rfc>
