<?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-basic-session-credential-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="AEP Basic">Basic 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="August" day="24"/>

    
    
    

    <abstract>


<?line 39?>

<t>This document defines the Basic session-credential grant type for the Agent Enrollment Protocol (AEP).  The grant type lets an AEP Service issue an HTTP Basic credential through the AEP Grant command for deployments that already integrate with Basic authentication middleware.</t>



    </abstract>



  </front>

  <middle>


<?line 43?>

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

<t>AEP session credentials allow a Service to issue a stateful credential after an Agent authenticates with a baseline AEP client assertion <xref target="AEP-CORE"/>.  This document defines the <spanx style="verb">basic</spanx> grant type for Services that want to reuse HTTP Basic authentication <xref target="RFC7617"/> while preserving AEP key possession as the issuance root.  Grant type request and response bodies are JSON objects <xref target="RFC8259"/> carried over HTTP semantics <xref target="RFC9110"/> as defined by AEP.</t>

<t>This grant type does not replace baseline AEP authentication.  Services that implement this grant type <bcp14>MUST</bcp14> continue to accept baseline AEP authentication on authenticated AEP commands.</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[
basic
]]></sourcecode></figure>

<t>A Service that enables this grant type lists <spanx style="verb">basic</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.basic</spanx>:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "commands": {
    "grant_types": ["basic"],
    "grant_types_config": {
      "basic": {
        "default_lifetime_seconds": "86400",
        "realm": "api.example.com",
        "scopes_supported": ["read", "write"],
        "supports_per_credential_revoke": "true"
      }
    },
    "supported": ["enroll", "grant", "inspect", "revoke", "status"]
  }
}
]]></sourcecode></figure>

<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">realm</spanx>, when present, identifies the HTTP Basic realm associated with credentials issued by this grant type.</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>.  A Service that returns <spanx style="verb">credential_id</spanx> in a Grant response <bcp14>MUST</bcp14> support Revoke with that <spanx style="verb">credential_id</spanx>.  A Service that does not support per-credential Revoke <bcp14>MUST</bcp14> omit <spanx style="verb">credential_id</spanx> from Grant responses.</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": "basic",
  "label": "legacy-basic-prod",
  "requested_scopes": ["read"]
}
]]></sourcecode></figure>

<t><spanx style="verb">grant_type</spanx> <bcp14>MUST</bcp14> be <spanx style="verb">basic</spanx>.</t>

<t><spanx style="verb">label</spanx> is <bcp14>OPTIONAL</bcp14> and is an Agent-provided display label.  Services <bcp14>MAY</bcp14> ignore it.</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>The Agent does not submit a password.  The Service generates the username and password, or generates the password for a Service-owned username, and returns the credential in the Grant response.</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[
{
  "credential_id": "bas_01HZY8W7Q2F8J7D3P9G9Z1N6TT",
  "expires_at": "2026-12-01T00:00:00Z",
  "password": "s3cr3tExample",
  "realm": "api.example.com",
  "scopes": ["read"],
  "username": "aep_agent_abc123"
}
]]></sourcecode></figure>

<t><spanx style="verb">username</spanx> and <spanx style="verb">password</spanx> are <bcp14>REQUIRED</bcp14>.  Agents <bcp14>MUST</bcp14> treat <spanx style="verb">password</spanx> as an opaque secret. Services <bcp14>MUST</bcp14> generate values that can be encoded according to RFC 7617 without lossy transformation. Generated passwords <bcp14>MUST</bcp14> contain at least 128 bits of entropy. Generated usernames and passwords <bcp14>MUST NOT</bcp14> contain control characters.</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">realm</spanx>, when present, identifies the associated HTTP Basic realm.</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 Basic credential has no scope-limited authorization.  The Service <bcp14>MAY</bcp14> return an empty array with the same meaning.</t>

<t><spanx style="verb">credential_id</spanx>, when present, is a stable identifier for per-credential Revoke.  If present, the Service <bcp14>MUST</bcp14> support Revoke with this value.</t>

<t>The response does not include the base64-encoded <spanx style="verb">Authorization</spanx> value.  Agents construct that value locally from <spanx style="verb">username ":" password</spanx> according to RFC 7617.</t>

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

<t>On later HTTP requests, the Agent presents the credential using HTTP Basic authentication:</t>

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

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

<figure><sourcecode type="http-message"><![CDATA[
AEP-Authorization: Basic YWVwX2FnZW50X2FiYzEyMzpzM2NyM3RFeGFtcGxl
]]></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>The encoded value is standard base64 of <spanx style="verb">username ":" password</spanx> as defined by RFC 7617.  This encoding is not AEP's base64url binary convention.</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 Basic credentials of this type for the authenticated Agent:</t>

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

<t>To revoke one Basic credential when the Service returned <spanx style="verb">credential_id</spanx>:</t>

<figure><sourcecode type="json"><![CDATA[
{
  "credential_id": "bas_01HZY8W7Q2F8J7D3P9G9Z1N6TT",
  "grant_type": "basic"
}
]]></sourcecode></figure>

<t>Revoke returns an empty JSON object on success.  The Service <bcp14>MUST</bcp14> return success regardless of whether a matching credential 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 Basic credential 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">basic</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">basic</spanx></c>
      <c>Description</c>
      <c>HTTP Basic credential issued through AEP Grant</c>
      <c>Reference</c>
      <c>This document</c>
</texttable>

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

<t>Basic credentials are bearer secrets once encoded into the Authorization header.  Services <bcp14>MUST</bcp14> store passwords using strong password-storage controls.  Services <bcp14>MUST NOT</bcp14> log raw passwords or Authorization header values, and Services <bcp14>MUST</bcp14> support AEP Revoke for every advertised grant type.  Agents that suspect credential disclosure <bcp14>SHOULD</bcp14> call AEP Revoke using baseline AEP authentication and then fall back to per-request signed client assertions until a new credential is issued.</t>

<t>Services <bcp14>SHOULD</bcp14> use a distinct realm or credential store for AEP-issued Basic credentials when the Service also supports human-facing Basic credentials.</t>

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

<t>Basic credentials can become correlation handles if reused outside the issuing Service.  Agents <bcp14>MUST NOT</bcp14> present AEP-issued Basic credentials to other Services.  Services <bcp14>MUST NOT</bcp14> log raw passwords or Authorization header values in ordinary logs or telemetry.</t>

</section>


  </middle>

  <back>



    <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="RFC7617">
  <front>
    <title>The 'Basic' HTTP Authentication Scheme</title>
    <author fullname="J. Reschke" initials="J." surname="Reschke"/>
    <date month="September" year="2015"/>
    <abstract>
      <t>This document defines the "Basic" Hypertext Transfer Protocol (HTTP) authentication scheme, which transmits credentials as user-id/ password pairs, encoded using Base64.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7617"/>
  <seriesInfo name="DOI" value="10.17487/RFC7617"/>
</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="24"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-kavian-agent-enrollment-protocol-03"/>
</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>





  </back>

<!-- ##markdown-source:
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
eX+pqOZk+Ps/nddUQakiAAA=

-->

</rfc>

