<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.7) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-kavian-aep-oauth-session-credential-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="AEP OAuth">OAuth Bearer Session Credential Grant Type for the Agent Enrollment Protocol</title>

    <author initials="N." surname="Kavian" fullname="N. Kavian">
      <organization>Jarwin, Inc. (InFlow)</organization>
      <address>
        <email>nas@inflowpay.ai</email>
      </address>
    </author>

    <date year="2026" month="September" day="04"/>

    
    
    

    <abstract>


<?line 41?>

<t>This document defines the OAuth Bearer session-credential grant type for the Agent Enrollment Protocol (AEP).  The grant type lets an AEP Service issue an OAuth-style Bearer access token through the AEP Grant command while preserving baseline AEP client assertion authentication as the root of trust.</t>



    </abstract>



  </front>

  <middle>


<?line 45?>

<section anchor="introduction"><name>Introduction</name>

<t>The Agent Enrollment Protocol (AEP) defines Grant and Revoke commands for optional session credentials <xref target="AEP-CORE"/>.  Session credentials are an optimization for deployments that want to reuse existing authentication middleware after an Agent has proven possession of its AEP identity key.</t>

<t>This document defines the <spanx style="verb">oauth-bearer</spanx> grant type.  The grant type issues an OAuth Bearer access token <xref target="RFC6750"/> through the AEP Grant command.  Grant type request and response bodies are JSON objects <xref target="RFC8259"/> carried over HTTP semantics <xref target="RFC9110"/> as defined by AEP.  This grant type does not redefine OAuth authorization grants, refresh tokens, token introspection, or token revocation.  When a Service exposes standard OAuth token introspection <xref target="RFC7662"/> or revocation <xref target="RFC7009"/> endpoints, it advertises those endpoints as grant type configuration.</t>

</section>
<section anchor="requirements-language"><name>Requirements Language</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

</section>
<section anchor="grant-type"><name>Grant Type</name>

<t>The grant type identifier is:</t>

<figure><sourcecode type="text"><![CDATA[
oauth-bearer
]]></sourcecode></figure>

<t>A Service that enables this grant type lists <spanx style="verb">oauth-bearer</spanx> in <spanx style="verb">commands.grant_types</spanx> and lists <spanx style="verb">grant</spanx> and <spanx style="verb">revoke</spanx> in <spanx style="verb">commands.supported</spanx> in its AEP Inspect document.</t>

</section>
<section anchor="inspect-configuration"><name>Inspect Configuration</name>

<t>A Service <bcp14>MAY</bcp14> publish configuration under <spanx style="verb">commands.grant_types_config.oauth-bearer</spanx>:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "commands": {
    "grant_types": ["oauth-bearer"],
    "grant_types_config": {
      "oauth-bearer": {
        "access_token_formats": ["opaque"],
        "default_lifetime_seconds": "900",
        "introspection_endpoint": "https://api.example.com/i",
        "revocation_endpoint": "https://api.example.com/r",
        "scopes_supported": ["read", "write"],
        "supports_per_credential_revoke": "true"
      }
    },
    "supported": ["enroll", "grant", "inspect", "revoke", "status"]
  }
}
]]></sourcecode></figure>

<t><spanx style="verb">access_token_formats</spanx> is an array of strings.  This document defines <spanx style="verb">opaque</spanx> and <spanx style="verb">jwt</spanx> as descriptive values.  Agents <bcp14>MUST</bcp14> treat returned access tokens as opaque regardless of the advertised format.</t>

<t><spanx style="verb">default_lifetime_seconds</spanx> is an AEP-owned numeric value and is therefore represented as a JSON string.</t>

<t><spanx style="verb">introspection_endpoint</spanx> and <spanx style="verb">revocation_endpoint</spanx>, when present, are HTTPS URLs for standard OAuth operational tooling.  AEP-aware Agents use AEP Revoke for AEP-issued session credentials.</t>

<t><spanx style="verb">scopes_supported</spanx>, when present, lists Service-defined scope strings an Agent can request.</t>

<t><spanx style="verb">supports_per_credential_revoke</spanx> is a string boolean.  If absent, the default is <spanx style="verb">"false"</spanx>.  Every successful Grant response includes <spanx style="verb">credential_id</spanx>.  When this value is <spanx style="verb">"true"</spanx>, the Service <bcp14>MUST</bcp14> support a Revoke request containing both <spanx style="verb">grant_type</spanx> and that <spanx style="verb">credential_id</spanx>.  When this value is <spanx style="verb">"false"</spanx> or absent, the Agent <bcp14>MUST</bcp14> use grant-type or all-grant-types Revoke instead.</t>

