<?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-agent-enrollment-protocol-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="AEP">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="June" day="28"/>

    
    
    

    <abstract>


<?line 41?>

<t>The Agent Enrollment Protocol (AEP) defines an HTTP-based mechanism for autonomous agents to discover service enrollment requirements, enroll an agent identity, obtain optional session credentials, revoke those credentials, and query enrollment status. AEP uses Decentralized Identifiers, client assertion JWTs, and HTTP Problem Details to provide a narrow machine-first enrollment and authentication substrate for agent-to-service interactions.</t>



    </abstract>



  </front>

  <middle>


<?line 45?>

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

<t>Autonomous agents increasingly interact with internet services without a human directly completing registration forms, email confirmations, password setup, or dashboard-based API-key provisioning. Existing HTTP authentication mechanisms can authenticate an already-provisioned client, but they do not define a machine-first enrollment flow by which an autonomous agent discovers a service's requirements, presents a cryptographic identity, and becomes recognized by that service.</t>

<t>The Agent Enrollment Protocol (AEP) defines that enrollment substrate. AEP lets an Agent discover what a Service requires, enroll a supported identity method, authenticate AEP commands with a per-request client assertion JWT, optionally obtain a session credential, revoke issued session credentials, and query enrollment status.</t>

<t>AEP is deliberately narrow. It does not define payment settlement, checkout semantics, action authorization, KYC execution, or legal policy. Those functions can compose above or beside AEP. This document defines only the minimum HTTP protocol needed for interoperable Agent enrollment and session-credential bootstrapping.</t>

<t>This document's scope is limited to the HTTP binding for Inspect, Enroll, Grant, Revoke, and Status. Update, Rotate, Decommission, non-HTTP transports, concrete session-credential formats, policy disclosures, KYA, ZK proofs, and other extensions are out of scope for this document.</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="terminology"><name>Terminology</name>

<dl>
  <dt>Agent:</dt>
  <dd>
    <t>Software acting autonomously. An Agent holds or controls a cryptographic key and initiates AEP requests.</t>
  </dd>
  <dt>Service:</dt>
  <dd>
    <t>The HTTP server that receives AEP requests and decides whether to enroll or recognize an Agent.</t>
  </dd>
  <dt>Owner:</dt>
  <dd>
    <t>The human or organization that owns or controls an Agent. Owner details are represented as claims when a Service requires them.</t>
  </dd>
  <dt>Platform:</dt>
  <dd>
    <t>An optional operator that hosts Agent identity material or signing infrastructure. A Platform is not required by AEP.</t>
  </dd>
  <dt>Verifier:</dt>
  <dd>
    <t>A party that verifies claims about an Agent or Owner and may issue attestations referenced by the Agent. This document does not define attestation formats.</t>
  </dd>
  <dt>Inspect document:</dt>
  <dd>
    <t>The JSON discovery document published by a Service at <spanx style="verb">/.well-known/aep</spanx>. It advertises AEP version, supported commands, accepted identity methods, requested claims, endpoint configuration, and extension support.</t>
  </dd>
  <dt>Client assertion:</dt>
  <dd>
    <t>A JWT signed by the Agent's private key and presented on authenticated AEP commands. The assertion binds the Agent identity, Service identity, command name, issuance time, expiration time, and replay identifier.</t>
  </dd>
  <dt>Session credential:</dt>
  <dd>
    <t>A stateful credential issued by the Grant command and presented on later requests according to a separate session-credential specification.</t>
  </dd>
  <dt>Grant type:</dt>
  <dd>
    <t>A string identifier for a concrete session-credential format supported by the Service, such as an OAuth Bearer, API-key, or Basic credential specification.</t>
  </dd>
</dl>

</section>
<section anchor="protocol-overview"><name>Protocol Overview</name>

<t>The baseline AEP flow is:</t>

<t><list style="numbers" type="1">
  <t>The Agent fetches the Service's Inspect document.</t>
  <t>The Agent evaluates whether it can satisfy the Service's identity-method and claim requirements.</t>
  <t>The Agent constructs a client assertion JWT with <spanx style="verb">aud</spanx> equal to the Service DID and <spanx style="verb">op</spanx> equal to the command being invoked.</t>
  <t>The Agent invokes Enroll.</t>
  <t>The Agent calls Status when enrollment is pending or when it needs current state.</t>
  <t>The Agent may call Grant for a supported session-credential type.</t>
  <t>The Agent may call Revoke to invalidate issued session credentials.</t>
</list></t>

<t>Inspect is unauthenticated. Enroll, Grant, Revoke, and Status are authenticated with the baseline <spanx style="verb">Authorization: AEP &lt;jwt&gt;</spanx> form. Session credentials, once issued, <bcp14>MAY</bcp14> be used on commands that allow the selected credential type; Grant and Revoke themselves always use the baseline client assertion.</t>

</section>
<section anchor="http-binding"><name>HTTP Binding</name>

<t>This document defines an HTTP binding using HTTP semantics <xref target="RFC9110"/> over HTTP/1.1 <xref target="RFC9112"/>, HTTP/2 <xref target="RFC9113"/>, or HTTP/3 <xref target="RFC9114"/>. Network use of this binding requires TLS 1.3 or later <xref target="RFC8446"/>. Plaintext HTTP is out of scope.</t>

<t>The binding uses only <spanx style="verb">GET</spanx> and <spanx style="verb">POST</spanx>:</t>

<texttable>
      <ttcol align='left'>Command</ttcol>
      <ttcol align='left'>Method</ttcol>
      <ttcol align='left'>Endpoint</ttcol>
      <c>Inspect</c>
      <c><spanx style="verb">GET</spanx></c>
      <c><spanx style="verb">/.well-known/aep</spanx></c>
      <c>Enroll</c>
      <c><spanx style="verb">POST</spanx></c>
      <c><spanx style="verb">enroll</spanx> relative to <spanx style="verb">endpoint_base</spanx></c>
      <c>Status</c>
      <c><spanx style="verb">GET</spanx></c>
      <c><spanx style="verb">status</spanx> relative to <spanx style="verb">endpoint_base</spanx></c>
      <c>Grant</c>
      <c><spanx style="verb">POST</spanx></c>
      <c><spanx style="verb">grant</spanx> relative to <spanx style="verb">endpoint_base</spanx></c>
      <c>Revoke</c>
      <c><spanx style="verb">POST</spanx></c>
      <c><spanx style="verb">revoke</spanx> relative to <spanx style="verb">endpoint_base</spanx></c>
</texttable>

<t>The <spanx style="verb">endpoint_base</spanx> value is published in the Inspect document under <spanx style="verb">http.endpoint_base</spanx>. If omitted, Agents <bcp14>MUST</bcp14> use <spanx style="verb">/aep/</spanx>. Agents construct command URLs by appending the command's relative path to <spanx style="verb">endpoint_base</spanx> with exactly one <spanx style="verb">/</spanx> separator, regardless of whether <spanx style="verb">endpoint_base</spanx> includes a trailing slash. For example, both <spanx style="verb">/aep</spanx> and <spanx style="verb">/aep/</spanx> produce <spanx style="verb">/aep/enroll</spanx> for Enroll.</t>

