<?xml version="1.0" encoding="utf-8"?>
<?xml-model href="rfc7991bis.rnc"?>
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-diaconu-agents-authz-info-sharing-01" ipr="trust200902" submissionType="IETF" xml:lang="en" version="3">
  <front>
    <title abbrev="AuthZ Sharing for Agents">Cross-Domain AuthZ Information sharing for Agents</title>
    <seriesInfo name="Internet-Draft" value="draft-diaconu-agents-authz-info-sharing-01"/>
    <author fullname="Jean Diaconu" surname="Diaconu">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>Av. des Uttins 5</street>
          <city>ROLLE</city>
          <code>1180</code>
          <country>Switzerland</country>
        </postal>
        <email>jdiaconu@cisco.com</email>
      </address>
    </author>
    <author fullname="Marcelo Yannuzzi" surname="Yannuzzi">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>Av. des Uttins 5</street>
          <city>ROLLE</city>
          <code>1180</code>
          <country>Switzerland</country>
        </postal>
        <email>mayannuz@cisco.com</email>
      </address>
    </author>
    <author fullname="Herve Muyal" surname="Muyal">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>Av. des Uttins 5</street>
          <city>ROLLE</city>
          <code>1180</code>
          <country>Switzerland</country>
        </postal>
        <email>hmuyal@cisco.com</email>
      </address>
    </author>
    <author fullname="Frank Brockners" surname="Brockners">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>Hansaallee 249, 3rd Floor</street>
          <city>DUESSELDORF</city>
          <code>40549</code>
          <country>Germany</country>
        </postal>
        <email>fbrockne@cisco.com</email>
        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
    <author fullname="Nik Kale" surname="Kale">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>170 W Tasman Dr</street>
          <city>SAN JOSE, CA</city>
          <code>95134</code>
          <country>USA</country>
        </postal>
        <email>nikkal@cisco.com</email>
      </address>
    </author>
    <author fullname="Ankit Agarwal" surname="Ankit">
      <organization abbrev="Skyfire">Skyfire, Inc.</organization>
      <address>
        <postal>
          <city>Kentfield, CA</city>
          <country>USA</country>
        </postal>
        <email>ankit@skyfire.xyz</email>
      </address>
    </author>
    <author fullname="Jeffrey Hickman" surname="Hickman">
      <organization abbrev="Ory Corp">Ory Corp, Inc.</organization>
      <address>
        <postal>
          <street>15169 N Scottsdale Rd Suite 205</street>
          <city>Scottsdale, AZ</city>
          <code>85254</code>
          <country>USA</country>
        </postal>
        <email>jeff.hickman@ory.com</email>
      </address>
    </author>
    <author fullname="Amritha Lal" surname="Lal">
      <organization abbrev="AWS">Amazon Web Services</organization>
      <address>
        <postal>
          <city>Seattle, WA</city>
          <country>USA</country>
        </postal>
        <email>amrithak@amazon.com</email>
      </address>
    </author>
    <area>Security</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <abstract>
      <t>Distributed Multi-Agent Systems consist of Agents and MCP Servers operating across multiple administrative domains, each with its own Identity Providers (IdPs) and Authorization Servers (AS).</t>
      <t>This document discusses the challenges and solution approaches for sharing authorization information securely and flexibly across domains, including the use of dynamic identity, interoperable claims, and verifiable credentials.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Distributed Multi-Agent Systems, consisting of Agents and Model Context 
            Protocol (MCP) Servers, are increasingly deployed across multiple administrative 
            domains. Each domain typically operates its own Identity Providers (IdPs) and 
            Authorization Servers (AS), creating a fundamental challenge: how can an agent 
            from Organization A securely prove its identity and authorization to resources 
            in Organization B?</t>
      <t>While OAuth 2.0 and related specifications provide authorization 
            frameworks for human users and pre-registered clients, the emergence of 
            autonomous agent systems operating across organizational boundaries presents 
            new challenges that existing mechanisms do not fully address.</t>
      <t>This challenge is distinct from traditional cross-domain identity federation 
            for human users. Humans rarely delegate authority through multiple organizational 
            boundaries. Agents routinely do so--an orchestrator agent in Domain X may invoke a 
            tool agent in Domain Y, which accesses an MCP server in Domain Z. Existing 
            authorization mechanisms such as OAuth 2.0 Dynamic Client Registration 
            <xref target="RFC7591"/> and Token Exchange <xref target="RFC8693"/> assume 
            single-domain operation or pre-established relationships, and do not address the 
            dynamic, multi-hop delegation patterns that characterize modern agentic systems.</t>
      <t>This document analyzes the cross-domain agent authorization problem and 
            evaluates solution approaches. The proposed solution extends OAuth 2.0 Client-ID 
            Metadata <xref target="I-D.ietf-oauth-client-id-metadata-document"/> with W3C 
            Verifiable Credentials <xref target="W3C.VCDM2.0"/> to enable dynamic identity 
            establishment without pre-registration across domains, cryptographically verifiable 
            authorization claims that travel with the agent, multi-hop delegation with 
            monotonic scope narrowing and accountability chains, and selective disclosure 
            of sensitive authorization attributes.</t>
      <t>The document is structured as follows: <xref target="definitions"/> defines 
            key terminology. <xref target="use-cases"/> presents use cases demonstrating 
            cross-domain scenarios. <xref target="threat-model"/> identifies 
            threats specific to cross-domain authorization sharing. <xref target="requirements-summary"/> 
            establishes requirements and evaluates solution approaches. 
            <xref target="security-considerations"/> covers security considerations.</t>
      <t>Enterprise deployment of AI agents is moving faster than the identity and
authorization practices that govern them. Recent industry reporting, protocol
roadmap work, and public vulnerability disclosures point to the same gap: agents
are connected to production tools, data, and workflows without consistent
per-agent identity, scoped delegation, cross-domain authorization, or revocation
semantics. A February 2026 concept paper from the US National Cybersecurity
Center of Excellence proposes a demonstration project applying existing identity
and authorization standards, including OAuth and the Model Context Protocol, to
AI agents, which indicates that this gap is now a recognized standards problem
<xref target="NIST.NCCoE.AgentIdentity"/>.</t>
      <t>The scale of unauthenticated deployment is measurable. A 2026 measurement
study of remote MCP servers found that a large fraction expose tools without any
authentication, and that the OAuth deployments which do exist commonly carry
authentication flaws <xref target="MCP.AuthMeasurement"/>. This is the condition
this document addresses: when an agent in one domain presents itself to an
Authorization Server in another, identity and authorization information has to be
verifiable, not assumed.</t>
      <t>Between February and April 2026, several public incidents exercised the threat