</section>
<section anchor="grant-request"><name>Grant Request</name>

<t>The Agent invokes AEP Grant using baseline <spanx style="verb">Authorization: AEP &lt;jwt&gt;</spanx> authentication with <spanx style="verb">op</spanx> equal to <spanx style="verb">grant</spanx>.</t>

<figure><sourcecode type="json"><![CDATA[
{
  "grant_type": "oauth-bearer",
  "requested_scopes": ["read"],
  "token_format": "opaque"
}
]]></sourcecode></figure>

<t><spanx style="verb">grant_type</spanx> <bcp14>MUST</bcp14> be <spanx style="verb">oauth-bearer</spanx>.</t>

<t><spanx style="verb">requested_scopes</spanx> is <bcp14>OPTIONAL</bcp14>.  A Service <bcp14>MAY</bcp14> grant fewer scopes than requested.  Unsupported requested scopes <bcp14>MAY</bcp14> be omitted from the response <spanx style="verb">scopes</spanx> array.  If the Service cannot issue a useful credential for the requested scopes, it <bcp14>MUST</bcp14> return <spanx style="verb">invalid_request</spanx>.</t>

<t><spanx style="verb">token_format</spanx> is <bcp14>OPTIONAL</bcp14>.  The values defined by this document are <spanx style="verb">opaque</spanx> and <spanx style="verb">jwt</spanx>.  A Service <bcp14>MAY</bcp14> ignore this preference.</t>

</section>
<section anchor="grant-response"><name>Grant Response</name>

<t>A successful Grant response is a JSON object:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "access_token": "ya29.example",
  "credential_id": "tok_01HZY8W7Q2F8J7D3P9G9Z1N6TT",
  "expires_at": "2026-12-01T00:00:00Z",
  "scopes": ["read"],
  "token_format": "opaque",
  "token_type": "Bearer"
}
]]></sourcecode></figure>

<t><spanx style="verb">access_token</spanx> is <bcp14>REQUIRED</bcp14> and contains the Bearer token value.</t>

<t><spanx style="verb">token_type</spanx> is <bcp14>REQUIRED</bcp14> and <bcp14>MUST</bcp14> be <spanx style="verb">Bearer</spanx>.</t>

<t><spanx style="verb">expires_at</spanx> is <bcp14>REQUIRED</bcp14> and is an RFC 3339 <xref target="RFC3339"/> timestamp for credential expiry.</t>

<t><spanx style="verb">scopes</spanx> is <bcp14>OPTIONAL</bcp14> and contains the granted scope strings when present.  A missing or <spanx style="verb">null</spanx> value means the token has no scope-limited authorization.  The Service <bcp14>MAY</bcp14> return an empty array with the same meaning.</t>

<t><spanx style="verb">token_format</spanx>, when present, describes the Service-selected format.</t>

<t><spanx style="verb">credential_id</spanx> is <bcp14>REQUIRED</bcp14> and is a stable Service-issued identifier for the issued OAuth Bearer credential. It follows the Service-wide uniqueness and non-reassignment requirements in the Core Grant command. It is not the access token and is not used for credential presentation. The Agent stores it with the credential and sends it only when targeting that credential in a Revoke request supported by the Service.</t>

<t>This document does not define refresh tokens.  Agents renew by invoking AEP Grant again with a fresh baseline client assertion.</t>

</section>
<section anchor="credential-presentation"><name>Credential Presentation</name>

<t>On later HTTP requests, the Agent presents the token using the Bearer authentication scheme:</t>

<figure><sourcecode type="http-message"><![CDATA[
Authorization: Bearer ya29.example
]]></sourcecode></figure>

<t>On protected resources, the Agent <bcp14>MAY</bcp14> instead use the dedicated AEP carrier while preserving the Bearer field value:</t>

<figure><sourcecode type="http-message"><![CDATA[
AEP-Authorization: Bearer ya29.example
]]></sourcecode></figure>

<t>Services implementing this grant type <bcp14>MUST</bcp14> accept both carriers on protected resources. Agents <bcp14>MUST</bcp14> use only one AEP carrier per request, and the ambiguity and precedence rules are defined by AEP core.</t>

<t>Authenticated AEP command endpoints <bcp14>MUST</bcp14> continue to accept baseline AEP authentication.</t>

</section>
<section anchor="revoke"><name>Revoke</name>

<t>The Agent invokes AEP Revoke using baseline <spanx style="verb">Authorization: AEP &lt;jwt&gt;</spanx> authentication with <spanx style="verb">op</spanx> equal to <spanx style="verb">revoke</spanx>.</t>