<t>Requests and successful responses that carry AEP JSON payloads use <spanx style="verb">application/aep+json</spanx>, which uses the <spanx style="verb">+json</spanx> structured syntax suffix <xref target="RFC6839"/>. Error responses use <spanx style="verb">application/problem+json</spanx>.</t>

<t>Authenticated commands carry a baseline client assertion as:</t>

<figure><sourcecode type="http-message"><![CDATA[
Authorization: AEP <jwt>
]]></sourcecode></figure>

<t>When a session credential is used on a command that allows it, the credential presentation form is defined by the concrete session-credential document.</t>

</section>
<section anchor="discovery-and-inspect"><name>Discovery and Inspect</name>

<t>The Inspect document is available at the well-known URI path defined for AEP <xref target="RFC8615"/>:</t>

<figure><sourcecode type="http-message"><![CDATA[
GET /.well-known/aep HTTP/1.1
Host: example.com
Accept: application/aep+json
]]></sourcecode></figure>

<t>The response body is a JSON object <xref target="RFC8259"/>. AEP-owned numeric protocol values are represented as JSON strings. Field names use <spanx style="verb">lower_snake_case</spanx>.</t>

<t>Claim names use dotted lowercase tokens:</t>

<figure><sourcecode type="abnf"><![CDATA[
claim-name = claim-token *("." claim-token)
claim-token = LCALPHA *(LCALPHA / DIGIT / "_")
LCALPHA = %x61-7A
]]></sourcecode></figure>

<t>The <spanx style="verb">LCALPHA</spanx> rule is defined here. The <spanx style="verb">DIGIT</spanx> rule is defined by RFC 5234 <xref target="RFC5234"/>.</t>

<t>The Inspect document shown here contains only the fields required for the HTTP binding, Inspect, Enroll, Grant, Revoke, Status, and an example identity method:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "aep_version": "1.0",
  "bindings": {
    "supported": ["http"]
  },
  "claims": {
    "optional": [],
    "preferred": [],
    "required": ["contact.email"]
  },
  "commands": {
    "grant_types": ["oauth-bearer"],
    "supported": ["enroll", "grant", "inspect", "revoke", "status"]
  },
  "core": {
    "signing_algorithms": ["EdDSA", "ES256"]
  },
  "extensions": {
    "supported": []
  },
  "http": {
    "endpoint_base": "/aep/"
  },
  "identity": {
    "methods": ["did:web"]
  },
  "service": {
    "did": "did:web:api.example.com"
  }
}
]]></sourcecode></figure>

<t><spanx style="verb">commands.supported</spanx> lists commands the Service exposes. Agents <bcp14>MUST NOT</bcp14> invoke commands absent from this list.</t>

<t><spanx style="verb">commands.grant_types</spanx> lists concrete session-credential formats the Service can issue and revoke. If this array is empty or absent, the Service <bcp14>MUST NOT</bcp14> list <spanx style="verb">grant</spanx> or <spanx style="verb">revoke</spanx> in <spanx style="verb">commands.supported</spanx>.</t>

<t><spanx style="verb">identity.methods</spanx> lists identity method identifiers the Service accepts for authenticated AEP commands. The values are lower-case identifiers registered in the AEP Identity Methods registry. A Service that advertises Enroll, Grant, Revoke, or Status <bcp14>MUST</bcp14> advertise at least one identity method.</t>

<t><spanx style="verb">service.did</spanx> identifies the Service. Agents use this value as the <spanx style="verb">aud</spanx> claim in client assertion JWTs.</t>

<t>Services <bcp14>SHOULD</bcp14> send HTTP cache metadata, including <spanx style="verb">Cache-Control</spanx> and <spanx style="verb">ETag</spanx>, on Inspect responses. A default freshness lifetime of 300 seconds is <bcp14>RECOMMENDED</bcp14> when the Service does not need a shorter policy window.</t>

</section>
<section anchor="identity-methods"><name>Identity Methods</name>

<t>Authenticated AEP commands require an Agent identity method that can bind a stable Agent identifier to verification material for the client assertion signature.</t>

<t>This document defines the identity-method substrate but does not define a concrete identity method. Concrete identity method documents define:</t>

<t><list style="numbers" type="1">
  <t>The identity method identifier used in <spanx style="verb">identity.methods</spanx>.</t>
  <t>The Agent identifier syntax.</t>
  <t>How a Service resolves or otherwise obtains verification material for the Agent identifier.</t>
  <t>How the JWT <spanx style="verb">kid</spanx> header identifies the verification method.</t>
  <t>Any caching, rotation, revocation, or trust-anchor requirements.</t>
  <t>Security and privacy considerations specific to that identity method.</t>
</list></t>

<t>A Service enables the identity methods it accepts and advertises only those identifiers in <spanx style="verb">identity.methods</spanx>. A Service that advertises no identity methods <bcp14>MUST NOT</bcp14> advertise authenticated commands.</t>

<t>For example, a Service that enables the separately specified <spanx style="verb">did:web</spanx> identity method advertises:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "identity": {
    "methods": ["did:web"]
  }
}
]]></sourcecode></figure>

<t>If the Agent presents an identity method not listed in the Service's <spanx style="verb">identity.methods</spanx> array, the Service <bcp14>MUST</bcp14> reject the request as <spanx style="verb">not_recognized</spanx>.</t>

</section>
<section anchor="aep-http-authentication-scheme"><name>AEP HTTP Authentication Scheme</name>

<t>The AEP HTTP authentication scheme uses the <spanx style="verb">AEP</spanx> auth-scheme value. The rules <spanx style="verb">ALPHA</spanx>, <spanx style="verb">DIGIT</spanx>, <spanx style="verb">DQUOTE</spanx>, and <spanx style="verb">SP</spanx> are defined by RFC 5234 <xref target="RFC5234"/>. The rules <spanx style="verb">auth-param</spanx>, <spanx style="verb">BWS</spanx>, and <spanx style="verb">OWS</spanx> are defined by HTTP semantics <xref target="RFC9110"/>.</t>

<figure><sourcecode type="abnf"><![CDATA[
AEP-credentials = "AEP" 1*SP compact-jws
compact-jws     = base64url "." base64url "." base64url
base64url       = 1*( ALPHA / DIGIT / "-" / "_" )

AEP-challenge        = "AEP" [ 1*SP AEP-challenge-param
                       *( OWS "," OWS AEP-challenge-param ) ]
AEP-challenge-param  = reason-param / auth-param
reason-param         = "reason" BWS "=" BWS DQUOTE error-code DQUOTE
error-code           = lc-token *( "_" lc-token )
lc-token             = LCALPHA *( LCALPHA / DIGIT )
]]></sourcecode></figure>

<t>The <spanx style="verb">AEP-credentials</spanx> form is used in the <spanx style="verb">Authorization</spanx> header field. The <spanx style="verb">AEP-challenge</spanx> form is used in the <spanx style="verb">WWW-Authenticate</spanx> header field. The <spanx style="verb">reason</spanx> parameter, when present, carries an AEP error code.</t>

</section>
<section anchor="client-assertion-jwt"><name>Client Assertion JWT</name>

<t>Enroll, Grant, Revoke, and Status use a signed client assertion JWT for Agent authentication. Inspect is unauthenticated and does not use a client assertion.</t>

<t>The client assertion JWT is carried as:</t>

<figure><sourcecode type="http-message"><![CDATA[
Authorization: AEP <jwt>
]]></sourcecode></figure>

