<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-yao-agent-auth-considerations-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="Agent AuthN and AuthZ ">Further considerations on AI Agent Authentication and Authorization Based on OAuth 2.0 Extension</title>
    <seriesInfo name="Internet-Draft" value="draft-yao-agent-auth-considerations-00"/>
    <author initials="K." surname="Yao" fullname="Kehan Yao">
      <organization>China Mobile</organization>
      <address>
        <email>yaokehan@chinamobile.com</email>
      </address>
    </author>
    <date year="2025" month="June" day="30"/>
    <abstract>
      <?line 35?>

<t>Agent Communication Network(ACN) is becoming a promising and fundamental infrastructure for most vertical industries. To construct and build a scalable and trustable ACN, authentication and authorization of AI agents are some of the most important issues that need to be solved. This document extends the model of OAuth 2.0 and proposes new workflows for AI agent authentication and authorization.</t>
    </abstract>
  </front>
  <middle>
    <?line 39?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>With the rapid development of large language models(LLMs) and AI applications, AI agent is becoming an emerging entity that can help improve working efficiency. There are different types of AI agents, e.g. physical and virtual entities, and many promising use cases of AI agents have been mentioned in <xref target="I-D.rosenberg-ai-protocols"/>. All of these AI agents will join together to build a new Internet infrastructure, which is called as Agent Communication Network(ACN). To build such future nework is not easy, requirements on new protocols are also mentioned in <xref target="I-D.rosenberg-ai-protocols"/>. For example, discovery mechasims of AI agents, routing and connection, etc. But the most intuitive and important part for protocols evolution is the authentication and authorization.</t>
      <t>The complexity of AI agent authentication and authorization exists in that agent may have different roles and capabilities. AI agents may work On-behalf-of(OBO) users, itself, or other AI agents. In different cases, there are different requirements on the authentication and authorization, leading to different workflows. More importantly, agents may communicate with API proxy server, like MCP server to call API and access external resources, this make the authentication and authorization problem more complex. <xref target="I-D.oauth-ai-agents-on-behalf-of-user"/> considers the case when AI agents work OBO their users, and <xref target="I-D.patwhite-aauth"/> defines the extension of OAuth 2.1 for AI agents. This document further considers more cases on AI agents authentication and authorization based on OAuth extensions.</t>
    </section>
    <section anchor="definition-of-terms">
      <name>Definition of Terms</name>
      <ul spacing="normal">
        <li>
          <t>AI Agent: an entity with built-in intelligence, which can help or replace humans implement jobs and improve work efficiency.</t>
        </li>
        <li>
          <t>Types of AI Agents:  </t>
          <ul spacing="normal">
            <li>
              <t>Physical AI Agent: an physical entity with embedded intelligence, usually refers to some AI terminals, e.g., AI robot, embodied AI.</t>
            </li>
            <li>
              <t>Virtual AI Agent: an virtual entity that can provide intelligence, usually refers to some softwarized AI assistant, e.g., a chat assistant with a mobile application.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Ownership and Roles of AI Agents:  </t>
          <ul spacing="normal">
            <li>
              <t>OBO User: the agent may require the authorization from user(s) to implement jobs for user(s).</t>
            </li>
            <li>
              <t>OBO Agent Itself: the agent itself has identification and implements jobs and represents itself.</t>
            </li>
            <li>
              <t>OBO Other Agent(s): the agent may represent other agents to implement some jobs, given that other agents may not have the capabilities to implement the jobs.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Agent Communication Network(ACN): a network infrastructure which supports the interconnection, routing, capabilities announcement, and task collaboration of different types of AI agents.</t>
        </li>
        <li>
          <t>Agent Identifier(AID): An independent identifier of AI agent.</t>
        </li>
        <li>
          <t>API Proxy Server: A middlebox server that helps AI agent to call APIs or access external data resources. A typical example is the Model Context Protocol(MCP) server.</t>
        </li>
        <li>
          <t>Domain:  </t>
          <ul spacing="normal">
            <li>
              <t>Task-wise Domain: a temporary domain that is created to target on a specific job, when the job is finished, the domain is destroyed. A typical example is a domain that is created by 5G/6G core netowrk.</t>
            </li>
            <li>
              <t>Application Domain: a durable domain that is created by a specific application, e.g., a web or mobile application offerred by cloud service providers.</t>
            </li>
          </ul>
          <t>
