A2A 协议支持通过 HTTP 头、查询参数或 Cookie 传递 API Key 的认证方式。这是在内部服务间通信中最简单的认证方案,适合在受信任的网络环境中使用。API Key 通常由服务端预先颁发给客户端,客户端在每次 A2A 请求中携带该 Key。Agent Card 的 securitySchemes 字段声明服务端接受的 API Key 传递位置(in: "header" / "query" / "cookie")和 Key 名称。
A2A 协议支持 HTTP Bearer Token 认证方案,客户端在 HTTP Authorization 头中携带 Bearer <token> 向服务端进行身份认证。该 Token 可以是服务端颁发的会话 Token、JWT(JSON Web Token)或其它格式的持有者令牌。Bearer Token 认证方案广泛用于 RESTful API 中,A2A 协议复用这一成熟模式,使开发者能够利用现有的 Token 管理基础设施。
A2A 协议完整支持 OAuth 2.0 授权框架,允许智能体代表用户去访问另一个服务上的受保护资源。这包括 OAuth 2.0 的多种授权模式:authorization_code(授权码模式,适用于需要用户交互授权的场景)、client_credentials(客户端凭证模式,适用于智能体之间的直接通信)、device_code(设备授权模式,适用于无浏览器界面的设备)。OAuth 2.0 通过"令牌(Token)"机制实现细粒度权限控制——令牌包含"作用域(Scopes)"信息,限定了持有该令牌的智能体可以执行的操作范围。
A2A 协议将 OpenID Connect 作为 OAuth 2.0 之上的身份层支持,提供统一的身份验证和单点登录能力。通过 OIDC,智能体在完成 OAuth 2.0 授权流程的同时,还能获取用户的身份身份信息(ID Token),实现跨组织智能体身份验证。这对于需要明确用户身份的场景(如金融交易授权、医疗记录访问)尤其重要。
A2A v1.0 正式支持 Mutual TLS(mTLS)作为认证方案。mTLS 要求通信双方都出示并验证对方的 TLS 证书,实现相互身份认证。与仅服务端认证的普通 HTTPS 不同,mTLS 像两个特工接头——他们需要互相展示自己的证件(双向验证),确认彼此身份后,才开始在加密的信道里交换信息。mTLS 在金融、医疗等高敏感度领域的智能体通信中提供了最高级别的身份保证。
A2A 协议强烈推荐在 Agent Card 中使用动态凭证(如 OAuth 2.0 Access Token、JWT),而非嵌入式静态密钥(如硬编码在配置文件中的 API Key)。动态凭证具有有效期限制,即使被截获也能在到期后自动失效,大大降低了密钥泄露带来的长期风险。此外,动态凭证还可以携带细粒度的权限作用域信息,实现智能体间通信的最小权限原则。