<t>The JWT is a JWS compact serialization <xref target="RFC7515"/> consisting of a JOSE header, JWT claims set <xref target="RFC7519"/>, and signature.</t>

<t>The JOSE header <bcp14>MUST</bcp14> contain:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "alg": "EdDSA",
  "typ": "JWT",
  "kid": "did:web:agent.example.com:agents:123#key-1"
}
]]></sourcecode></figure>

<t><spanx style="verb">alg</spanx> identifies the signing algorithm. Services supporting this document <bcp14>MUST</bcp14> support <spanx style="verb">EdDSA</spanx> <xref target="RFC8037"/> and <spanx style="verb">ES256</spanx> <xref target="RFC7518"/> and advertise accepted algorithms in <spanx style="verb">core.signing_algorithms</spanx>. Agents <bcp14>MUST</bcp14> select an algorithm advertised by the Service. The <spanx style="verb">none</spanx> algorithm and symmetric JOSE algorithms <bcp14>MUST NOT</bcp14> be used for Agent identity assertions.</t>

<t><spanx style="verb">typ</spanx> <bcp14>MUST</bcp14> be <spanx style="verb">JWT</spanx>.</t>

<t><spanx style="verb">kid</spanx> identifies the Agent's DID and <bcp14>MAY</bcp14> include a fragment selecting a verification method in the resolved DID document. The DID portion of <spanx style="verb">kid</spanx> <bcp14>MUST</bcp14> equal the Agent DID carried in <spanx style="verb">iss</spanx> and <spanx style="verb">sub</spanx>.</t>

<t>The JWT claims set <bcp14>MUST</bcp14> contain:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "iss": "did:web:agent.example.com:agents:123",
  "sub": "did:web:agent.example.com:agents:123",
  "aud": "did:web:api.example.com",
  "op": "enroll",
  "iat": 1748428800,
  "exp": 1748428860,
  "jti": "9f8a4d2e-1c3b-4f5e-8b7a-000000000000"
}
]]></sourcecode></figure>

<t><spanx style="verb">iss</spanx> and <spanx style="verb">sub</spanx> <bcp14>MUST</bcp14> both equal the Agent DID.</t>

<t><spanx style="verb">aud</spanx> <bcp14>MUST</bcp14> equal the Service DID advertised as <spanx style="verb">service.did</spanx> in the Inspect document.</t>

<t><spanx style="verb">op</spanx> <bcp14>MUST</bcp14> equal the command being invoked. The values defined by this document are <spanx style="verb">enroll</spanx>, <spanx style="verb">grant</spanx>, <spanx style="verb">revoke</spanx>, and <spanx style="verb">status</spanx>.</t>

<t><spanx style="verb">iat</spanx> and <spanx style="verb">exp</spanx> are NumericDate values as defined by JWT <xref target="RFC7519"/>: seconds since the Unix epoch represented as JSON numbers. These claims are an exception to AEP-owned JSON payload numeric-string encoding. Services <bcp14>MUST</bcp14> reject assertions where <spanx style="verb">exp - iat</spanx> is greater than 300 seconds. Services <bcp14>SHOULD</bcp14> allow no more than 30 seconds of local clock skew.</t>

<t><spanx style="verb">jti</spanx> <bcp14>MUST</bcp14> be freshly generated for each assertion. Services <bcp14>MUST</bcp14> maintain a replay cache keyed by at least <spanx style="verb">(sub, jti)</spanx> for the assertion lifetime plus the accepted clock-skew window.</t>

<t>To verify a client assertion, the Service <bcp14>MUST</bcp14>:</t>

<t><list style="numbers" type="1">
  <t>Parse the JWT header, claims set, and signature.</t>
  <t>Reject the assertion if <spanx style="verb">alg</spanx> is not advertised by the Service or is prohibited by this document.</t>
  <t>Resolve the DID identified by <spanx style="verb">kid</spanx>.</t>
  <t>Select the referenced verification method.</t>
  <t>Verify the JWS signature.</t>
  <t>Verify <spanx style="verb">iss</spanx>, <spanx style="verb">sub</spanx>, <spanx style="verb">aud</spanx>, <spanx style="verb">op</spanx>, <spanx style="verb">iat</spanx>, <spanx style="verb">exp</spanx>, and <spanx style="verb">jti</spanx> according to this section.</t>
</list></t>

<t>Any verification failure <bcp14>MUST</bcp14> use the common <spanx style="verb">not_recognized</spanx> error defined in this document's error handling section.</t>

</section>
<section anchor="the-inspect-command"><name>The Inspect Command</name>

<t>Inspect is the unauthenticated discovery command. An Agent invokes Inspect by fetching the Service's well-known AEP document:</t>

<figure><sourcecode type="http-message"><![CDATA[
GET /.well-known/aep HTTP/1.1
Host: example.com
Accept: application/aep+json
]]></sourcecode></figure>

<t>The Service returns <spanx style="verb">200 OK</spanx> with an <spanx style="verb">application/aep+json</spanx> body containing the Inspect document described in this document. Inspect has no request body and no client assertion.</t>

<t>Agents <bcp14>SHOULD</bcp14> cache Inspect documents according to the Service's HTTP cache metadata. Agents <bcp14>MUST</bcp14> re-fetch the Inspect document before invoking a command if the cached document has expired.</t>

</section>
<section anchor="the-enroll-command"><name>The Enroll Command</name>

<t>Enroll registers an Agent DID with a Service. The request uses the baseline client assertion with <spanx style="verb">op</spanx> equal to <spanx style="verb">enroll</spanx>.</t>

<t>Endpoint:</t>

<figure><sourcecode type="http-message"><![CDATA[
POST /aep/enroll HTTP/1.1
Host: example.com
Content-Type: application/aep+json
Authorization: AEP <jwt>
Idempotency-Key: <opaque>
]]></sourcecode></figure>

<t>Request body:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "agent_did": "did:web:agent.example.com:agents:123",
  "claims": {
    "contact.email": "ops@example.com"
  },
  "idempotency_key": "9f8a4d2e-1c3b-4f5e-8b7a-000000000000"
}
]]></sourcecode></figure>

<t><spanx style="verb">agent_did</spanx> <bcp14>MUST</bcp14> equal the Agent DID in the client assertion <spanx style="verb">iss</spanx>, <spanx style="verb">sub</spanx>, and <spanx style="verb">kid</spanx> values, ignoring any <spanx style="verb">kid</spanx> fragment. The DID method <bcp14>MUST</bcp14> be accepted by the Service's <spanx style="verb">identity.methods</spanx> advertisement.</t>

<t><spanx style="verb">claims</spanx> carries claim values requested by the Service's Inspect document. This document does not define a complete claim catalog. Claim names are strings and claim values are JSON values. Services <bcp14>MUST</bcp14> ignore unknown claims unless local policy requires rejection.</t>

<t><spanx style="verb">idempotency_key</spanx> is an opaque retry key. When both the HTTP <spanx style="verb">Idempotency-Key</spanx> header and body field are present, they <bcp14>MUST</bcp14> contain the same value.</t>

<t>Successful Enroll responses use <spanx style="verb">200 OK</spanx>. A synchronous enrollment returns:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "status": "active"
}
]]></sourcecode></figure>