The definition of resource server, resource owner, authorization server, and client reuse the definition in <xref target="RFC6749"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="aauth-agent-obo-its-users">
      <name>Aauth: Agent OBO Its User(s)</name>
      <section anchor="example-case">
        <name>Example Case</name>
        <t>A typical use case of AI agent on-behalf-of the user to access public resources can be an virtual agent assitant. For example, a trip planning app assistant helps the user to plan trips. This case is obvious and similar ones have been mentioned in <xref target="I-D.rosenberg-ai-protocols"/>. In this case, when the trip assitant needs to search for the current balance of the user, it needs the authorization of the user to access his bank account app. While it may also need to search for hotels, and it may require the account of the user under some booking applications. In addition, it may also need to use some of the data stored in the cloud personal gallery, which may require temporary access token. Therefore, AI agent OBO user(s) need different levels of authentication and authorization to access these resources.</t>
      </section>
      <section anchor="model">
        <name>Model</name>
        <t><xref target="agent-obo-user"/> shows the extension of the OAuth 2.0 model proposed in <xref target="RFC6749"/>. There are several updates and new components in this model. The big difference is the introduction of AI agent and API proxy server. If under traditional OAuth 2.0 model, client(AI agent) will directly communicate with resource owners and resource servers. But this is not efficient and scalable in the AI era, since an agent may consulting many resource owners at the same time, and different resource owners may require different levels of privileges to access the protected resources. To overcome the issue, industries have proposed Model Context Protocol(MCP). It introduces MCP server and protocol to let AI agents only communicate with the MCP server to request for resources. The MCP server will help AI agents to do API calling and specific data resource access. In <xref target="agent-obo-user"/>,  MCP server refers to the API proxy server. In the diagram, API proxy server will communicate with different resource owners and resource servers. The agent may also support communicate directly with the resource owner and resource server. For example, the resource owner is another agent that is interconnected with the agent itself.</t>
        <figure anchor="agent-obo-user">
          <name>AI Agent OBO User Workflow</name>
          <artwork><![CDATA[
 
                                             2          +--------+
                                          +------------->Resource|
                                          |+------------+Owner 1 |
                                          || 3          +--------+
                                          ||      8     +--------+
                                          ||  +-------->|Resource|
                                +------+  ||  |+--------+Server 1|
                                |      +--+|  ||  9     +--------+
                                |      <---+  ||                  
                        +------->  API +------+| 
                        |       | Proxy|       |
                        | +-----|Server<-------+                  
                        | |     |      |                          
                        | |     |      +-----+
                        | |     |      <-+   |   2      +--------+
                        | |     +---^+-+ |   +--------->|Resource|
                    1,7 | |         ||   +--------------+Owner 2 |
                        | |4,10     ||     3            +--------+
                        | |         ||          8       +--------+
                        | |         |+----------------->|Resource|
+----+  0     +-----+   | |         +-------------------+Server 2|
|User+-------->     +---+ |                  9          +--------+
|    <--------+     <-----+
+----+  11    |     |          1             +--------+
              |  AI +----------------------->|Resource|
              |Agent<------------------------+Owner 3 |
              |     |          4             +--------+
              |     +-----------+     7      +--------+   
              |     |           +----------->|Resource| 
              |     <------------------------+Server 3|
              +--^-++              9         +--------+          
                 | |                          
                 | |                                            
                 | |  5         +-------+                     
                 | +------------> Auth  |                    
                 +--------------+Servers|                   
                      6         +-------+                      
]]></artwork>
        </figure>
      </section>
      <section anchor="workflow">
        <name>Workflow</name>
        <t>The detailed workflow of <xref target="agent-obo-user"/> is as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Step 0, the user initially asks for AI agent for some tasks via prompts.</t>
          </li>
          <li>
            <t>Step 1, the AI agent interprate the prompts and communicate with the API proxy server to search for particular data resources and implement function calling. Alternatively, the agent will ask the resource server for the grant if they are directly connected.</t>
          </li>
          <li>
            <t>Step 2, the API proxy server ask for multiple resource owners for the grant of the access of the protected data resources.</t>
          </li>
          <li>
            <t>Step 3, resource owners reply to the API server what authentication grant(e.g., authorization code) they need for the access of the required resource.</t>
          </li>
          <li>
            <t>Step 4, the API proxy server will gather messsages from different resource owners and reply to the AI agent containing multiple authorization grants from different resource owners. Alternatively, the resource owner 3 will replies to the agent with the authorization grant directly.</t>
          </li>
          <li>
            <t>Step 5, the AI agent communicates with different authorization servers with multiple authorization grants.</t>
          </li>
          <li>
            <t>Step 6, auth servers reply to the AI agent with the required access tokens.</t>
          </li>
          <li>
            <t>Step 7, AI agent replies to the API server with the required access tokens. Alternatively, it directly sends the access token to the resource server(resource server 3).</t>
          </li>
          <li>
            <t>Step 8, the API proxy server send different access tokens to different resource servers respectively.</t>
          </li>
          <li>
            <t>Step 9, resource servers send the protected data resources to the API proxy server. The resource server 3 directly sends the protected data resources to the AI agent.</t>
          </li>
          <li>
            <t>Step 10, the API proxy server replies to the AI agent with the information that it needs.</t>
          </li>
          <li>
            <t>Step 11, AI agent replies to the user with the answer.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="aauth-agent-obo-itself">
      <name>Aauth: Agent OBO Itself</name>
      <section anchor="example-case-1">
        <name>Example Case</name>
        <t>In addition to virtual AI agent, there is another type, physical AI agent. AI robots, embodied AI, and other AI terminals have differentiated capabilities to implement multiple jobs. For example, in a remote rescue case, an AI search and rescue vehicle, and an robot dog can be dynamically formed into a networked system. The robot dog can scan and transmit the live videos to remote console and control signals to the AI search and rescue vehicle, while the AI search and rescue vehicle can use its robotic arm to move obstacles based on the signals from the robot dog or the remote console. Some other similar cases are mentioned in <xref target="TR22.870"/>.<br/>