<t>To revoke all OAuth Bearer session credentials of this type for the authenticated Agent:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "grant_type": "oauth-bearer"
}
]]></sourcecode></figure>

<t>When the Service advertises per-credential Revoke, the Agent can revoke one OAuth Bearer credential:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "credential_id": "tok_01HZY8W7Q2F8J7D3P9G9Z1N6TT",
  "grant_type": "oauth-bearer"
}
]]></sourcecode></figure>

<t>Revoke returns an empty JSON object on success.  The Service <bcp14>MUST</bcp14> return success regardless of whether a matching token existed.</t>

<t>To revoke all session credentials of every grant type, Agents use the core <spanx style="verb">all_grant_types</spanx> Revoke request.</t>

</section>
<section anchor="error-handling"><name>Error Handling</name>

<t>This grant type uses the AEP error vocabulary defined by the core protocol.  A token that is expired, malformed, revoked, unknown, or bound to a different Agent fails as <spanx style="verb">not_recognized</spanx>.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document requests registration of <spanx style="verb">oauth-bearer</spanx> in the AEP Grant Types registry.</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Value</ttcol>
      <c>Grant Type</c>
      <c><spanx style="verb">oauth-bearer</spanx></c>
      <c>Description</c>
      <c>OAuth Bearer access token issued through AEP Grant</c>
      <c>Reference</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>Bearer tokens are usable by any party that presents them.  Services <bcp14>SHOULD</bcp14> issue short-lived tokens.  Services <bcp14>MUST NOT</bcp14> log raw access token values, and Services <bcp14>MUST</bcp14> support AEP Revoke for every advertised grant type.  Agents that suspect token disclosure <bcp14>SHOULD</bcp14> call AEP Revoke using baseline AEP authentication and then fall back to per-request signed client assertions until a new token is issued.</t>

<t>Services <bcp14>MUST</bcp14> bind issued tokens to the authenticated AEP Agent identity.  JWT access tokens <bcp14>SHOULD</bcp14> include an audience identifying the issuing Service.  Services <bcp14>MUST</bcp14> reject tokens whose audience does not identify the receiving Service.</t>

</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>Bearer tokens can become correlation handles if reused outside the issuing Service.  Agents <bcp14>MUST NOT</bcp14> present AEP-issued Bearer tokens to other Services.  Services <bcp14>MUST NOT</bcp14> log raw access token values in ordinary logs or telemetry.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC3339">
  <front>
    <title>Date and Time on the Internet: Timestamps</title>
    <author fullname="G. Klyne" initials="G." surname="Klyne"/>
    <author fullname="C. Newman" initials="C." surname="Newman"/>
    <date month="July" year="2002"/>
    <abstract>
      <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3339"/>
  <seriesInfo name="DOI" value="10.17487/RFC3339"/>
</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="RFC8259">
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="December" year="2017"/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="90"/>
  <seriesInfo name="RFC" value="8259"/>
  <seriesInfo name="DOI" value="10.17487/RFC8259"/>
</reference>
<reference anchor="RFC9110">
  <front>
    <title>HTTP Semantics</title>
    <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
    <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
    <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
    <date month="June" year="2022"/>
    <abstract>
      <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
      <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="97"/>
  <seriesInfo name="RFC" value="9110"/>
  <seriesInfo name="DOI" value="10.17487/RFC9110"/>
</reference>

<reference anchor="AEP-CORE" target="https://datatracker.ietf.org/doc/draft-kavian-agent-enrollment-protocol/">
  <front>
    <title>The Agent Enrollment Protocol</title>
    <author initials="N." surname="Kavian" fullname="N. Kavian">
      <organization></organization>
    </author>
    <date year="2026" month="August" day="27"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-kavian-agent-enrollment-protocol-04"/>
</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 title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC7009">
  <front>
    <title>OAuth 2.0 Token Revocation</title>
    <author fullname="T. Lodderstedt" initials="T." role="editor" surname="Lodderstedt"/>
    <author fullname="S. Dronia" initials="S." surname="Dronia"/>
    <author fullname="M. Scurtescu" initials="M." surname="Scurtescu"/>
    <date month="August" year="2013"/>
    <abstract>
      <t>This document proposes an additional endpoint for OAuth authorization servers, which allows clients to notify the authorization server that a previously obtained refresh or access token is no longer needed. This allows the authorization server to clean up security credentials. A revocation request will invalidate the actual token and, if applicable, other tokens based on the same authorization grant.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7009"/>
  <seriesInfo name="DOI" value="10.17487/RFC7009"/>
</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>



    </references>

</references>



  </back>

<!-- ##markdown-source:
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
m+sSIR72OfrsqrAUJOD7L07APMmlJAAA

-->

</rfc>