<t>If enrollment requires asynchronous verification, the Service returns:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "owner_action_required": "false",
  "status": "pending",
  "verification_pending": ["contact.email"]
}
]]></sourcecode></figure>

<t>The Agent polls Status to learn whether a pending enrollment has become <spanx style="verb">active</spanx> or <spanx style="verb">rejected</spanx>.</t>

</section>
<section anchor="the-status-command"><name>The Status Command</name>

<t>Status returns the Service's current state for the authenticated Agent identity. The request uses the baseline client assertion with <spanx style="verb">op</spanx> equal to <spanx style="verb">status</spanx>, or a session credential when a concrete session-credential document allows it.</t>

<t>Endpoint:</t>

<figure><sourcecode type="http-message"><![CDATA[
GET /aep/status HTTP/1.1
Host: example.com
Authorization: AEP <jwt>
]]></sourcecode></figure>

<t>Status has no request body.</t>

<t>Successful Status responses use <spanx style="verb">200 OK</spanx>:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "owner_action_required": "false",
  "requirements_pending": [],
  "since": "2026-05-28T12:00:00Z",
  "status": "active"
}
]]></sourcecode></figure>

<t><spanx style="verb">status</spanx> describes the Agent identity's state at the Service:</t>

<texttable>
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <c><spanx style="verb">active</spanx></c>
      <c>The identity is enrolled and operational.</c>
      <c><spanx style="verb">pending</spanx></c>
      <c>Enrollment is awaiting asynchronous verification.</c>
      <c><spanx style="verb">unavailable</spanx></c>
      <c>The identity is temporarily unavailable for Service-defined non-punitive reasons.</c>
      <c><spanx style="verb">suspended</spanx></c>
      <c>The identity is temporarily disabled by Service action.</c>
      <c><spanx style="verb">terminated</spanx></c>
      <c>The identity is permanently de-registered.</c>
      <c><spanx style="verb">rejected</spanx></c>
      <c>Asynchronous verification failed.</c>
</texttable>

<t><spanx style="verb">since</spanx> is the RFC 3339 <xref target="RFC3339"/> timestamp of the last state transition.</t>

<t><spanx style="verb">requirements_pending</spanx> lists claim names the Agent should provide to satisfy current Service requirements.</t>

<t><spanx style="verb">owner_action_required</spanx> is a JSON string boolean. A value of <spanx style="verb">"true"</spanx> indicates that the Agent's Owner must complete an out-of-band action before the identity can become or remain active.</t>

</section>
<section anchor="the-grant-command"><name>The Grant Command</name>

<t>Grant exchanges a baseline client assertion for a session credential. The request uses the baseline client assertion with <spanx style="verb">op</spanx> equal to <spanx style="verb">grant</spanx>. A session credential <bcp14>MUST NOT</bcp14> be used to authenticate Grant.</t>

<t>Endpoint:</t>

<figure><sourcecode type="http-message"><![CDATA[
POST /aep/grant HTTP/1.1
Host: example.com
Content-Type: application/aep+json
Authorization: AEP <jwt>
Idempotency-Key: <opaque>
]]></sourcecode></figure>

<t>Request body:</t>

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

<t><spanx style="verb">grant_type</spanx> <bcp14>MUST</bcp14> be one of the values advertised in <spanx style="verb">commands.grant_types</spanx>. Concrete session-credential documents <bcp14>MAY</bcp14> define additional request fields.</t>

<t>The successful response body is defined by the concrete session-credential document. This core document requires only that the response be a JSON object and that the selected document define credential presentation, expiry semantics, and revocation behavior.</t>

</section>
<section anchor="the-revoke-command"><name>The Revoke Command</name>

<t>Revoke invalidates session credentials previously issued by Grant. The request uses the baseline client assertion with <spanx style="verb">op</spanx> equal to <spanx style="verb">revoke</spanx>. A session credential <bcp14>MUST NOT</bcp14> be used to authenticate Revoke.</t>

<t>Endpoint:</t>

<figure><sourcecode type="http-message"><![CDATA[
POST /aep/revoke HTTP/1.1
Host: example.com
Content-Type: application/aep+json
Authorization: AEP <jwt>
Idempotency-Key: <opaque>
]]></sourcecode></figure>

<t>Request body:</t>

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

<t><spanx style="verb">grant_type</spanx> <bcp14>MUST</bcp14> be one of the values advertised in <spanx style="verb">commands.grant_types</spanx>. By default, Revoke targets all credentials of that grant type issued to the authenticated Agent. Concrete session-credential documents <bcp14>MAY</bcp14> define additional fields for narrower credential targeting.</t>

<t>To revoke all session credentials of every grant type issued to the authenticated Agent, the request body is:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "all_grant_types": "true"
}
]]></sourcecode></figure>

<t><spanx style="verb">all_grant_types</spanx> is a string boolean. When <spanx style="verb">all_grant_types</spanx> is <spanx style="verb">"true"</spanx>, the request <bcp14>MUST NOT</bcp14> contain <spanx style="verb">grant_type</spanx> or <spanx style="verb">credential_id</spanx>. A Service that supports Revoke <bcp14>MUST</bcp14> support <spanx style="verb">all_grant_types</spanx> so an Agent can invalidate all issued session credentials without discovering or iterating over every concrete grant type. A malformed Revoke request, including a request with mutually exclusive fields, fails with <spanx style="verb">invalid_request</spanx>.</t>

<t>Successful Revoke responses use <spanx style="verb">200 OK</spanx> and an empty JSON object:</t>

<figure><sourcecode type="json"><![CDATA[
{}
]]></sourcecode></figure>

<t>The Service <bcp14>MUST</bcp14> return success regardless of whether any matching credentials existed.</t>

</section>
<section anchor="idempotency"><name>Idempotency</name>

<t>POST commands are state-mutating and <bcp14>MUST</bcp14> support safe retry with the <spanx style="verb">Idempotency-Key</spanx> HTTP header. This requirement applies to Enroll, Grant, and Revoke in this document.</t>

<t>Services <bcp14>MUST</bcp14> cache the response associated with <spanx style="verb">(agent_did, Idempotency-Key)</spanx> for at least 1 hour. If a request repeats the same key with the same authenticated Agent and the same request body, the Service <bcp14>MUST</bcp14> return the cached response or an equivalent successful response.</t>

<t>If the same authenticated Agent reuses an idempotency key with a different request body, the Service <bcp14>MUST</bcp14> return <spanx style="verb">409 Conflict</spanx> with <spanx style="verb">code</spanx> equal to <spanx style="verb">idempotency_conflict</spanx>.</t>

<t>The Enroll request body <bcp14>MAY</bcp14> also contain <spanx style="verb">idempotency_key</spanx> for bindings or application frameworks that persist idempotency metadata with the body. When both forms are present, they <bcp14>MUST</bcp14> match.</t>

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

<t>The HTTP binding uses RFC 9457 Problem Details <xref target="RFC9457"/> with an AEP <spanx style="verb">code</spanx> field.</t>

<figure><sourcecode type="http-message"><![CDATA[
HTTP/1.1 401 Unauthorized
Content-Type: application/problem+json
WWW-Authenticate: AEP reason="not_recognized"
]]></sourcecode></figure>