categories described in this document. Autonomous agents obtained remote code
execution against production infrastructure, reached an internal AI platform's
database in under two hours, and exploited missing authentication in MCP server
implementations. These incidents are mapped to the threat model in
<xref target="empirical-validation"/>.</t>
    </section>
    <section anchor="conventions" title="Conventions Used in This Document">
      <t>
        The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY",
        and "OPTIONAL" in this document are to be interpreted as described
        in <xref target="RFC2119"/> and <xref target="RFC8174"/> when, and
        only when, they appear in all capitals, as shown here.
    </t>
    </section>
    <section anchor="definitions">
      <name>Abbreviations / Definitions</name>
      <dl>
        <dt>Agent</dt>
        <dd>An autonomous entity that performs tasks on behalf of a user or another program within a multi-agent system.</dd>
        <dt>MCP Server</dt>
        <dd>A program that exposes specific capabilities, like data access or tools, to AI models through the Model Context Protocol (MCP).</dd>
        <dt>AS (Authorization Server)</dt>
        <dd>A server that issues authorization tokens to clients after successfully authenticating them.</dd>
        <dt>IdP (Identity Provider)</dt>
        <dd>A service that creates, manages, and verifies digital identities for users and service users, often for accessing multiple applications and services.</dd>
        <dt>Subject</dt>
        <dd>The principal (user or service).</dd>
        <dt>Claim</dt>
        <dd>Essentially a piece of information asserted about a subject.</dd>
        <dt>Domain</dt>
        <dd>Scope over which a specific, uniform set of security policies and user management rules are enforced.</dd>
        <dt>VCDM 2.0</dt>
        <dd>Verifiable Credentials Data Model 2.0, a W3C standard for expressing verifiable credentials on the web.</dd>
        <dt>VC</dt>
        <dd>Verifiable Credential, a digital credential that is cryptographically secure and can be verified independently.</dd>
        <dt>SD-JWT</dt>
        <dd>Selective Disclosure JSON Web Token, a JWT that allows the holder to disclose only specific parts of the token.</dd>
        <dt>DID</dt>
        <dd>Decentralized Identifier, a new type of identifier that enables verifiable, self-sovereign digital identities.</dd>
      </dl>
    </section>
    <section anchor="use-cases">
      <name>Use Cases</name>
      <t>The following use cases demonstrate scenarios where cross-domain agent 
            authorization presents challenges not addressed by existing single-domain 
            mechanisms.</t>
      <section>
        <name>Cross-Domain Tool Invocation</name>
        <t>A coding assistant agent operated by Developer Tools Inc. needs to 
                invoke a code review tool provided by Code Analysis Corp. The tool is 
                exposed as an MCP Server protected by Code Analysis Corp's Authorization 
                Server.</t>
        <dl>
          <dt>Cross-Domain Challenge</dt>
          <dd>Developer Tools Inc.'s agent must present credentials that 
                    Code Analysis Corp's AS can verify, despite having no pre-existing 
                    trust relationship. The AS must determine what operations the agent 
                    may perform based on claims issued by a foreign domain.</dd>
          <dt>Requirements</dt>
          <dd>Verifiable agent and MCP server identity across domain boundaries, authorization 
                    claims that are interpretable by the receiving domain.</dd>
        </dl>
      </section>
      <section>
        <name>Enterprise Partnership Integration</name>
        <t>Company A partners with Company B to provide integrated customer support services. 
                Company A deploys a support agent that needs to access Company B's 
                customer ticketing system and knowledge base to resolve customer issues.</t>
        <dl>
          <dt>Cross-Domain Challenge</dt>
          <dd>Company A's agent authenticates using Company A's IdP and holds 
                    a Verifiable Credential issued by Company A. Company B's Authorization 
                    Server has no trust relationship with Company A's IdP--it cannot verify 
                    Company A's tokens. Company B needs a mechanism to verify the agent's 
                    identity and authorization claims without requiring bilateral federation 
                    setup for every partner.</dd>
          <dt>Requirements</dt>
          <dd>Dynamic identity verification across domains, verifiable compliance 
                    attestations, and scope restrictions that Company B's AS can enforce 
                    based on Company A's authorization grants.</dd>
        </dl>
      </section>
      <section>
        <name>Multi-Vendor Workflow Orchestration</name>
        <t>A security operations workflow involves agents from multiple vendors: 
                an orchestrator agent from Security Vendor X coordinates a threat 
                intelligence agent from Vendor Y and a remediation agent from Vendor Z. 
                The orchestrator must delegate appropriate permissions to each specialized 
                agent.</t>
        <dl>
          <dt>Cross-Domain Challenge</dt>
          <dd>The orchestrator in Domain X must delegate authority to agents 
                    in Domains Y and Z. Each receiving domain must verify the delegation 
                    chain, ensure the delegated scope does not exceed what the originating 
                    principal authorized, and maintain an auditable record of the 
                    delegation chain.
		Receiving domains must ensure that the authorization decisions do not 
		rely on revoked, suspended, or superseded delegations by performing
		runtime delegation chain verification according to the local policy.</dd>
          <dt>Requirements</dt>
          <dd>Multi-hop delegation with scope narrowing, cross-domain 
                        accountability chains, privacy-preserving identity claims, 
                        and domain-specific policy enforcement at each 
                        trust boundary crossing.</dd>
        </dl>
      </section>
      <section>
        <name>Supply Chain Data Exchange</name>
        <t>A manufacturer's inventory management agent needs to query suppliers' 
                availability systems. Multiple suppliers operate their own authorization 
                infrastructure. The agent must access each supplier's MCP servers with 
                appropriate credentials.</t>
        <dl>
          <dt>Cross-Domain Challenge</dt>
          <dd>Each supplier's AS must verify the manufacturer's agent without 
                    requiring manual pre-registration. Dynamic Client Registration 
                    <xref target="RFC7591"/> would require the agent to register separately 
                    with each supplier's AS, creating operational overhead and not providing 
                    cryptographic verification of the agent's authorization claims from its 
                    home domain. The agent may need different permission levels at different 
                    suppliers based on partnership agreements. Suppliers must be able to 
                    audit which manufacturer agents accessed their data.</dd>
          <dt>Requirements</dt>
          <dd>Dynamic agent provisioning across multiple foreign domains, 
                    verifiable identity without pre-registration, and domain-specific 
                    scope mappings.</dd>
        </dl>
      </section>
      <section>
        <name>Regulatory Compliance Across Jurisdictions</name>
        <t>A financial services agent operating in the EU needs to access data 
                from a partner institution in the US. Both jurisdictions have different 
                regulatory requirements.</t>
        <dl>
          <dt>Cross-Domain Challenge</dt>
          <dd>The receiving domain's AS must verify that the requesting agent's 
                    compliance attestations meet local policy requirements. The VC issued 
                    by the originating domain asserts compliance with GDPR; the receiving 
                    domain must determine whether this satisfies its own data handling 
                    requirements without assuming equivalence of compliance frameworks.</dd>
          <dt>Requirements</dt>
          <dd>Verifiable compliance attestations that receiving domains can 
                        evaluate against local policies,
                        and data sensitivity clearance, verification across regulatory boundaries.</dd>
        </dl>
      </section>
    </section>
    <section anchor="requirements-summary">
      <name>Requirements Summary</name>
      <t>A system for cross-domain sharing of authorization information of agents needs to meet the following set of requirements:</t>
      <ul>
        <li><strong>Dynamic Identity for Agents and MCP Servers:</strong> The Agents and MCP Servers can onboard dynamically and get an assigned identity in the IdP.</li>
        <li><strong>Interoperability Across Domains:</strong> The system must enable interaction between Agents across different domains.</li>
        <li><strong>Flexible Definition of Claims:</strong> Claims should be adaptable as they may vary from organization to organization. They may include information related to authorization, compliance requirements, chains of delegation, and other domain-specific concerns.</li>
        <li><strong>Dynamic Management of Authorization Information:</strong> The system must allow creation, removal, updating, and deletion of authorization information for agents, as agents can be highly dynamic.</li>
        <li><strong>Security and Privacy:</strong> Ensuring secure and private sharing of authorization information across domains.</li>
        <li><strong>Compliance and Auditability:</strong> Support for compliance with regulatory standards and auditability of authorization exchanges.</li>
      </ul>
    </section>
    <section anchor="solution-approaches">
      <name>Solution Approaches</name>
      <section>
        <name>Solution Approach 1: Dynamic Client Registration (RFC 7591)</name>
        <t><strong>Description:</strong> Dynamic Client Registration as outlined in <xref target="RFC7591"/> allows clients to register with an AS dynamically, facilitating the management of client credentials and metadata.</t>
        <t>
          <strong>Discussion:</strong>
        </t>
        <table>
          <thead>
            <tr>
              <th>Requirement</th>
              <th>Met or Partially Met</th>
              <th>Not Met</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>Dynamic Identity for Agents and MCP Servers</td>
              <td>Met</td>
              <td/>
            </tr>
            <tr>
              <td>Interoperability Across Domains</td>
              <td>Partially Met (Granted by the Dynamic Registration, however no common ground between AS)</td>
              <td/>
            </tr>
            <tr>
              <td>Flexible Definition of Claims</td>
              <td/>
              <td>Not Met (OAuth2 claims only)</td>
            </tr>
            <tr>
              <td>Dynamic Management of Authorization Information</td>
              <td/>
              <td>Not Met (Delete or Update not supported)</td>
            </tr>
            <tr>
              <td>Security and Privacy</td>
              <td/>
              <td>Not Met (Claims are shared but no common schema)</td>
            </tr>
            <tr>
              <td>Compliance and Auditability</td>
              <td>Partially Met (Claims are shared, APIs are auditable, but no regulatory standards are defined for the schema)</td>
              <td/>
            </tr>
          </tbody>
        </table>
      </section>
      <section>
        <name>Solution Approach 2: SCIM extensions</name>
        <t><xref target="I-D.abbey-scim-agent-extension"/> proposes extending the SCIM (System for Cross-Domain Identity Management) protocol to standardize the provisioning, management, and governance of AI agents and other digital workers.</t>
        <t><xref target="I-D.wahl-scim-agent-schema"/> is a companion document to the draft-abbey-scim-agent-extension. Its purpose is to define the specific SCIM schema and attributes required to represent AI agents (digital workers) and agentic applications within the SCIM framework.</t>
        <t><strong>Description:</strong> Provision Agents / MCP Servers through a SCIM extension.</t>
        <t>
          <strong>Discussion:</strong>
        </t>
        <table>
          <thead>
            <tr>
              <th>Requirement</th>
              <th>Met or Partially Met</th>
              <th>Not Met</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>Dynamic Identity for Agents and MCP Servers</td>
              <td>Partially Met (SCIM support is limited and with constraints, example for Azure: “Subsequent syncs are triggered every 20-40 minutes”.)</td>
              <td/>
            </tr>
            <tr>
              <td>Interoperability Across Domains</td>
              <td>Partially Met (SCIM is supported and schema is well defined)</td>
              <td/>
            </tr>
            <tr>
              <td>Flexible Definition of Claims</td>
              <td>Met (Defined by the schema)</td>
              <td/>
            </tr>
            <tr>
              <td>Dynamic Management of Authorization Information</td>
              <td>Partially Met (SCIM support is limited and with constraints, example for Azure: “Subsequent syncs are triggered every 20-40 minutes”.)</td>
              <td/>
            </tr>
            <tr>
              <td>Security and Privacy</td>
              <td>Partially Met (A schema is defined but Selective Disclosure not supported)</td>
              <td/>
            </tr>
            <tr>
              <td>Compliance and Auditability</td>
              <td>Partially Met (Claims are shared, APIs are auditable, but no regulatory standards are defined for the schema)</td>
              <td/>
            </tr>
          </tbody>
        </table>
      </section>
      <section>
        <name>Solution Approach 3: Client-ID Metadata</name>
        <t><strong>Description:</strong> Client ID Metadata <xref target="I-D.ietf-oauth-client-id-metadata-document"/> is a method for OAuth clients to identify themselves using a URL, which points to a JSON file containing their OAuth metadata. Instead of requiring pre-registration, an authorization server can fetch this JSON document at the client's provided URL to provision the identity.</t>
        <t>
          <strong>Discussion:</strong>
        </t>
        <table>
          <thead>
            <tr>
              <th>Requirement</th>
              <th>Met or Partially Met</th>
              <th>Not Met</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>Dynamic Identity for Agents and MCP Servers</td>
              <td>Met</td>
              <td/>
            </tr>
            <tr>
              <td>Interoperability Across Domains</td>
              <td>Met</td>
              <td/>
            </tr>
            <tr>
              <td>Flexible Definition of Claims</td>
              <td/>
              <td>Not Met* (client_id is common, all the rest is limited to OAuth2 claims)</td>
            </tr>
            <tr>
              <td>Dynamic Management of Authorization Information</td>
              <td>Met</td>
              <td/>
            </tr>
            <tr>
              <td>Security and Privacy</td>
              <td>Partially Met** (A schema is defined but Selective Disclosure not supported)</td>
              <td/>
            </tr>
            <tr>
              <td>Compliance and Auditability</td>
              <td>Partially Met** (Claims are shared, APIs are auditable, but no regulatory standards are defined for the schema)</td>
              <td/>
            </tr>
          </tbody>
        </table>
        <t><strong>*Flexible Definition of Claims:</strong> The OAuth claims in the draft follow the claims exposed and defined by IANA OAuth Parameters. Hence, the metadata fields are limited to a fixed set of claims. This makes it difficult to convey richer features about the client, including provenance details, compliance attestations, or contextual trust scores without introducing vendor-specific extensions, thereby reducing portability and interoperability.</t>
        <t><strong>**Security and Privacy, Compliance and Auditability:</strong> All metadata is published to a publicly accessible endpoint. There is no native ability to keep certain attributes private, apply selective disclosure, or restrict visibility based on trust relationships. Sensitive operational data or compliance-related data must be handled outside the metadata framework, leading to fragmented trust models. There is no mechanism for revocation and expiration.</t>
      </section>
      <section>
        <name>Solution Approach 4: Client-ID Metadata + W3C Verifiable Credentials Extension</name>
        <figure>
          <name>Client-ID Metadata with VC Verification Flow</name>
          <artwork type="ascii-art"><![CDATA[
Agent (Client)             AuthZ Server (AS)         Metadata Endpoint
      |                            |                      |
      | 1. Authorization Request   |                      |
      |    (client_id = URL)       |                      |
      |--------------------------->|                      |
      |                            |                      |
      |                            | 2. HTTP GET (URL)    |
      |                            |--------------------->|
      |                            |                      |
      |                            | 3. Returns Metadata  |
      |                            |    (JWKS + "vc+jwt") |
      |                            |<---------------------|
      |                            |                      |
      |                            | 4. Validate Metadata |
      |                            |    & Verify VC Signature (JWKS)
      |                            |                      |
]]></artwork>
        </figure>
        <t><strong>Description:</strong> The proposed solution is based on Solution 3, but enhances the supported claims with a new claim, "vc+jwt", based on the Verifiable Credentials Data Model 2.0 from W3C.</t>
        <dl>
          <dt>vc+jwt</dt>
          <dd>A standard method used in decentralized identity to package and secure a digital credential. The Verifiable Credential (VC), the actual data proving a fact (e.g., identity or degree), is encapsulated within a JSON Web Token (JWT), which provides a cryptographic signature from the issuer. This signature allows any third party (the Verifier) to instantly confirm the credential's authenticity and integrity. Modern formats like SD-JWT VC further enhance this by enabling the holder to share only specific parts of the credential (Selective Disclosure) to protect privacy.</dd>
        </dl>
        <t>
          <strong>Discussion:</strong>
        </t>
        <table>
          <thead>
            <tr>
              <th>Requirement</th>
              <th>Met or Partially Met</th>
              <th>Not Met</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>Dynamic Identity for Agents and MCP Servers</td>
              <td>Met</td>
              <td/>
            </tr>
            <tr>
              <td>Interoperability Across Domains</td>
              <td>Met (1)</td>
              <td/>
            </tr>
            <tr>
              <td>Flexible Definition of Claims</td>
              <td>Met (2)</td>
              <td/>
            </tr>
            <tr>
              <td>Dynamic Management of Authorization Information</td>
              <td>Met</td>
              <td/>
            </tr>
            <tr>
              <td>Security and Privacy</td>
              <td>Met (3)</td>
              <td/>
            </tr>
            <tr>
              <td>Compliance and Auditability</td>
              <td>Met (4)</td>
              <td/>
            </tr>
          </tbody>
        </table>
        <t>
          <strong>Detailed explanations:</strong>
        </t>
        <t>The W3C Verifiable Credentials Data Model 2.0 addresses the shortcomings of the previous Solution 3, by introducing a cryptographically verifiable and standards-based way to assert identities, capabilities, and compliance attestations. It supports selective disclosure to protect sensitive information, enables time-bound and revocable authorizations, and ensures provenance tracking for audit and regulatory compliance. They are part of a broader decentralized identity (DID) specification.</t>
        <t>Using the W3C Verifiable Credentials Data Model 2.0 for Agents, MCP Clients, and MCP Servers provides a standardized, cryptographically secure way to establish trust, delegate authority, and ensure interoperability across different systems.</t>
        <t>It enables Agents, MCP Clients, and MCP Servers to prove, among other things, their identities, identity issuers and provenance, supported skills and permitted actions through verifiable proofs, including support for fine-grained and time-bound access control, while maintaining transparency enabling audit trails for compliance.</t>
        <t>Additionally, it enhances privacy through selective disclosure and privacy-preserving proofs (e.g., allowing Agents to prove skills and authorized actions without exposing unnecessary details).</t>
        <t>The Verifiable Credentials Data Model 2.0 is a W3C standard that fits the needs expressed above:</t>
        <t><strong>(1) Enhanced Interoperability:</strong> VCDM 2.0 provides a standardized, extensible way to express identities, capabilities, and compliance data across different systems. Its use of DIDs and schema-governed claims ensures that Agents, MCP Clients, and MCP Servers can verify and exchange trust information, enabling consistent interoperability across domains and platforms.</t>
        <t><strong>(2) Flexible Definition of Claims:</strong> VCDM 2.0 allows arbitrary, schema-governed claims that can represent complex concepts such as provenance, software supply-chain attestations (e.g., SLSA), security posture, audit certifications (SOC2, ISO-27001), or dynamic trust signals. These claims can be extended without breaking interoperability, thanks to widely adopted JSON-LD and schema registries.</t>
        <t><strong>(3) Security and Privacy:</strong> Credentials are signed using verifiable cryptographic proofs (e.g., JSON Web Signatures, Data Integrity proofs). This ensures that Agents, MCP clients, and MCP servers can verify the authenticity of claims without relying solely on HTTPS endpoints or centralized registries. Through techniques like BBS+ signatures, holders can disclose only the subset of claims required for a given authorization flow. This is essential for scenarios where Agents must prove capabilities (e.g., "I'm allowed to execute this skill") without revealing unnecessary or sensitive identity attributes.</t>
        <t><strong>(4) Compliance and Auditability:</strong> VCDM 2.0 enables cryptographically verifiable audit trails by binding each credential to an issuer, timestamp, and revocation status. Compliance attestations can be embedded directly in credentials, and real-time revocation checks ensure they remain valid. This provides trustworthy provenance, regulatory-grade accountability, and reliable lifecycle tracking across distributed systems.</t>
        <section anchor="delegation-semantics" numbered="true" toc="default">
          <name>Delegation Semantics for Cross-Domain Multi-Agent Workflows</name>
          <t>Multi-agent systems frequently involve chains of delegation where Agent A 
                    invokes Agent B, which may invoke Agent C, potentially spanning multiple 
                    administrative domains. This section defines authorization semantics for such 
                    delegation chains, addressing the novel challenges of cross-domain delegation.</t>
          <t>Humans rarely delegate authority through multiple levels across 
                    organizational boundaries. Agents routinely do so. Existing delegation 
                    mechanisms (<xref target="RFC8693"/> Token Exchange 'act' claims) assume 
                    single-domain operation and do not address cross-domain VC-based delegation 
                    with verifiable accountability chains.</t>
          <section anchor="delegation-models" numbered="true" toc="default">
            <name>Delegation Models</name>
            <t>This specification supports two delegation models:</t>
            <dl>
              <dt>Direct Invocation</dt>
              <dd>Agent A directly invokes MCP Server M using A's own credentials. 
                            No delegation occurs; authorization is based solely on A's VC.</dd>
              <dt>Delegated Invocation (Cross-Domain)</dt>
              <dd>Agent A in Domain X invokes Agent B in Domain Y to perform a task. 
                            B acts on A's behalf (and transitively, on behalf of A's originating 
                            principal) when accessing resources. The authorization decision considers 
                            both A's delegation grant and B's own credentials, applying Domain Y's 
                            policies.</dd>
            </dl>
            <figure anchor="cross-domain-delegation-flow">
              <name>Cross-Domain Delegation Flow</name>
              <artwork><![CDATA[
Domain X                          |  Domain Y
                                  |
+-----------+   +---------+       |  +---------+   +--------------+
| Principal |   | Agent A |       |  | Agent B |   | MCP Server M |
|     P     |   |         |       |  |         |   |              |
+-----------+   +---------+       |  +---------+   +--------------+
      |              |            |       |               |
      | 1. Task      |            |       |               |
      |------------->|            |       |               |
      |              |            |       |               |
      |              | 2. Delegate + VC(A)|               |
      |              |------------|------>|               |
      |              |            |       |               |
      |              |            |       | 3. Request    |
      |              |            |       |    + VC(B)    |
      |              |            |       |    + Deleg(A) |
      |              |            |       |-------------->|
      |              |            |       |               |
      |              |            |       |  4. Verify chain
      |              |            |       |  5. Apply local policy
      |              |            |       |  6. Authorize
]]></artwork>
            </figure>
          </section>
          <section anchor="scope-derivation" numbered="true" toc="default">
            <name>Scope Derivation Rules</name>
            <t>When Agent A delegates to Agent B (potentially across domains), B's 
                        effective scope MUST be computed as the intersection of:</t>
            <ol>
              <li>A's delegatable scope: The subset of A's permissions that A is 
                            authorized to delegate</li>
              <li>B's intrinsic scope: The permissions B holds in its own VC</li>
              <li>Explicit delegation grant: What A actually delegated to B for this 
                            invocation</li>
              <li>Receiving domain policy: The maximum scope the receiving domain 
                            permits for this cross-domain delegation</li>
            </ol>
            <figure anchor="scope-formula">
              <name>Scope Derivation Formula</name>
              <artwork><![CDATA[
Effective_Scope(B) = A.delegatable_scope
                     INTERSECT B.intrinsic_scope
                     INTERSECT Delegation.granted_scope
                     INTERSECT Receiving_Domain_Policy
]]></artwork>
            </figure>
            <t>This ensures:</t>
            <ul>
              <li>B cannot exceed A's authority (no privilege amplification)</li>
              <li>B cannot exceed its own authority (intrinsic limits apply)</li>
              <li>A can further restrict B for specific tasks (explicit grant)</li>
              <li>The receiving domain retains sovereignty over its resources 
                            (local policy)</li>
            </ul>
            <t>Implementations MUST enforce monotonic scope narrowing: at each 
                        delegation step, effective scope can only decrease or remain the same, 
                        never increase.</t>
            <t>This intersection semantics aligns with capability-based security 
                        principles (see: Mark Miller's Principle of Least Authority, Google 
                        Macaroons, Biscuit authorization tokens) and extends <xref target="RFC8693"/> 
                        Token Exchange delegation semantics to cross-domain VC-based scenarios.</t>
          </section>
          <section anchor="accountability-chain" numbered="true" toc="default">
            <name>Accountability Chain Construction</name>
            <t>Each delegation step MUST produce a verifiable record enabling 
                        cross-domain forensic reconstruction.To support revocation and 
			scope-change handling, delegation records SHOULD enable downstream verifiers
			to identify and validate upstream delegation elements so that authorization decisions
			do not depend on revoked or superseded delegation claims.  The delegation record MUST include:</t>
            <table anchor="delegation-record-fields">
              <name>Delegation Record Fields</name>
              <thead>
                <tr>
                  <th>Field</th>
                  <th>Description</th>
                  <th>Cross-Domain Relevance</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td>delegator_id</td>
                  <td>Agent A's id from its VC</td>
                  <td>Enables tracing to originating domain</td>
                </tr>
                <tr>
                  <td>delegator_domain</td>
                  <td>Domain that issued A's VC</td>
                  <td>Identifies trust relationship to verify</td>
                </tr>
                <tr>
                  <td>delegatee_id</td>
                  <td>Agent B's id from its VC</td>
                  <td>Identifies receiving agent</td>
                </tr>
                <tr>
                  <td>delegatee_domain</td>
                  <td>Domain that issued B's VC</td>
                  <td>Identifies receiving domain</td>
                </tr>
                <tr>
                  <td>timestamp</td>
                  <td>Time of delegation</td>
                  <td>Temporal ordering for forensics</td>
                </tr>
                <tr>
                  <td>granted_scope</td>
                  <td>Scopes delegated</td>
                  <td>Audit of intended authorization</td>
                </tr>
                <tr>
                  <td>expiration</td>
                  <td>Delegation validity period</td>
                  <td>MUST NOT exceed delegator's VC expiration</td>
                </tr>
                <tr>
                  <td>chain_hash</td>
                  <td>Cryptographic binding to prior chain</td>
                  <td>Ensures chain integrity across domains</td>
                </tr>
              </tbody>
            </table>
            <t>The complete accountability chain enables:</t>
            <ol>
              <li>Cross-domain attribution: Determining which principal originated a 
                            request that traversed multiple domains</li>
              <li>Forensic reconstruction: Rebuilding the sequence of delegations 
                            across domain boundaries</li>
              <li>Coordinated revocation: Identifying downstream delegations in other 
                            domains that must be invalidated</li>
            </ol>
          </section>
          <section anchor="delegation-depth" numbered="true" toc="default">
            <name>Delegation Depth Limits</name>
            <t>Implementations SHOULD enforce maximum delegation depth. Cross-domain 
                        delegations SHOULD count toward depth limits regardless of whether they're 
                        same-domain or cross-domain.</t>
            <t>Receiving domains MAY impose stricter depth limits than the originating 
                        domain. When a delegation would exceed the receiving domain's depth limit, 
                        the AS MUST reject the request with an error indicating the depth 
                        violation.</t>
          </section>
          <section anchor="delegation-vc-claims" numbered="true" toc="default">
            <name>Delegation Claims in VCs</name>
            <t>To express delegation authority in VCs, the following claims are defined 
                        for credentialSubject:</t>
            <figure anchor="delegation-claims-example">
              <name>Delegation Claims Example</name>
              <sourcecode type="json"><![CDATA[
{
  "credentialSubject": {
    "id": "https://example.com/agents/agent-a",
    "delegation": {
      "permitted": true,
      "maxDepth": 2,
      "crossDomainDelegation": {
        "permitted": true,
        "allowedDomains": ["partner.example.org"],
        "deniedDomains": ["competitor.example.com"]
      },
      "allowedDelegateeTypes": ["tool-agent", "workflow-agent"],
      "scopeRestrictions": {
        "nonDelegatable": ["admin:*", "pii:write"],
        "crossDomainNonDelegatable": ["internal:*"]
      }
    }
  }
}
]]></sourcecode>
            </figure>
            <dl>
              <dt>delegation.permitted</dt>
              <dd>Boolean indicating whether this agent may delegate. Default: false.</dd>
              <dt>delegation.maxDepth</dt>
              <dd>Maximum additional delegation hops this agent may initiate. 
                            Default: 0.</dd>
              <dt>delegation.crossDomainDelegation.permitted</dt>
              <dd>Whether cross-domain delegation is allowed at all.</dd>
              <dt>delegation.crossDomainDelegation.allowedDomains</dt>
              <dd>Domains to which delegation is permitted (wildcards allowed).</dd>
              <dt>delegation.scopeRestrictions.crossDomainNonDelegatable</dt>
              <dd>Scopes that may be delegated within the same domain but MUST NOT be 
                            delegated across domain boundaries.</dd>
            </dl>
          </section>
        </section>
        <section anchor="vc-profile" numbered="true" toc="default">
          <name>Agent Authorization Verifiable Credential Profile</name>
          <t>This section defines a Verifiable Credential profile that enables 
                    interoperable cross-domain agent authorization. The profile specifies claims 
                    that Authorization Servers in different domains can reliably interpret.</t>
          <t>W3C VCDM 2.0 is intentionally flexible. For cross-domain interoperability, 
                    domains must agree on claim semantics. This profile provides that common 
                    language.</t>
          <t>The claims in this profile are defined at the top level of the credential
          subject. They can be carried as plain JWT claims for direct identity presentation,
          or wrapped in a VC for cross-domain use where selective disclosure, revocation,
          and issuer-independent verification are required. This document specifies the
          claim hierarchy, not an exhaustive set of nested fields, so that implementations
          can adopt the profile without committing to a specific serialization of every
          attribute.</t>
          <section anchor="profile-objectives" numbered="true" toc="default">
            <name>Profile Objectives</name>
            <t>The Agent Authorization VC Profile (AAVC) enables:</t>
            <ul>
              <li>Cross-domain interoperability: ASs in different domains can parse 
                            and evaluate the same VC</li>
              <li>Semantic clarity: Claim meanings are defined, reducing policy skew 
                            risk</li>
              <li>Extensibility: Organizations can add custom claims without breaking 
                            base interoperability</li>
              <li>Selective disclosure compatibility: Claims are structured to support 
                            SD-JWT VC presentation</li>
            </ul>
          </section>
          <section anchor="required-claims" numbered="true" toc="default">
            <name>Required Claims for Cross-Domain Interoperability</name>
            <t>The credentialSubject MUST include these claims for a VC to be 
                        recognized across domains:</t>
            <dl>
              <dt>id (required)</dt>
              <dd>Globally unique identifier for the agent. SHOULD be a dereferenceable 
                            URI pointing to client-id metadata.</dd>
              <dt>agentType (required)</dt>
              <dd>
                <t>Classification of the agent. Receiving domains use this to apply 
                            type-specific policies. Implementations MUST support:</t>
                <ul>
                  <li>tool-agent: Provides specific tool/skill capabilities</li>
                  <li>orchestrator-agent: Coordinates other agents</li>
                  <li>workflow-agent: Executes multi-step workflows</li>
                  <li>system-agent: Long-running infrastructure agent</li>
                  <li>ephemeral-agent: Short-lived, single-task</li>
                </ul>
              </dd>
              <dt>authorizedScopes (required)</dt>
              <dd>Authorization scopes this agent may request. Receiving domains map 
                            these to local authorization policies.</dd>
              <dt>issuerDomain (required)</dt>
              <dd>Administrative domain of the credential issuer. Receiving ASs use 
                            this to look up trust relationships and policy mappings.</dd>
            </dl>
          </section>
          <section anchor="recommended-claims" numbered="true" toc="default">
            <name>Recommended Claims for Production Deployments</name>
            <dl>
              <dt>dataSensitivityClearance (recommended)</dt>
              <dd>
                <t>Maximum data sensitivity level this agent may access. Standard 
                            values:</t>
                <ul>
                  <li>public - Publicly available information</li>
                  <li>internal - Organization-internal, non-sensitive</li>
                  <li>confidential - Business-sensitive information</li>
                  <li>restricted - Highly sensitive, need-to-know basis</li>
                  <li>regulated - Subject to regulatory controls (PII, PHI, PCI)</li>
                </ul>
              </dd>
              <dt>complianceAttestations (recommended)</dt>
              <dd>Compliance certifications relevant to cross-domain trust decisions. 
                            Should include standard, scope, validUntil, and optionally 
                            certificationBody.</dd>
              <dt>operationalConstraints (recommended)</dt>
              <dd>Runtime constraints that receiving domains MAY enforce, including 
                            maxConcurrentSessions, maxRequestsPerMinute, allowedTimeWindows, and 
                            geofence restrictions.</dd>
              <dt>delegation (recommended)</dt>
              <dd>Delegation permissions as defined in 
                            <xref target="delegation-vc-claims"/>.</dd>
            </dl>
          </section>
          <section anchor="extension-mechanism" numbered="true" toc="default">
            <name>Extension Mechanism</name>
            <t>Organizations MAY extend the profile with additional claims by:</t>
            <ol>
              <li>Defining a JSON-LD context document for the extension</li>
              <li>Including the extension context URI in the VC's @context array</li>
              <li>Adding extension claims under a namespace prefix</li>
            </ol>
            <t>Implementations receiving VCs with unrecognized claims SHOULD:</t>
            <ul>
              <li>Ignore unknown claims (do not reject the VC)</li>
              <li>Log unrecognized claims for operational visibility</li>
              <li>NOT make authorization decisions based on claims they cannot 
                            interpret</li>
            </ul>
          </section>
          <section anchor="interop-requirements" numbered="true" toc="default">
            <name>Interoperability Requirements</name>
            <t>For cross-domain interoperability, implementations:</t>
            <t>MUST:</t>
            <ul>
              <li>Support required claims (id, agentType, authorizedScopes, 
                            issuerDomain)</li>
              <li>Recognize the AgentAuthorizationCredential type</li>
              <li>Verify the credential proof before processing claims</li>
              <li>Reject VCs missing required claims</li>
            </ul>
            <t>SHOULD:</t>
            <ul>
              <li>Support recommended claims</li>
              <li>Implement selective disclosure for cross-domain presentations</li>
              <li>Maintain logs of cross-domain VC presentations</li>
            </ul>
            <t>MAY:</t>
            <ul>
              <li>Define and process organization-specific extensions</li>
              <li>Implement additional validation beyond profile requirements</li>
            </ul>
          </section>
        </section>
      </section>
      <section anchor="solution-comparison" numbered="true" toc="default">
        <name>Relationship to JWT Profile Approaches</name>
        <t>Other work defines JWT profiles with predefined claims for agent and
        principal identity, for example a profile that carries agent, agent platform,
        and human identity claims as typed JSON in a signed JWT
        <xref target="I-D.skyfire-kyapayprofile"/>. That approach uses standard JWT
        claims without a JSON-LD context or a Verifiable Credential proof structure.</t>
        <t>A JWT profile of that kind fits direct identity presentation, where an agent
        asserts its identity and its principal's identity to a single service endpoint.
        Validation follows ordinary JWT processing and no VC infrastructure is
        needed.</t>
        <t>The VC-based approach in Solution Approach 4 targets cross-domain
        authorization, where an Authorization Server in one domain evaluates a credential
        issued in another domain without a direct trust relationship to the issuer's
        token endpoint. The proof is bound to the credential rather than to the transport
        or the issuing endpoint. This allows selective disclosure, revocation, and
        verification by a party that does not trust the issuer's infrastructure
        directly.</t>
        <t>The approaches are complementary. The claim set defined by the Agent
        Authorization VC Profile can be carried as plain JWT claims for direct
        presentation, or wrapped in a VC for cross-domain use where the additional
        properties are needed. An agent can hold both forms. The choice depends on the
        deployment context described in <xref target="deployment-levels"/>.</t>
      </section>
    </section>
    <section anchor="example" numbered="true" toc="default">
      <name>Example</name>
      <t>This section provides illustrative examples of how Client-ID Metadata can be extended with Verifiable Credentials for agent identity. These examples demonstrate the recommended Approach 4 and show how the concepts apply to scenarios similar to the travel booking use case described earlier. These examples are non-normative and intended to demonstrate the concepts discussed in this document.</t>
      <section>
        <name>Client-ID Metadata Example</name>
        <t>The following example shows OAuth client metadata that includes a Verifiable Credential in the "vc+jwt" field:</t>
        <sourcecode name="metadata-example.json" type="json"><![CDATA[
{
  "client_id": "https://agents.example.com/agent-001/metadata.json",
  "client_name": "Customer Service Agent 001",
  "jwks_uri": "https://agents.example.com/agent-001/jwks.json",
  "token_endpoint_auth_method": "private_key_jwt",
  "grant_types": ["client_credentials"],
  "scope": "read:orders write:tickets",
  "vc+jwt": "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJAY29udGV4dCI6W..."
}
]]></sourcecode>
        <t>The "vc+jwt" field contains a JWT-encoded Verifiable Credential. The actual JWT would be significantly longer and contain the complete credential structure shown in the next subsection.</t>
      </section>
      <section>
        <name>Verifiable Credential Example</name>
        <t>The following example shows the decoded structure of a Verifiable Credential for an agent (before JWT encoding):</t>
        <sourcecode name="vc-example.json" type="json"><![CDATA[
{
  "@context": [
    "https://www.w3.org/2018/credentials/v1",
    "https://example.org/agent-credentials/v1"
  ],
  "type": ["VerifiableCredential", "AgentIdentityCredential"],
  "issuer": "did:web:issuer.example.com",
  "issuanceDate": "2025-01-15T10:30:00Z",
  "expirationDate": "2026-01-15T10:30:00Z",
  "credentialSubject": {
    "id": "https://agents.example.com/agent-001/metadata.json",
    "agentName": "Customer Service Agent 001",
    "agentVersion": "2.1.0",
    "agentType": "customer-service",
    "owner": "did:web:example.com",
    "authorizedCapabilities": [
      "order-lookup",
      "ticket-creation",
      "customer-notification"
    ],
    "delegatedCredentials":[
      {
	"id": "https://agents.partner.com/agent-111/metadata.json",
     	"agentName":"Sec Agent 111",
	"delegatedBy":"https://agents.example.com/agent-001/metadata.json",
	"delegationChain": [
		"urn:uuid:*****",
		"urn:uuid:***"
    	],
	"scope": "read:sec-remediate:isolations",
	"authorizedCapabilities": [
		"enrichment",
		"isolation-request"
    	],
    "constraints": {
      "dpopNonceRequired": true
	}
      }
    ],
    "complianceFrameworks": ["SOC2-TypeII", "ISO-27001"],
    "delegationLevel": 1,
    "maxDelegationDepth": 2
  },
  "credentialStatus": {
    "id": "https://issuer.example.com/status/2024/12345",
    "type": "StatusList2021Entry",
    "statusPurpose": "revocation",
    "statusListIndex": "12345",
    "statusListCredential": "https://issuer.example.com/status/2024"
  }
}
]]></sourcecode>
        <t>Note: The actual credential would include a "proof" section with cryptographic signatures. The proof section is omitted here for clarity, as it would add significant length to the example. The proof structure varies depending on the signature suite used (e.g., Ed25519Signature2020, JsonWebSignature2020).</t>
      </section>
    </section>
    <section anchor="related-work" numbered="true" toc="default">
      <name>Related Work</name>
      <t>Several efforts address adjacent parts of the agent authorization problem.</t>
      <t><xref target="I-D.klrc-aiagent-auth"/> describes agent authentication and
      authorization using a WIMSE-based architecture and OAuth 2.0. It works at the
      protocol flow layer, covering identity chaining and token exchange. This document
      works at the credential layer, covering the claims carried in client-id metadata.
      The two address different layers of the same problem.</t>
      <t><xref target="I-D.skyfire-kyapayprofile"/> defines a JWT profile for agent
      identity and payment tokens. The relationship to the VC-based approach is
      discussed in <xref target="solution-comparison"/>.</t>
      <t>Academic analysis of agent and tool-protocol security supports the threat
      categories in this document, including formal study of protocol-level
      authentication gaps <xref target="BreakingTheProtocol"/> and measurement of
      authentication weaknesses in deployed servers <xref target="MCP.AuthMeasurement"/>.
      Work on authenticated delegation for agents extends OAuth and OpenID Connect with
      agent-specific credentials and auditable delegation
      <xref target="AuthDelegation"/>.</t>
      <t>Work in the Coalition for Secure AI (CoSAI) on agentic identity and access
      management, and on secure design patterns for MCP-based systems, provides the
      enterprise framing within which the protocol mechanisms in this document operate.
      See <xref target="CoSAI.AgenticIAM"/> and
      <xref target="CoSAI.MCPSecureToolDesign"/>.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="security-considerations" numbered="true" toc="default">
        <name>Security Considerations</name>
        <t>This section addresses security considerations specific to cross-domain 
                authorization information sharing. Implementations MUST also follow security 
                guidance in <xref target="RFC6819"/>, <xref target="W3C.VCDM2.0"/>, and 
                <xref target="I-D.ietf-oauth-client-id-metadata-document"/>.</t>
        <section anchor="threat-model" numbered="true" toc="default">
          <name>Threat Model for Cross-Domain Authorization Sharing</name>
          <t>This section defines threats specific to sharing authorization information 
                across administrative domain boundaries. General OAuth and VC security threats 
                are addressed in <xref target="RFC6819"/> and <xref target="W3C.VCDM2.0"/>; 
                this section focuses on threats that emerge or are amplified when credentials 
                cross domain boundaries.</t>
          <section anchor="protected-assets" numbered="true" toc="default">
            <name>Protected Assets in Cross-Domain Scenarios</name>
            <t>Beyond standard authorization assets, cross-domain sharing introduces 
                    additional assets requiring protection:</t>
            <dl>
              <dt>Cross-Domain Trust Relationships</dt>
              <dd>The established trust between domains that enables agents to operate 
                        across organizational boundaries. Compromise affects all agents relying 
                        on that trust relationship.</dd>
              <dt>Shared Authorization Semantics</dt>
              <dd>The agreed-upon meaning of claims, scopes, and compliance attestations 
                        between domains. Semantic drift or manipulation can cause authorization 
                        decisions that violate one or both domains' policies.</dd>
              <dt>Delegation Chains Spanning Domains</dt>
              <dd>When agent A in Domain X delegates to agent B in Domain Y, the chain 
                        itself becomes an asset requiring integrity protection across trust 
                        boundaries.</dd>
            </dl>
          </section>
          <section anchor="threat-actors" numbered="true" toc="default">
            <name>Cross-Domain Specific Threat Actors</name>
            <dl>
              <dt>Rogue Domain</dt>
              <dd>An entire domain that participates in the trust federation but issues 
                        fraudulent VCs or makes incorrect authorization decisions, either through 
                        compromise or malicious operation. Unlike a single rogue IdP, a rogue 
                        domain may control IdP, AS, and metadata endpoints coherently.</dd>
              <dt>Cross-Domain Insider</dt>
              <dd>An administrator with legitimate access in Domain A who abuses 
                        cross-domain trust relationships to gain unauthorized access to Domain B's 
                        resources.</dd>
            </dl>
          </section>
          <section anchor="attack-categories" numbered="true" toc="default">
            <name>Cross-Domain Attack Categories</name>
            <section anchor="trust-anchor-attacks" numbered="true" toc="default">
              <name>Trust Anchor Attacks</name>
              <dl>
                <dt>Metadata Endpoint Compromise</dt>
                <dd>
                  <t>An attacker gains control of the URL hosting an agent's client-id 
                            metadata document and substitutes malicious metadata or VCs. Because the 
                            metadata URL is the trust anchor for cross-domain identity, compromise 
                            enables complete identity takeover across all trusting domains.</t>
                  <t>Cross-domain amplification: In single-domain scenarios, the AS 
                            typically has out-of-band trust with clients. In cross-domain scenarios, 
                            the metadata endpoint IS the sole trust anchor, and there's no fallback.</t>
                </dd>
                <dt>Metadata Poisoning</dt>
                <dd>
                  <t>Injection of false claims into legitimate metadata documents 
                            through supply chain attacks, DNS hijacking, or exploitation of hosting 
                            infrastructure.</t>
                  <t>Cross-domain amplification: Poisoned metadata propagates trust 
                            violations to all domains that fetch and cache the metadata.</t>
                </dd>
              </dl>
            </section>
            <section anchor="semantic-attacks" numbered="true" toc="default">
              <name>Semantic Attacks</name>
              <dl>
                <dt>Policy Skew Exploitation</dt>
                <dd>An agent authorized under Domain A's policies operates in Domain B 
                            where different security policies apply. The agent performs actions that 
                            are within Domain A's authorized scope but violate Domain B's policies.</dd>
                <dt>Claim Semantic Drift</dt>
                <dd>Domains interpret the same claim differently, leading to authorization 
                            decisions that neither domain intended.</dd>
                <dt>Compliance Attestation Mismatch</dt>
                <dd>Compliance attestations (SOC2, ISO-27001, GDPR) in VCs are accepted 
                            at face value without verifying that the issuing domain's certification 
                            scope covers the receiving domain's requirements.</dd>
              </dl>
            </section>
            <section anchor="delegation-attacks" numbered="true" toc="default">
              <name>Delegation Attacks Across Domains</name>
              <dl>
                <dt>Cross-Domain Privilege Amplification</dt>
                <dd>In multi-hop delegation (A to B to C) where agents belong to different 
                            domains, downstream agents in permissive domains accumulate effective 
                            permissions that exceed what the originating principal intended.</dd>
                <dt>Accountability Chain Breakage</dt>
                <dd>Delegation chains that cross domain boundaries lose forensic 
                            continuity. When incidents occur, attribution cannot be reconstructed 
                            because each domain only has partial visibility.</dd>
                <dt>Confused Deputy Across Trust Boundaries</dt>
                <dd>An attacker in Domain A tricks a trusted agent in Domain B into 
                            performing actions on their behalf that the attacker couldn't perform 
                            directly, exploiting the cross-domain trust relationship. 
                            See <xref target="Hardy1988"/>.</dd>
              </dl>
            </section>
            <section anchor="lateral-movement" numbered="true" toc="default">
              <name>Cross-Domain Lateral Movement</name>
              <t>Using legitimate cross-domain authorization to pivot from a compromised 
                        position in Domain A to resources in Domain B that would not otherwise be 
                        accessible. An attacker compromises a low-privilege agent in Domain A. 
                        That agent has cross-domain authorization to Domain B. The attacker uses 
                        the agent's credentials to establish a foothold in Domain B, then escalates 
                        within Domain B.</t>
            </section>
            <section anchor="correlation-attacks" numbered="true" toc="default">
              <name>Correlation and Privacy Attacks</name>
              <t>Linking agent activities across domains using stable identifiers in VCs 
                        to build profiles of organizational operations, potentially revealing 
                        sensitive business processes or security postures.</t>
              <t>Cross-domain amplification: In single-domain scenarios, the domain 
                        controls what's logged. In cross-domain scenarios, each domain receiving 
                        the VC can correlate independently, and the agent's home domain cannot 
                        prevent this.</t>
            </section>
            <section anchor="tool-registry-poisoning" numbered="true" toc="default">
              <name>Tool Registry Poisoning</name>
              <t>Agents discover available tools by querying a registry or directory. Any
              dynamic tool discovery mechanism is therefore an authorization input. If a
              registry entry is mutable, unsigned, stale, or redirected, the Authorization
              Server may end up authorizing the wrong executable capability. An attacker who
              can write to the registry, or redirect the endpoints it points to, can
              substitute malicious tool definitions or reroute tool calls to an
              attacker-controlled server. Most agent frameworks do not verify tool integrity
              at invocation time, so once an entry is in the registry the agent treats it as
              trusted and the redirection is not visible to the caller.</t>
              <dl>
                <dt>Registry Write Compromise</dt>
                <dd>Direct modification of tool entries through the registry database or its
                management API.</dd>
                <dt>Endpoint Redirection</dt>
                <dd>Repointing a tool's endpoint URL to an attacker-controlled host, for
                example through DNS hijacking or a stale entry whose original host is no
                longer controlled by the tool provider.</dd>
                <dt>Supply Chain Injection</dt>
                <dd>Inserting malicious tools into the registry through a compromised build
                or publishing pipeline.</dd>
              </dl>
              <t>Cross-domain amplification: a registry shared across domains propagates a
              poisoned entry to every domain that resolves tools through it. A single write
              compromise affects all consumers.</t>
              <t>Mitigation binds the tool identity to its implementation so the Authorization
              Server can verify it. A vc+jwt credential can carry a cryptographic fingerprint
              of the tool, for example a SHA-256 hash of the tool definition or a subresource
              integrity hash of the endpoint contract, which the verifier checks before
              authorizing the call. The endpoint's TLS certificate is verified against an
              expected value at invocation time, and registry entries are revalidated against
              a known-good baseline on a schedule. This attack class and its mitigations are
              discussed in recent work on tool squatting and tool poisoning in agent tool
              registries <xref target="ToolSquatting"/> <xref target="ETDI"/>.</t>
            </section>
          </section>
          <section anchor="empirical-validation" numbered="true" toc="default">
            <name>Empirical Validation of the Threat Model</name>
            <t>Between February and April 2026, the threat categories above were exercised
            by public incidents and measurement studies. This section maps observed events
            to the threat model. The intent is to show that the threats produce real
            consequences, not to attribute specific products.</t>
            <section anchor="ev-cicd" numbered="true" toc="default">
              <name>Autonomous Agent Exploitation of CI/CD Pipelines</name>
              <t>An autonomous agent ran a multi-day campaign against continuous integration
              pipelines across repositories at several technology companies. It obtained
              remote code execution in multiple targets, using a different technique for
              each pipeline configuration. The agent held valid credentials throughout. The
              failure was not in identity verification but in the absence of intent
              validation and scope enforcement. One target was not compromised because a
              code review step detected the injected instructions and refused to act on
              them.</t>
              <t>Maps to: confused deputy across trust boundaries
              (<xref target="delegation-attacks"/>) and cross-domain lateral movement
              (<xref target="lateral-movement"/>). Valid credentials with invalid intent is
              the core pattern. The vc+jwt approach in this document carries scope and
              operational constraints that an Authorization Server can check against the
              requested action, which a bare credential check cannot.</t>
            </section>
            <section anchor="ev-platform-breach" numbered="true" toc="default">
              <name>Enterprise AI Platform Breach</name>
              <t>An offensive agent reached the production database of an internal AI
              platform in under two hours, without credentials, by finding unauthenticated
              API endpoints and a SQL injection path. The same access allowed modification
              of the prompts that governed the platform's behavior.</t>
              <t>Maps to: metadata endpoint compromise
              (<xref target="trust-anchor-attacks"/>). The platforms that host and
              coordinate agents are themselves authorization targets and need the same rigor
              as the agents they run. The ability to alter governing prompts through the
              same access is a trust poisoning path that authorization controls on the
              platform itself would constrain.</t>
            </section>
            <section anchor="ev-mcp-auth" numbered="true" toc="default">
              <name>Optional Authentication in Tool Servers</name>
              <t>Public vulnerability records in this period described missing authentication
              for critical functions in deployed MCP server implementations, including a
              server-side request forgery path reachable without an authorization header and
              a critical-function authentication gap that allowed an unauthorized network
              attacker to act on the server <xref target="CVE-2026-32211"/>. A measurement
              study of remote MCP servers in the same period found unauthenticated tool
              exposure to be widespread <xref target="MCP.AuthMeasurement"/>. The common root
              cause is that the protocol treats authentication as optional and leaves it to
              each implementer.</t>
              <t>Maps to: credential forgery (<xref target="trust-anchor-attacks"/>) and the
              broader gap this document addresses. Making agent identity a required part of
              the metadata that an Authorization Server fetches, rather than an optional
              implementation choice, removes the class of failure that comes from optional
              authentication.</t>
            </section>
            <section anchor="ev-framework" numbered="true" toc="default">
              <name>Silent Trust Boundary Failure in an Agent Framework</name>
              <t>An agent orchestration framework was found to allow a chain from prompt
              injection to sandbox escape to remote code execution. The sandbox fell back to
              an unsandboxed mode when its container runtime was unavailable, without
              signaling the change, so the agent and the orchestrator both assumed isolation
              that was not in effect.</t>
              <t>Maps to: delegation attacks across domains
              (<xref target="delegation-attacks"/>). A verifiable assertion about an agent's
              execution environment, carried in its credential, lets an Authorization Server
              decide based on the actual enforcement state rather than an assumption about
              the framework.</t>
            </section>
          </section>
          <section anchor="trust-establishment" numbered="true" toc="default">
            <name>Trust Establishment Between Domains</name>
            <section anchor="domain-trust-lists" numbered="true" toc="default">
              <name>Domain Trust Lists</name>
              <t>Before accepting VCs from another domain, an Authorization Server 
                        MUST verify that the issuing domain is in an explicitly configured trust 
                        list. Implementations MUST NOT implicitly trust domains based solely on 
                        successful cryptographic verification of the VC.</t>
              <t>Trust list entries SHOULD include:</t>
              <ul>
                <li>Domain identifier (issuerDomain claim value)</li>
                <li>Accepted VC types from that domain</li>
                <li>Scope of trust (which local resources may be accessed)</li>
                <li>Expiration or review date for the trust relationship</li>
              </ul>
            </section>
            <section anchor="policy-mapping" numbered="true" toc="default">
              <name>Cross-Domain Policy Mapping</name>
              <t>Implementations MUST NOT assume semantic equivalence of claims across 
                        domains. Before accepting a VC from another domain, the AS SHOULD 
                        verify:</t>
              <ol>
                <li>Explicit mapping exists between the foreign domain's claim 
                            semantics and local policy requirements</li>
                <li>Compliance attestations in the VC meet local regulatory 
                            requirements (not just the issuing domain's)</li>
                <li>Scope values have been mapped to local authorization semantics</li>
              </ol>
            </section>
            <section anchor="trust-lifecycle" numbered="true" toc="default">
              <name>Trust Relationship Lifecycle</name>
              <t>Cross-domain trust relationships MUST have defined lifecycles:</t>
              <ul>
                <li>Periodic review and re-validation</li>
                <li>Documented procedures for trust relationship termination</li>
                <li>Immediate revocation capability when a trusted domain is 
                            compromised</li>
                <li>Notification mechanisms between domains for security events</li>
              </ul>
            </section>
          </section>
          <section anchor="metadata-endpoint-security" numbered="true" toc="default">
            <name>Metadata Endpoint Security for Cross-Domain Trust</name>
            <t>Because the client-id metadata endpoint is the sole trust anchor for 
                    cross-domain agent identity, it requires enhanced protection beyond typical 
                    endpoint security.</t>
            <section anchor="endpoint-integrity" numbered="true" toc="default">
              <name>Endpoint Integrity Beyond Transport</name>
              <t>Metadata documents SHOULD be signed independently of the transport 
                        layer, allowing verification even if TLS is compromised or if the 
                        document is cached by intermediaries.</t>
            </section>
            <section anchor="change-detection" numbered="true" toc="default">
              <name>Change Detection for Cached Metadata</name>
              <t>Authorization Servers SHOULD:</t>
              <ul>
                <li>Cache fetched metadata documents with appropriate TTLs</li>
                <li>Detect and alert on unexpected changes to critical fields 
                            (jwks_uri, vc+jwt, token_endpoint_auth_method)</li>
                <li>Implement anomaly detection for metadata that changes more 
                            frequently than expected</li>
              </ul>
            </section>
            <section anchor="availability-dependencies" numbered="true" toc="default">
              <name>Cross-Domain Availability Dependencies</name>
              <t>When metadata endpoints are unavailable, cross-domain authorization 
                        fails. Implementations SHOULD:</t>
              <ul>
                <li>Cache validated metadata with TTLs appropriate to the sensitivity 
                            of protected resources</li>
                <li>Implement circuit breakers to prevent cascading failures</li>
                <li>Define graceful degradation policies</li>
              </ul>
            </section>
          </section>
          <section anchor="delegation-security" numbered="true" toc="default">
            <name>Delegation Security Across Domain Boundaries</name>
            <section anchor="boundary-checkpoints" numbered="true" toc="default">
              <name>Domain Boundary Checkpoints</name>
              <t>When a delegation chain crosses a domain boundary, the receiving 
                        domain's AS MUST:</t>
              <ul>
                <li>Fully verify the upstream delegation chain before accepting</li>
                <li>Apply local policy to the delegation</li>
                <li>Log the domain boundary crossing for audit purposes</li>
              </ul>
              <t>Receiving domains SHOULD consider the status of delegated credentials and, where 
		status information is available, avoid making authorization decisions that rely 
		on revoked,suspended, or suspended delegation chain elements, according to local policy.</t>
              <t>Deployments concerned with stale delgations MAY apply bounded caching and periodic
		revalidation of delegation status appropriate to the sensitivity of protected resources.</t>
            </section>
            <section anchor="scope-narrowing" numbered="true" toc="default">
              <name>Monotonic Scope Narrowing Across Domains</name>
              <t>Implementations MUST enforce that effective scope can only decrease 
                        (or remain the same) at each delegation step, including when crossing 
                        domain boundaries. The receiving domain MUST apply its local policy as 
                        an additional constraint on effective scope.</t>
            </section>
            <section anchor="chain-preservation" numbered="true" toc="default">
              <name>Accountability Chain Preservation</name>
              <t>Delegation chains spanning domains MUST maintain cryptographically 
                        verifiable accountability. Each domain SHOULD:</t>
              <ul>
                <li>Preserve the incoming delegation chain in its audit logs</li>
                <li>Add its own delegation record when extending the chain</li>
                <li>Provide APIs for authorized forensic queries from upstream 
                            domains</li>
              </ul>
            </section>
          </section>
          <section anchor="privacy-considerations" numbered="true" toc="default">
            <name>Privacy Considerations for Cross-Domain Sharing</name>
            <section anchor="selective-disclosure" numbered="true" toc="default">
              <name>Selective Disclosure for Cross-Domain Presentations</name>
              <t>Agents presenting VCs across domain boundaries SHOULD use selective 
                        disclosure mechanisms (SD-JWT VC, BBS+ signatures) to reveal only claims 
                        necessary for the specific cross-domain authorization request.</t>
            </section>
            <section anchor="correlation-risk" numbered="true" toc="default">
              <name>Correlation Risk Assessment</name>
              <t>Organizations SHOULD assess cross-domain correlation risks before 
                        establishing trust relationships, including whether agent identifiers 
                        enable activity tracking by foreign domains.</t>
            </section>
          </section>
        </section>
      </section>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document introduces a new OAuth client metadata parameter "vc+jwt" as described in the Solution Analysis section (Approach 4). If this approach is standardized, the following registration would be required:</t>
      <ul>
        <li><strong>Registry:</strong> IANA [`OAuth Dynamic Client Registration Metadata`](https://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml#client-metadata) registry</li>
        <li><strong>Client Metadata Name:</strong> vc+jwt</li>
        <li><strong>Client Metadata Description:</strong> JWT-encoded Verifiable Credential</li>
        <li><strong>Change Controller:</strong> TBD</li>
        <li><strong>Reference:</strong> https://www.w3.org/TR/vc-data-model-2.0</li>
      </ul>
      <t>This informational document does not make a formal request for IANA registration at this time. Registration would be appropriate if this approach is adopted and progresses to a standards track specification.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC7591" target="https://www.rfc-editor.org/info/rfc7591">
          <front>
            <title>OAuth 2.0 Dynamic Client Registration Protocol</title>
            <author initials="J." surname="Richer" role="editor"/>
            <author initials="M." surname="Jones"/>
            <author initials="J." surname="Bradley"/>
            <author initials="M." surname="Machulak"/>
            <author initials="P." surname="Hunt"/>
            <date year="2015" month="July"/>
          </front>
        </reference>
        <reference anchor="I-D.abbey-scim-agent-extension">
          <front>
            <title>SCIM Extensions for Agents</title>
            <author surname="Abbey" initials="J."/>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="I-D.wahl-scim-agent-schema">
          <front>
            <title>SCIM Schema for Agents</title>
            <author surname="Wahl" initials="M."/>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-oauth-client-id-metadata-document">
          <front>
            <title>OAuth 2.0 Client Identity Metadata Document</title>
            <author surname="Jones" initials="M."/>
            <author surname="Sakimura" initials="N."/>
            <author surname="Bradley" initials="J."/>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="W3C.VCDM2.0" target="https://www.w3.org/TR/vc-data-model-2.0/">
          <front>
            <title>Verifiable Credentials Data Model v2.0</title>
            <author>
              <organization>W3C</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="RFC6819" target="https://www.rfc-editor.org/info/rfc6819">
          <front>
            <title>OAuth 2.0 Threat Model and Security Considerations</title>
            <author initials="T." surname="Lodderstedt" role="editor"/>
            <author initials="M." surname="McGloin"/>
            <author initials="P." surname="Hunt"/>
            <date year="2013" month="January"/>
          </front>
        </reference>
        <reference anchor="RFC8693" target="https://www.rfc-editor.org/info/rfc8693">
          <front>
            <title>OAuth 2.0 Token Exchange</title>
            <author initials="M." surname="Jones"/>
            <author initials="A." surname="Nadalin"/>
            <author initials="B." surname="Campbell"/>
            <author initials="J." surname="Bradley"/>
            <author initials="C." surname="Mortimore"/>
            <date year="2020" month="January"/>
          </front>
        </reference>
        <reference anchor="Hardy1988">
          <front>
            <title>The Confused Deputy: (or why capabilities might have been invented)</title>
            <author initials="N." surname="Hardy"/>
            <date year="1988"/>
          </front>
          <seriesInfo name="ACM SIGOPS Operating Systems Review" value="Volume 22, Issue 4"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author surname="Bradner" initials="S."/>
            <date year="1997"/>
          </front>
          <seriesInfo name="RFC" value="2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author surname="Leiba" initials="B."/>
            <date year="2017"/>
          </front>
          <seriesInfo name="RFC" value="8174"/>
        </reference>
        <reference anchor="RFC7518" target="https://www.rfc-editor.org/info/rfc7518">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author initials="M." surname="Jones" fullname="M. Jones"/>
            <date month="May" year="2015"/>
          </front>
          <seriesInfo name="RFC" value="7518"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla"/>
            <date month="August" year="2018"/>
          </front>
          <seriesInfo name="RFC" value="8446"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-selective-disclosure-jwt">
          <front>
            <title>Selective Disclosure for JWTs (SD-JWT)</title>
            <author initials="D." surname="Fett" fullname="D. Fett"/>
            <author initials="K." surname="Yasuda" fullname="K. Yasuda"/>
            <author initials="B." surname="Campbell" fullname="B. Campbell"/>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="I-D.klrc-aiagent-auth">
          <front>
            <title>AI Agent Authentication and Authorization</title>
            <author initials="P." surname="Kasselman" fullname="P. Kasselman"/>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="I-D.skyfire-kyapayprofile">
          <front>
            <title>KYAPay Profile</title>
            <author initials="A." surname="Agarwal" fullname="A. Agarwal"/>
            <author initials="M." surname="Jones" fullname="M. Jones"/>
            <date month="March" year="2026"/>
          </front>
        </reference>
        <reference anchor="NIST.NCCoE.AgentIdentity" target="https://www.nccoe.nist.gov/news-insights/new-concept-paper-identity-and-authority-software-agents">
          <front>
            <title>Accelerating the Adoption of Software and Artificial Intelligence Agent Identity and Authorization</title>
            <author>
              <organization>National Cybersecurity Center of Excellence, NIST</organization>
            </author>
            <date month="February" year="2026"/>
          </front>
        </reference>
        <reference anchor="MCP.AuthMeasurement" target="https://arxiv.org/abs/2605.22333">
          <front>
            <title>A First Measurement Study on Authentication Security in Real-World Remote MCP Servers</title>
            <author initials="H." surname="Zhou" fullname="H. Zhou"/>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="BreakingTheProtocol" target="https://arxiv.org/abs/2601.17549">
          <front>
            <title>Breaking the Protocol: Security Analysis of the Model Context Protocol Specification</title>
            <author initials="N." surname="Maloyan" fullname="N. Maloyan"/>
            <author initials="D." surname="Namiot" fullname="D. Namiot"/>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="AuthDelegation" target="https://arxiv.org/abs/2501.09674">
          <front>
            <title>Authenticated Delegation and Authorized AI Agents</title>
            <author initials="T." surname="South" fullname="T. South"/>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="ToolSquatting">
          <front>
            <title>Securing GenAI Multi-Agent Systems Against Tool Squatting: A Zero Trust Registry-Based Approach</title>
            <author initials="V.S." surname="Narajala" fullname="V.S. Narajala"/>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="ETDI">
          <front>
            <title>ETDI: Mitigating Tool Squatting and Rug Pull Attacks in MCP Using OAuth-Enhanced Tool Definitions</title>
            <author initials="M." surname="Bhatt" fullname="M. Bhatt"/>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="CVE-2026-32211" target="https://nvd.nist.gov/vuln/detail/CVE-2026-32211">
          <front>
            <title>CVE-2026-32211: Missing Authentication for Critical Function</title>
            <author>
              <organization>National Vulnerability Database, NIST</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="CoSAI.AgenticIAM" target="https://www.coalitionforsecureai.org/">
          <front>
            <title>Agentic Identity and Access Management</title>
            <author>
              <organization>Coalition for Secure AI (CoSAI), OASIS</organization>
            </author>
            <date month="March" year="2026"/>
          </front>
        </reference>
        <reference anchor="CoSAI.MCPSecureToolDesign" target="https://www.coalitionforsecureai.org/">
          <front>
            <title>MCP Secure Tool Design</title>
            <author>
              <organization>Coalition for Secure AI (CoSAI), OASIS</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="deployment-levels" numbered="true" toc="default">
      <name>Mapping Mechanisms to Deployment Contexts</name>
      <t>The mechanisms in this document apply with different rigor depending on the
      deployment. This appendix is informative. Not every deployment needs every
      mechanism. The intent is to identify a minimum set of controls for a given risk
      profile and a path from what is deployable today to what is needed for regulated
      cross-domain operation.</t>
      <dl>
        <dt>Level 1, Sandbox or Development</dt>
        <dd>Isolated environments with no production data and no cross-domain
        connectivity. Standard OAuth2 with local scope management. The cross-domain
        mechanisms in this document are not required.</dd>
        <dt>Level 2, Internal and Non-Sensitive</dt>
        <dd>A single administrative domain accessing non-sensitive resources. Client-ID
        Metadata without VCs (Solution Approach 3) can be sufficient. Basic OAuth scope
        management applies. Delegation is limited to direct invocation. This level is
        supportable on existing IdP and Authorization Server infrastructure without new
        components.</dd>
        <dt>Level 3, Production and Cross-Domain</dt>
        <dd>Operation across domains on business-sensitive resources. Client-ID Metadata
        with Verifiable Credentials (Solution Approach 4). The vc+jwt claim carries
        compliance attestations and operational constraints. Delegation with scope
        intersection applies. Sender-constrained tokens are recommended. Credential
        lifetimes are bounded and revocation is checked. This level needs VC issuance
        but not hardware-attested key storage.</dd>
        <dt>Level 4, Regulated and High-Assurance</dt>
        <dd>Regulated data or irreversible operations across domains. All Level 3
        mechanisms apply, plus hardware-attested key storage, cryptographic binding
        between agent identity and execution environment, and re-authorization at trust
        boundary crossings. Audit logging supports cross-domain forensics. Selective
        disclosure is used to limit data exposure in cross-domain presentations.</dd>
      </dl>
      <t>The expected path is to start at Level 2 and add VCs (moving to Level 3) when
      cross-domain requirements appear, without replacing the underlying authorization
      infrastructure.</t>
    </section>
  </back>
</rfc>