Compared to the aforementioned case in which the agent is OBO its user, the major difference in this case is that agent need identification of itself, that is the agent identification(AID). In previous case, agent can be assigned a Client ID(CID). The scope of its authority is determined by its user, and is less than its users' authority scope. While if agent is OBO itself, it is the user. So it has the same privilege as the user. How to define the AID needs further discussion and is out of the scope of this document.</t>
      </section>
      <section anchor="model-1">
        <name>Model</name>
        <t>The model of the agent OBO itself can be extended from<xref target="I-D.ietf-oauth-v2-1"/>. As shown in <xref target="agent-obo-itself"/>, the AI agent is the resource owner. When assigned with some specific tasks, it may enable some software functions, and then it will trigger the client within these software functions for authentication and authorization.</t>
        <figure anchor="agent-obo-itself">
          <name>AI Agent OBO Itself Workflow</name>
          <artwork><![CDATA[
 +---------+                               +---------------+
 |         |--(A)- Authorization Request ->|   Resource    |
 |         |                               |     Owner     |
 |         |<-(B)-- Authorization Grant ---|  (AI Agent or |
 |         |                               | Other owners) | 
 |         |                               +---------------+
 |         |
 |         |                               +---------------+
 |         |--(C)-- Authorization Grant -->| Authorization |
 | Client  |                               |     Server    |
 |         |<-(D)----- Access Token -------|               |
 |         |                               +---------------+
 |         |
 |         |                               +---------------+
 |         |--(E)----- Access Token ------>|    Resource   |
 |         |                               |     Server    |
 |         |<-(F)--- Protected Resource ---|               |
 +---------+                               +---------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="workflow-1">
        <name>Workflow</name>
        <t>Detailed workflow is similar to <xref target="I-D.ietf-oauth-v2-1"/>, and will not be stated in detail.</t>
      </section>
    </section>
    <section anchor="aauth-agent-obo-other-agents">
      <name>Aauth: Agent OBO Other Agent(s)</name>
      <section anchor="example-case-2">
        <name>Example Case</name>
        <t>This case is more complex, but may be required if AI agents have differentiated capabilities and need to collaborate to finish some jobs, whatever the agents are from intra-domain or inter-domain, which has been discussed in <xref target="I-D.rosenberg-ai-protocols"/>.<br/>
In this case, if one AI agent wants to access some protected data resources of other agents, or of the users of other agents. It needs the authorization from them. This is different compared to the situation that this agent only need to seek for grant from the user it represents.</t>
      </section>
      <section anchor="model-2">
        <name>Model</name>
        <t><xref target="agent-obo-other-agents"/> shows the model when multiple agents work collaboratively, and there will be a chained authentication and authorization workflow. Before AI Agent A requests AI agent B to help it implement a job, there should be prior knowledge that both agents need mutual trust. If they come from the same domain, whatever it is a task-wise domain created by a console(e.g., 5G/6G core) or a durable domain created by a web application, they need verification from the 5G/6G core or the web application administrator. If they come from different domains, they may need verification from an open platform that organize and issue the AIDs. There are some ongoing work defining AID<xref target="I-D.narajala-ans"/>,<xref target="I-D.narvaneni-agent-uri"/>. With this pre-verification, agents can communicate with each other. But when one agent(AI agent B) needs access of the protected data resource of the user of AI agent A or AI agent C itself, it still need temporary authentication and authorization. In this chained authentication and authorization workflow, the core idea here is to let the agent OBO user or the agent OBO itself always to communicate with the authorization server to get the access token.</t>
        <figure anchor="agent-obo-other-agents">
          <name>AI Agent OBO Other Agents Workflow</name>
          <artwork><![CDATA[
      +------+                                     
      | Auth |                                
      |Server|                              
      +-^-+--+                 +------+    3   +--------+
        | |                    |      +-------->Resource|
        | |                    |      <--------+Owner 1 |       
       7| |8             +----->  API |    4   +--------+
        | |              |     | Proxy|     
       ++-v--+           | +---|Server|   11   +--------+
       | AI  |           | |   |      +-------->Resource|                  
       |Agent|           | |   |      <--------+Server 1|
       |  C  |           | |   |      |    12  +--------+
       +-^-+-+           | |   +------+   
         | |         2,10| |         
         | |             | |5,13     
      6,9| |1,14         | |                  
 +----+  | |   +-----+   | |         
 |User|  | |   |     +---+ |                  
 |    |  | +--->     <-----+
 +-+^-+  +-----+     |          2             +--------+
   ||          |  AI +----------------------->|Resource|
  0||15        |Agent<------------------------+Owner 2 |
 +-v+--+       |  B  |          5             +--------+
 | AI  | 6,14  |     +-----------+     10     +--------+   
 |Agent<-------+     |           +----------->|Resource| 
 |  A  +------->     <------------------------+Server 2|
 |     |  1,9  +-----+              13        +--------+          
 +--^-++          
    | |                                                       
    | |          7               +------+                     
    | +--------------------------> Auth |                    
    +----------------------------+Server|                   
                       8         +------+                    
]]></artwork>
        </figure>
      </section>
      <section anchor="workflow-2">
        <name>Workflow</name>
        <t>The detailed workflow of <xref target="agent-obo-other-agents"/> is as follows:</t>
        <t>Step 0, a user asks its AI agent(AI agent A) for some help.</t>
        <t>Step 1, AI agent A redirects the help to Agent B when A is not capable, and Agent C asks for B's help too.</t>
        <t>Step 2, agent B ask API proxy server to call APIs. Agent may also request resource owner's grant for its protected data resources.</t>
        <t>Step 3, the API proxy server send requests to resource owner 1.</t>
        <t>Step 4, the resource owner 1 send access grant to the API proxy server.</t>
        <t>Step 5, the API proxy server and resource owner 2 send the access grant to AI agent B.</t>
        <t>Step 6, AI agent B redirects the the access grants to AI agent A or AI agent C, considering the resource belong to whom.</t>
        <t>Step 7, AI agent A and AI agent C send access grants to authorization servers.</t>
        <t>Step 8, authorization servers replies with authorization tokens.</t>
        <t>Step 9, Agent A and agent C pass the access tokens to agent B.</t>
        <t>Step 10, AI agent B passes the access tokens to API proxy server or resource owner 2, considering what resource agent B wants to access.</t>
        <t>Step 11, the API proxy server passes the access token to resource owner 1.</t>
        <t>Step 12, resource owner 1 gives the protected data resource to the API proxy server.</t>
        <t>Step 13, agent B gather the data resources from the API proxy server and resource owner 2.</t>
        <t>Step 14, agent B sends back the processing result to agent A or agent C.</t>
        <t>Step 15, agent A processes further and sends back the final result to the user.</t>
      </section>
    </section>
    <section anchor="considerations-on-other-important-factors">
      <name>Considerations on Other Important Factors</name>
      <section anchor="grant-dynamicity">
        <name>Grant Dynamicity</name>
        <t><xref target="RFC7591"/> mentions the mechasim to realize dynamic client registration. Whether and when to grant AI agents with short-lived or long-lived authentication and authorization may need further discussion, considering about various use cases that AI agents participant.</t>
      </section>
      <section anchor="specific-identity-for-ai-agent">
        <name>Specific Identity for AI Agent</name>
        <t>As the second and the third case mentions in the previous section, AI agents may have independent identities in ACN. The definition of AIDs is not within the scope of this document, but directly impacts the authentication and authorization methods.</t>
      </section>
      <section anchor="can-ai-agents-represent-users-to-consent-requests">
        <name>Can AI Agents Represent Users to Consent Requests?</name>
        <t>In the third case mentioned in this document when agent is OBO other agents. This document assumes that agent can represent its user to request for access tokens, while the choice on whether to consent requests(authorization grant) is still left to the user or the agent(agent C). But it may evole to the situation that AI agent can represent its user to give permission if there are some pre-validation on the content scope that AI agent can give external grants independently.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>There may exist security issues when spoofying AI agents seek for authentication and authorization for specific resources. Spoofying AI agents are created very similar to the validated AI agents. But they may hijack the access token to access the protected data resources from users or other agents. The methods to indentify and prevent these spoofying AI agents need further discussions.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7591">
          <front>
            <title>OAuth 2.0 Dynamic Client Registration Protocol</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Machulak" initials="M." surname="Machulak"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <date month="July" year="2015"/>
            <abstract>
              <t>This specification defines mechanisms for dynamically registering OAuth 2.0 clients with authorization servers. Registration requests send a set of desired client metadata values to the authorization server. The resulting registration responses return a client identifier to use at the authorization server and the client metadata values registered for the client. The client can then use this registration information to communicate with the authorization server using the OAuth 2.0 protocol. This specification also defines a set of common client metadata fields and values for clients to use during registration.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7591"/>
          <seriesInfo name="DOI" value="10.17487/RFC7591"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-oauth-v2-1">
          <front>
            <title>The OAuth 2.1 Authorization Framework</title>
            <author fullname="Dick Hardt" initials="D." surname="Hardt">
              <organization>Hellō</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <author fullname="Torsten Lodderstedt" initials="T." surname="Lodderstedt">
              <organization>SPRIND</organization>
            </author>
            <date day="28" month="May" year="2025"/>
            <abstract>
              <t>   The OAuth 2.1 authorization framework enables an application to
   obtain limited access to a protected resource, either on behalf of a
   resource owner by orchestrating an approval interaction between the
   resource owner and an authorization service, or by allowing the
   application to obtain access on its own behalf.  This specification
   replaces and obsoletes the OAuth 2.0 Authorization Framework
   described in RFC 6749 and the Bearer Token Usage in RFC 6750.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-v2-1-13"/>
        </reference>
        <reference anchor="I-D.rosenberg-ai-protocols">
          <front>
            <title>Framework, Use Cases and Requirements for AI Agent Protocols</title>
            <author fullname="Jonathan Rosenberg" initials="J." surname="Rosenberg">
              <organization>Five9</organization>
            </author>
            <author fullname="Cullen Fluffy Jennings" initials="C. F." surname="Jennings">
              <organization>Cisco</organization>
            </author>
            <date day="5" month="May" year="2025"/>
            <abstract>
              <t>   AI Agents are software applications that utilize Large Language
   Models (LLM)s to interact with humans (or other AI Agents) for
   purposes of performing tasks.  AI Agents can make use of resources -
   including APIs and documents - to perform those tasks, and are
   capable of reasoning about which resources to use.  To facilitate AI
   agent operation, AI agents need to communicate with users, and then
   interact with other resources over the Internet, including APIs and
   other AI agents.  This document describes a framework for AI Agent
   communications on the Internet, identifying the various protocols
   that come into play.  It introduces use cases that motivate features
   and functions that need to be present in those protocols.  It also
   provides a brief survey of existing work in standardizing AI agent
   protocols, including the Model Context Protocol (MCP), the Agent to
   Agent Protocol (A2A) and the Agntcy Framework, and describes how
   those works fit into this framework.  The primary objective of this
   document is to set the stage for possible standards activity at the
   IETF in this space.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-rosenberg-ai-protocols-00"/>
        </reference>
        <reference anchor="I-D.oauth-ai-agents-on-behalf-of-user">
          <front>
            <title>OAuth 2.0 Extension: On-Behalf-Of User Authorization for AI Agents</title>
            <author fullname="Thilina" initials="T." surname="Thilina">
              <organization>WSO2</organization>
            </author>
            <author fullname="Ayesha Dissanayaka" initials="A." surname="Dissanayaka">
              <organization>WSO2</organization>
            </author>
            <date day="8" month="May" year="2025"/>
            <abstract>
              <t>   This specification extends the OAuth 2.0 Authorization Framework
   [RFC6749] to enable AI agents to securely obtain access tokens for
   acting on behalf of users.  It introduces the *requested_actor*
   parameter in authorization requests to identify the specific agent
   requiring delegation and the *actor_token* parameter in token
   requests to authenticate the agent during the exchange of an
   authorization code for an access token.  The flow can be initiated by
   a resource server challenge, ensuring that user consent is obtained
   dynamically when access is attempted.  This extension ensures secure
   delegation with explicit user consent, streamlines the authorization
   flow, and enhances auditability through access token claims that
   document the delegation chain from the user to the agent via a client
   application.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-oauth-ai-agents-on-behalf-of-user-01"/>
        </reference>
        <reference anchor="I-D.patwhite-aauth">
          <front>
            <title>AAuth - Agentic Authorization OAuth 2.1 Extension</title>
            <author fullname="Pat White" initials="P." surname="White">
         </author>
            <date day="13" month="May" year="2025"/>
            <abstract>
              <t>   This document defines the *Agent Authorization Grant*, an OAuth 2.1
   extension for *confidential agent clients*—software or AI agents with
   long-lived identities—to request end-user consent and obtain access
   tokens via HTTP polling, Server-Sent Events (SSE), or WebSocket.  It
   is heavily inspired by the core dance of the OAuth 2.0 Device
   Authorization Grant (RFC 8628) but is tailored for agents either long
   lived identities, and introduces scoped, natural-language
   descriptions and a reason parameter provided by the agent.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-patwhite-aauth-00"/>
        </reference>
        <reference anchor="I-D.narajala-ans">
          <front>
            <title>Agent Name Service (ANS): A Universal Directory for Secure AI Agent Discovery and Interoperability</title>
            <author fullname="Ken Huang" initials="K." surname="Huang">
              <organization>DistributedApps.ai</organization>
            </author>
            <author fullname="Vineeth Sai Narajala" initials="V. S." surname="Narajala">
              <organization>Amazon Web Services</organization>
            </author>
            <author fullname="Idan Habler" initials="I." surname="Habler">
              <organization>Intuit</organization>
            </author>
            <author fullname="Akram Sheriff" initials="A." surname="Sheriff">
              <organization>Cisco Systems</organization>
            </author>
            <date day="16" month="May" year="2025"/>
            <abstract>
              <t>   The proliferation of AI agents requires robust mechanisms for secure
   discovery.  This document introduces the Agent Name Service (ANS), a
   novel architecture based on DNS addressing the lack of a public agent
   discovery framework.  ANS provides a protocol-agnostic registry
   mechanism that leverages Public Key Infrastructure (PKI) certificates
   for verifiable agent identity and trust.  The architecture features
   several key innovations: a formalized agent registration and renewal
   mechanism for lifecycle management; DNS-inspired naming conventions
   with capability-aware resolution; a modular Protocol Adapter Layer
   supporting diverse communication standards (A2A, MCP, ACP, etc.); and
   precisely defined algorithms for secure resolution.  This
   specification describes structured communication using JSON Schema
   and includes a comprehensive threat analysis.  The result is a
   foundational agent directory service protocol addressing the core
   challenges of secure discovery and interaction in multi-agent
   systems, paving the way for future interoperable, trustworthy, and
   scalable agent ecosystems.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-narajala-ans-00"/>
        </reference>
        <reference anchor="I-D.narvaneni-agent-uri">
          <front>
            <title>The agent:// Protocol -- A URI-Based Framework for Interoperable Agents</title>
            <author fullname="Yaswanth Narvaneni" initials="Y." surname="Narvaneni">
              <organization>Independent Researcher</organization>
            </author>
            <date day="21" month="April" year="2025"/>
            <abstract>
              <t>   This document defines the agent:// protocol, a URI template-based
   framework as described in RFC 6570 for addressing, invoking, and
   interoperating with autonomous and semi-autonomous software agents.
   It introduces a layered architecture that supports minimal
   implementations (addressing and transport) and extensible features
   (capability discovery, contracts, orchestration).  The protocol aims
   to foster interoperability among agents across ecosystems, platforms,
   and modalities, enabling composable and collaborative intelligent
   systems.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-narvaneni-agent-uri-01"/>
        </reference>
        <reference anchor="TR22.870">
          <front>
            <title>Study on 6G Use Cases and Service Requirements</title>
            <author>
              <organization>3GPP</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 300?>



  </back>
  <!-- ##markdown-source:
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
AA==

-->

</rfc>