<figure><sourcecode type="json"><![CDATA[
{
  "code": "not_recognized",
  "status": 401,
  "title": "Not recognized",
  "type": "urn:aep:error:not_recognized"
}
]]></sourcecode></figure>

<t>The <spanx style="verb">code</spanx> field is the canonical machine-readable AEP error code. <spanx style="verb">type</spanx> identifies the AEP error class using the form <spanx style="verb">urn:aep:error:&lt;code&gt;</spanx>. <spanx style="verb">title</spanx> <bcp14>MAY</bcp14> be omitted from production responses.</t>

<t>This document defines the following HTTP error codes:</t>

<texttable>
      <ttcol align='left'>AEP code</ttcol>
      <ttcol align='right'>HTTP status</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <c><spanx style="verb">enrollment_failed</spanx></c>
      <c>400</c>
      <c>Generic enrollment failure where the Service suppresses precise detail.</c>
      <c><spanx style="verb">invalid_request</spanx></c>
      <c>400</c>
      <c>The request body, parameters, or field combination is malformed or invalid.</c>
      <c><spanx style="verb">not_recognized</spanx></c>
      <c>401</c>
      <c>Umbrella anti-enumeration error for failed identity, signature, audience, operation, replay, time-window, archived-identity, or unsupported-method checks.</c>
      <c><spanx style="verb">identity_suspended</spanx></c>
      <c>403</c>
      <c>The recognized identity is temporarily disabled by Service action.</c>
      <c><spanx style="verb">identity_terminated</spanx></c>
      <c>403</c>
      <c>The recognized identity is permanently de-registered.</c>
      <c><spanx style="verb">identity_unavailable</spanx></c>
      <c>403</c>
      <c>The recognized identity is temporarily unavailable for Service-defined reasons.</c>
      <c><spanx style="verb">requirements_unmet</spanx></c>
      <c>422</c>
      <c>Required claims are missing or invalid.</c>
      <c><spanx style="verb">verification_pending</spanx></c>
      <c>403</c>
      <c>Enrollment or required verification has not completed.</c>
      <c><spanx style="verb">verification_timeout</spanx></c>
      <c>422</c>
      <c>Required asynchronous verification did not complete in the Service's policy window.</c>
      <c><spanx style="verb">rate_limited</spanx></c>
      <c>429</c>
      <c>The Agent exceeded a Service rate limit.</c>
      <c><spanx style="verb">unsupported_grant_type</spanx></c>
      <c>400</c>
      <c>Grant or Revoke requested a <spanx style="verb">grant_type</spanx> not advertised by the Service.</c>
      <c><spanx style="verb">idempotency_conflict</spanx></c>
      <c>409</c>
      <c>An idempotency key was reused with a different request body.</c>
</texttable>

<t>Services <bcp14>MUST</bcp14> use <spanx style="verb">not_recognized</spanx> for bad signatures, unknown Agent identities, wrong <spanx style="verb">aud</spanx>, wrong <spanx style="verb">op</spanx>, replayed <spanx style="verb">jti</spanx>, time-window violations, archived identities, unsupported identity methods during authenticated contact, and unknown or revoked session credentials. Services <bcp14>MUST NOT</bcp14> reveal which of these checks failed.</t>

<t>Services <bcp14>MUST</bcp14> use <spanx style="verb">invalid_request</spanx> for malformed JSON, missing required fields, invalid field types, unsupported field combinations, and syntactically invalid requests when returning the error would not reveal identity-recognition state.</t>

<t>Services <bcp14>MUST</bcp14> implement constant-time-shaped response behavior for <spanx style="verb">not_recognized</spanx> paths so that observable latency does not distinguish a known Agent from an unknown Agent or a validly formatted assertion from a bad signature.</t>

<t>When a request fails for multiple reasons, the Service <bcp14>MUST</bcp14> choose the least revealing error. For example, a request with both a bad signature and missing claims returns <spanx style="verb">not_recognized</spanx>, not <spanx style="verb">requirements_unmet</spanx>.</t>

</section>
<section anchor="extensibility"><name>Extensibility</name>

<t>This document defines the extension points needed by the core protocol:</t>

<t><list style="symbols">
  <t><spanx style="verb">extensions.supported</spanx> advertises extension identifiers implemented by the Service.</t>
  <t><spanx style="verb">identity.methods</spanx> advertises concrete identity methods accepted for authenticated AEP commands.</t>
  <t><spanx style="verb">commands.grant_types</spanx> advertises concrete session-credential formats available through Grant and Revoke.</t>
  <t><spanx style="verb">commands.grant_types_config</spanx> <bcp14>MAY</bcp14> carry per-grant-type configuration defined by a concrete session-credential document.</t>
  <t><spanx style="verb">claims.required</spanx>, <spanx style="verb">claims.preferred</spanx>, and <spanx style="verb">claims.optional</spanx> <bcp14>MAY</bcp14> contain claim names defined by other documents.</t>
  <t>Additional top-level Inspect fields <bcp14>MAY</bcp14> be added by future documents.</t>
</list></t>

<t>Agents <bcp14>MUST</bcp14> ignore extension identifiers and additive fields they do not understand, unless local policy requires the Agent to refuse enrollment when a required capability is absent.</t>

<t>Services <bcp14>MUST NOT</bcp14> redefine the semantics of commands, fields, status values, or error codes defined by this document. Extensions are additive.</t>

<t>Concrete session-credential documents <bcp14>MUST</bcp14> define:</t>

<t><list style="numbers" type="1">
  <t>The <spanx style="verb">grant_type</spanx> string.</t>
  <t>Grant request fields beyond <spanx style="verb">grant_type</spanx>, if any.</t>
  <t>Grant response shape.</t>
  <t>Credential presentation on HTTP requests.</t>
  <t>Expiry semantics.</t>
  <t>Revoke request fields beyond <spanx style="verb">grant_type</spanx> and <spanx style="verb">all_grant_types</spanx>, if any.</t>
  <t>Error behavior beyond the core errors, if any.</t>
</list></t>

</section>
<section anchor="wire-identifier-syntax"><name>Wire Identifier Syntax</name>

<t>Command identifiers, binding identifiers, and grant type identifiers use lowercase hyphenated tokens:</t>

<figure><sourcecode type="abnf"><![CDATA[
wire-identifier = lc-token *( "-" lc-token )
]]></sourcecode></figure>

<t>Error codes use lowercase underscore-separated tokens:</t>

<figure><sourcecode type="abnf"><![CDATA[
error-code = lc-token *( "_" lc-token )
]]></sourcecode></figure>

<t>Identity method identifiers use either an existing DID method identifier, such as <spanx style="verb">did:web</spanx>, or a lowercase hyphenated token registered for AEP-specific non-DID identity methods.</t>

<t>Extension identifiers <bcp14>MUST</bcp14> be absolute URIs. AEP-owned extension identifiers <bcp14>SHOULD</bcp14> use the URN form <spanx style="verb">urn:aep:ext:&lt;authority&gt;:&lt;name&gt;#v=&lt;version&gt;</spanx>.</t>

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

<t>This section requests registrations and registry creation following RFC 8126 <xref target="RFC8126"/>.</t>

<section anchor="http-authentication-scheme"><name>HTTP Authentication Scheme</name>

<t>IANA is requested to register the following HTTP authentication scheme in the "HTTP Authentication Schemes" registry:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Value</ttcol>
      <c>Authentication Scheme Name</c>
      <c><spanx style="verb">AEP</spanx></c>
      <c>Reference</c>
      <c>This document</c>
      <c>Notes</c>
      <c>Agent Enrollment Protocol client assertion authentication</c>
</texttable>

</section>
<section anchor="well-known-uri"><name>Well-Known URI</name>

<t>IANA is requested to register the following URI suffix in the "Well-Known URIs" registry:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Value</ttcol>
      <c>URI Suffix</c>
      <c><spanx style="verb">aep</spanx></c>
      <c>Change Controller</c>
      <c>IETF</c>
      <c>Reference</c>
      <c>This document</c>
      <c>Related Information</c>
      <c>Agent Enrollment Protocol Inspect document</c>
</texttable>

</section>
<section anchor="media-type"><name>Media Type</name>

<t>IANA is requested to register the following media type in the "Media Types" registry:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Value</ttcol>
      <c>Type name</c>
      <c><spanx style="verb">application</spanx></c>
      <c>Subtype name</c>
      <c><spanx style="verb">aep+json</spanx></c>
      <c>Required parameters</c>
      <c>None</c>
      <c>Optional parameters</c>
      <c>None</c>
      <c>Encoding considerations</c>
      <c>Same as JSON <xref target="RFC8259"/></c>
      <c>Security considerations</c>
      <c>AEP payloads can contain Agent identifiers, claims, session credentials, and other security-sensitive protocol data. Implementations need to apply the authentication, confidentiality, anti-replay, anti-enumeration, logging, and privacy requirements described in the Security Considerations and Privacy Considerations sections of this document.</c>
      <c>Interoperability considerations</c>
      <c>None</c>
      <c>Published specification</c>
      <c>This document</c>
      <c>Applications that use this media type</c>
      <c>Services and Agents implementing AEP</c>
      <c>Fragment identifier considerations</c>
      <c>Same as JSON <xref target="RFC8259"/></c>
      <c>Additional information</c>
      <c>None</c>
      <c>Person and email address to contact for further information</c>
      <c>IETF <eref target="mailto:iesg@ietf.org">iesg@ietf.org</eref></c>
      <c>Intended usage</c>
      <c>COMMON</c>
      <c>Restrictions on usage</c>
      <c>None</c>
      <c>Author</c>
      <c>IETF</c>
      <c>Change controller</c>
      <c>IETF</c>
</texttable>

</section>
<section anchor="aep-command-registry"><name>AEP Command Registry</name>

<t>IANA is requested to create an "AEP Commands" registry. The registration policy is Specification Required as defined by RFC 8126. Designated experts are requested to verify that new command registrations define command semantics, authentication requirements, request and response shapes, idempotency behavior for state-mutating commands, and error behavior.</t>

<t>Each entry contains:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>Command</c>
      <c>Lowercase wire identifier.</c>
      <c>Description</c>
      <c>Short command description.</c>
      <c>Reference</c>
      <c>Stable specification reference.</c>
</texttable>

<t>Initial entries are:</t>

<texttable>
      <ttcol align='left'>Command</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">inspect</spanx></c>
      <c>Discover Service AEP capabilities.</c>
      <c>This document</c>
      <c><spanx style="verb">enroll</spanx></c>
      <c>Register an Agent identity with a Service.</c>
      <c>This document</c>
      <c><spanx style="verb">status</spanx></c>
      <c>Query the Agent identity's current state.</c>
      <c>This document</c>
      <c><spanx style="verb">grant</spanx></c>
      <c>Issue a session credential.</c>
      <c>This document</c>
      <c><spanx style="verb">revoke</spanx></c>
      <c>Revoke session credentials.</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="aep-binding-identifier-registry"><name>AEP Binding Identifier Registry</name>

<t>IANA is requested to create an "AEP Binding Identifiers" registry. The registration policy is Specification Required as defined by RFC 8126. Designated experts are requested to verify that new binding registrations define transport semantics, endpoint discovery, authentication carriage, payload encoding, error mapping, and security considerations.</t>

<t>Each entry contains:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>Binding Identifier</c>
      <c>Lowercase wire identifier.</c>
      <c>Description</c>
      <c>Short binding description.</c>
      <c>Reference</c>
      <c>Stable specification reference.</c>
</texttable>

<t>Initial entries are:</t>

<texttable>
      <ttcol align='left'>Binding Identifier</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">http</spanx></c>
      <c>HTTP binding for AEP commands.</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="aep-extension-identifier-registry"><name>AEP Extension Identifier Registry</name>

<t>IANA is requested to create an "AEP Extension Identifiers" registry. The registration policy is Specification Required as defined by RFC 8126. Designated experts are requested to verify that new extension registrations define the extension identifier, discovery behavior, protocol fields or commands added by the extension, error behavior, and security and privacy considerations.</t>

<t>Each entry contains:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>Extension Identifier</c>
      <c>Absolute URI identifying the extension.</c>
      <c>Description</c>
      <c>Short extension description.</c>
      <c>Reference</c>
      <c>Stable specification reference.</c>
</texttable>

<t>This document creates the registry but does not register concrete extensions.</t>

</section>
<section anchor="aep-error-code-registry"><name>AEP Error Code Registry</name>

<t>IANA is requested to create an "AEP Error Codes" registry. The registration policy is Specification Required as defined by RFC 8126. Designated experts are requested to verify that new error codes are binding-independent, use <spanx style="verb">lower_snake_case</spanx>, avoid exposing identity-enumeration detail, and define default HTTP status mapping and remediation behavior.</t>

<t>Each entry contains:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>Code</c>
      <c>Lowercase <spanx style="verb">lower_snake_case</spanx> error code.</c>
      <c>HTTP Status</c>
      <c>Default HTTP status code.</c>
      <c>Description</c>
      <c>Short error description.</c>
      <c>Reference</c>
      <c>Stable specification reference.</c>
</texttable>

<t>Initial entries are:</t>

<texttable>
      <ttcol align='left'>Code</ttcol>
      <ttcol align='right'>HTTP Status</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c><spanx style="verb">enrollment_failed</spanx></c>
      <c>400</c>
      <c>Generic enrollment failure.</c>
      <c>This document</c>
      <c><spanx style="verb">invalid_request</spanx></c>
      <c>400</c>
      <c>Malformed or invalid request.</c>
      <c>This document</c>
      <c><spanx style="verb">not_recognized</spanx></c>
      <c>401</c>
      <c>Anti-enumeration recognition failure.</c>
      <c>This document</c>
      <c><spanx style="verb">identity_suspended</spanx></c>
      <c>403</c>
      <c>Recognized identity is suspended.</c>
      <c>This document</c>
      <c><spanx style="verb">identity_terminated</spanx></c>
      <c>403</c>
      <c>Recognized identity is terminated.</c>
      <c>This document</c>
      <c><spanx style="verb">identity_unavailable</spanx></c>
      <c>403</c>
      <c>Recognized identity is temporarily unavailable.</c>
      <c>This document</c>
      <c><spanx style="verb">requirements_unmet</spanx></c>
      <c>422</c>
      <c>Required claims are missing or invalid.</c>
      <c>This document</c>
      <c><spanx style="verb">verification_pending</spanx></c>
      <c>403</c>
      <c>Verification has not completed.</c>
      <c>This document</c>
      <c><spanx style="verb">verification_timeout</spanx></c>
      <c>422</c>
      <c>Verification did not complete in time.</c>
      <c>This document</c>
      <c><spanx style="verb">rate_limited</spanx></c>
      <c>429</c>
      <c>Rate limit exceeded.</c>
      <c>This document</c>
      <c><spanx style="verb">unsupported_grant_type</spanx></c>
      <c>400</c>
      <c>Unsupported Grant or Revoke grant type.</c>
      <c>This document</c>
      <c><spanx style="verb">idempotency_conflict</spanx></c>
      <c>409</c>
      <c>Idempotency key reused with a different request body.</c>
      <c>This document</c>
</texttable>

</section>
<section anchor="aep-grant-type-registry"><name>AEP Grant Type Registry</name>

<t>IANA is requested to create an "AEP Grant Types" registry. The registration policy is Specification Required as defined by RFC 8126. Designated experts are requested to verify that new grant type registrations define the Grant request fields, Grant response shape, credential presentation syntax, expiry semantics, Revoke behavior, and security considerations for credential storage and leakage.</t>

<t>Each entry contains:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>Grant Type</c>
      <c>Lowercase wire identifier.</c>
      <c>Description</c>
      <c>Short credential description.</c>
      <c>Reference</c>
      <c>Stable specification reference.</c>
</texttable>

<t>This document creates the registry but does not register concrete grant types. OAuth Bearer, API-key, and Basic session credentials are defined by separate documents.</t>

</section>
<section anchor="aep-identity-method-registry"><name>AEP Identity Method Registry</name>

<t>IANA is requested to create an "AEP Identity Methods" registry. The registration policy is Specification Required as defined by RFC 8126. Designated experts are requested to verify that new identity method registrations define identifier syntax, verification-material resolution, JWT <spanx style="verb">kid</spanx> handling, trust anchors, caching behavior, key rotation behavior, and security and privacy considerations.</t>

<t>Each entry contains:</t>

<texttable>
      <ttcol align='left'>Field</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>Identity Method</c>
      <c>Lowercase identity method name.</c>
      <c>Description</c>
      <c>Short method description.</c>
      <c>Reference</c>
      <c>Stable specification reference.</c>
</texttable>

<t>This document creates the registry but does not register concrete identity methods. The <spanx style="verb">did:web</spanx> identity method is defined by a separate document.</t>

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

<t>Network use of the HTTP binding defined by this document requires TLS 1.3 or later. Plaintext HTTP is out of scope.</t>

<t>Client assertions are replay resistant only when Services validate the full chain: <spanx style="verb">aud</spanx>, <spanx style="verb">op</spanx>, <spanx style="verb">jti</spanx>, <spanx style="verb">iat</spanx>, and <spanx style="verb">exp</spanx>. <spanx style="verb">aud</spanx> binds the assertion to the Service DID. <spanx style="verb">op</spanx> binds the assertion to a command. <spanx style="verb">jti</spanx> prevents in-window duplicate use. <spanx style="verb">iat</spanx> and <spanx style="verb">exp</spanx> bound the usable time window. Services that skip any of these checks weaken the authentication model.</t>

<t>Services <bcp14>SHOULD</bcp14> keep assertion lifetimes short. This document sets a maximum validity interval of 300 seconds. Services <bcp14>MAY</bcp14> enforce a shorter maximum.</t>

<t>Identity methods define how Services obtain verification material for Agent identities. Services <bcp14>MUST</bcp14> apply the resolution, trust-anchor, caching, and key-rotation requirements of each enabled identity method. A Service <bcp14>MUST NOT</bcp14> accept an Agent identity method that was not advertised in <spanx style="verb">identity.methods</spanx>.</t>

<t>The <spanx style="verb">core.signing_algorithms</spanx> advertisement is security relevant. Services <bcp14>MUST NOT</bcp14> advertise algorithms they do not intend to accept, and <bcp14>MUST NOT</bcp14> accept algorithms that were not advertised. Agents <bcp14>MUST NOT</bcp14> use <spanx style="verb">none</spanx> or symmetric JOSE algorithms for Agent identity assertions. Implementations <bcp14>SHOULD</bcp14> follow JWT best current practices <xref target="RFC8725"/>.</t>

<t>Authentication failures are an enumeration risk. Services <bcp14>MUST</bcp14> collapse recognition failures to <spanx style="verb">not_recognized</spanx> and <bcp14>MUST</bcp14> shape timing so attackers cannot distinguish an unknown Agent, a bad signature, a wrong audience, a wrong operation, a replay, an expired assertion, or an archived identity.</t>

<t>Grant issues session credentials that may be bearer credentials depending on the concrete session-credential document. Services and Agents <bcp14>MUST</bcp14> treat returned credentials as secrets. Concrete session-credential documents <bcp14>MUST</bcp14> define credential lifetime, presentation, storage guidance, and revocation semantics. Revoke <bcp14>MUST</bcp14> be available for every advertised grant type.</t>

<t>If a session credential is stolen, an attacker may impersonate the Agent until the credential expires or is revoked. Agents that suspect compromise can authenticate with the baseline client assertion and invoke Revoke for the affected grant type.</t>

<t>Services <bcp14>SHOULD</bcp14> rate-limit Inspect, Enroll, Grant, Revoke, and Status to reduce probing and credential-issuance abuse. Rate limits <bcp14>MUST NOT</bcp14> create distinguishable recognition errors that defeat the anti-enumeration rules above.</t>

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

<t>AEP exposes Agent identity and claims to Services. Agents and Services should minimize disclosure by using the Inspect document as the negotiation surface: Services list required, preferred, and optional claims; Agents provide the minimum set needed for the intended interaction.</t>

<t>Services <bcp14>SHOULD</bcp14> keep <spanx style="verb">claims.required</spanx> limited to data required for enrollment or legal operation. Over-declaring required claims increases privacy risk and reduces interoperability.</t>

<t>Agents <bcp14>SHOULD</bcp14> avoid sending claims absent from <spanx style="verb">claims.required</spanx>, <spanx style="verb">claims.preferred</spanx>, or <spanx style="verb">claims.optional</spanx>. Services <bcp14>MUST</bcp14> ignore unknown claims unless local policy requires rejection.</t>

<t>Agent identities can become correlatable if the same identifier is reused across Services. Platforms or Agent operators that require unlinkability <bcp14>SHOULD</bcp14> use a distinct Agent identifier and signing key per Service enrollment when the selected identity method allows it.</t>

<t>Services <bcp14>SHOULD</bcp14> maintain a Service-local pairwise identifier for enrolled Agents rather than using the Agent DID as the primary internal record key across all contexts. Such identifiers <bcp14>SHOULD</bcp14> be opaque and <bcp14>MUST NOT</bcp14> be disclosed as cross-Service correlators.</t>

<t>Platform-hosted Agent identities introduce Platform-level visibility: the Platform can observe or reconstruct which Services an Agent enrolls with. This document does not prevent that visibility. Agents with stronger privacy requirements should account for the Platform trust relationship before using a Platform-hosted identity.</t>

<t>Session credentials can become correlation handles when reused outside the issuing Service or logged by intermediaries. Concrete session-credential documents <bcp14>MUST</bcp14> define presentation rules that avoid unnecessary disclosure and <bcp14>MUST</bcp14> prohibit logging raw credential values.</t>

<t>Inspect documents may disclose Service policy and capability information to unauthenticated readers. Services <bcp14>SHOULD</bcp14> avoid publishing sensitive operational details in Inspect beyond what Agents need for interoperability.</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="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="RFC6839">
  <front>
    <title>Additional Media Type Structured Syntax Suffixes</title>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
    <date month="January" year="2013"/>
    <abstract>
      <t>A content media type name sometimes includes partitioned meta- information distinguished by a structured syntax to permit noting an attribute of the media as a suffix to the name. This document defines several structured syntax suffixes for use with media type registrations. In particular, it defines and registers the "+json", "+ber", "+der", "+fastinfoset", "+wbxml" and "+zip" structured syntax suffixes, and provides a media type structured syntax suffix registration form for the "+xml" structured syntax suffix. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6839"/>
  <seriesInfo name="DOI" value="10.17487/RFC6839"/>
</reference>
<reference anchor="RFC7515">
  <front>
    <title>JSON Web Signature (JWS)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7515"/>
  <seriesInfo name="DOI" value="10.17487/RFC7515"/>
</reference>
<reference anchor="RFC7518">
  <front>
    <title>JSON Web Algorithms (JWA)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7518"/>
  <seriesInfo name="DOI" value="10.17487/RFC7518"/>
</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="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="RFC8037">
  <front>
    <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
    <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8037"/>
  <seriesInfo name="DOI" value="10.17487/RFC8037"/>
</reference>
<reference anchor="RFC8446">
  <front>
    <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <date month="August" year="2018"/>
    <abstract>
      <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8446"/>
  <seriesInfo name="DOI" value="10.17487/RFC8446"/>
</reference>
<reference anchor="RFC8615">
  <front>
    <title>Well-Known Uniform Resource Identifiers (URIs)</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="May" year="2019"/>
    <abstract>
      <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
      <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8615"/>
  <seriesInfo name="DOI" value="10.17487/RFC8615"/>
</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="RFC9112">
  <front>
    <title>HTTP/1.1</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 specifies the HTTP/1.1 message syntax, message parsing, connection management, and related security concerns.</t>
      <t>This document obsoletes portions of RFC 7230.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="99"/>
  <seriesInfo name="RFC" value="9112"/>
  <seriesInfo name="DOI" value="10.17487/RFC9112"/>
</reference>
<reference anchor="RFC9113">
  <front>
    <title>HTTP/2</title>
    <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
    <author fullname="C. Benfield" initials="C." role="editor" surname="Benfield"/>
    <date month="June" year="2022"/>
    <abstract>
      <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced latency by introducing field compression and allowing multiple concurrent exchanges on the same connection.</t>
      <t>This document obsoletes RFCs 7540 and 8740.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9113"/>
  <seriesInfo name="DOI" value="10.17487/RFC9113"/>
</reference>
<reference anchor="RFC9114">
  <front>
    <title>HTTP/3</title>
    <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
    <date month="June" year="2022"/>
    <abstract>
      <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP semantics over QUIC. This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9114"/>
  <seriesInfo name="DOI" value="10.17487/RFC9114"/>
</reference>
<reference anchor="RFC9457">
  <front>
    <title>Problem Details for HTTP APIs</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <author fullname="E. Wilde" initials="E." surname="Wilde"/>
    <author fullname="S. Dalal" initials="S." surname="Dalal"/>
    <date month="July" year="2023"/>
    <abstract>
      <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
      <t>This document obsoletes RFC 7807.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9457"/>
  <seriesInfo name="DOI" value="10.17487/RFC9457"/>
</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="RFC8126">
  <front>
    <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
    <author fullname="M. Cotton" initials="M." surname="Cotton"/>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <author fullname="T. Narten" initials="T." surname="Narten"/>
    <date month="June" year="2017"/>
    <abstract>
      <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
      <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
      <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="26"/>
  <seriesInfo name="RFC" value="8126"/>
  <seriesInfo name="DOI" value="10.17487/RFC8126"/>
</reference>
<reference anchor="RFC8725">
  <front>
    <title>JSON Web Token Best Current Practices</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="D. Hardt" initials="D." surname="Hardt"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="February" year="2020"/>
    <abstract>
      <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="225"/>
  <seriesInfo name="RFC" value="8725"/>
  <seriesInfo name="DOI" value="10.17487/RFC8725"/>
</reference>



    </references>

</references>



  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+19a3fbRpbgd/6KWuXs2SRLMJL8jCbJtGI7HXUc223Jyenp
kyMUyaKICAQ4ACiZ3Xb/lvkt+8v2vuoFgBTl2N3ZWfN0xxSIet2673vrVpIk
gyZrcnOk9s7mRh1fmKJRT4qqzPMFfn1RlU05KfO9gR6PK3MF7x0/ebE3mJaT
Qi+g2bTSsya51FeZLhKNzRPjmidLaZ7sHwwmujEXZbU+UnUzHWTL6kg11apu
Dvf3v9w/HNSr8SKr66wsmvUSOj55cvbdoG50MT3XeVkYetsMltnRQCno9Eit
TQ1f67JqKjOr3d/rhf9Tr5p5WWGLBP6vVFbAD89G6geaLz3iZcTPyupCF9nf
dAOzOVJ/0tV1VgzVSTEZqU9Piu/y8vozes8sdJYfQRf1H7JiBo+Xej3S2WBQ
lNUCWl8ZHPrld4/u3LnzpXy9d3jnrny9/9A9fXDv4J7/+tB/tS88PLznvu7f
eWC/3r17336973r48uBg33899F/v+K92Dl/evQedwexbM354cOh6fnAIPY9G
o8EgSRKlx3VT6UkzGGzFGPUpIMpnampmWWFqpQv1/dnZi2SsazNVCzOZA4Tr
hYJxFexSWZSLcgWvYXc17K+aZvWkvDKVqk11lU2M8milKvOfq6wy+L0eyg84
ArVW2RT+mzXroSrHjc4KVS5xI3UOXRGCqUll6B2dQ3PA6vLSKECU2sS/AO6p
/1yZah2ODSjZrOqRgtWpFXSoHpsJPK90nv0NVnZCzWeZqaCDSZ5hE13DGnAK
6k8/n0m/CAyE1Tg3C+gC5pnTsoFirmABSgNWVVV5rRZ6MgcIJrOsqptwItgL
4jeONyFUVUBDuDeNYbASNTZlYiGYFY3BnYNXa9nMRTad5mYw+ASwu6nK6Yp+
HQyOO1uSFQAbXWfFRb52PanrrJnzX4Vp7FbV9LhcwRzVfLWAjZnCbk0aaDgp
F8vcNNALwP0io9nizBH9cCuRoOClAla7oF/g4RLgd11WU+i+WS1hVys11fV8
XOpqKvh0/OIkuTRrhh5uMQwwUk9ewwA4FAG7BSuHgrWaIOr4Xw2hUg6rna4T
1yOMwts5VGNYGby9VtNSFWUjOA6L3bhXyBvUeK2u59lkrni4CL4O3eFvC8b/
VbcQfVmZmvZCA56ul015Uekl9BhgPCLF2ACUDTaelBcFYSUM3cy126DR7WiX
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

-->

</rfc>

