上游身份认证
每个已注册的 Agent-to-Agent(A2A)Agent 都定义了 AISIX 是否以及如何向其上游进行身份认证。在获取 Agent Card 或转发 JSON-RPC 调用时,AISIX 会提供已配置的凭证(如有)。客户端使用调用方 API Key 向 AISIX 进行身份认证,默认情况下没有任何调用方请求头会到达该 Agent。需要看到某个请求头的 Agent(包括调用方自己的凭证),通过 forward_client_headers 显式开启。
这种分离方式让每个上游可以采用所需的身份认证方案,而调用方只需保留一个 AISIX 凭证。AISIX Cloud 和开源 AISIX 网关通过不同管理方式支持相同的模式。
前置条件
请完成 AISIX Cloud 或开源 AISIX 网关的配置 Agent 网关。如需执行可选的端到端验证,请保持同一个 Shell、网关、测试 Agent 和临时 Docker 网络运行。
身份认证模式
请选择与上游 Agent 要求相符的模式:
auth_type | 必填字段 | 上游请求头 |
|---|---|---|
none | 无 | 不发送凭证。 |
bearer | secret | Authorization: Bearer <secret> |
api_key | secret | x-api-key: <secret> |
auth_type 默认为 none。在此模式下,不要设置 secret。bearer 和 api_key 模式要求提供非空 secret。
使用凭证的上游应采用 HTTPS。如果为 http:// URL 配置了 Bearer Token 或 API Key,网关会记录警告,因为凭证将以明文通过网络传输。
配置上游身份认证
以下示例为配置指南中已注册的 echo-agent 添加 Bearer 身份认证。将该条目改为指向需要凭证的上游时,还应替换它的 URL。如果上游要求 x-api-key,请改用 api_key。echo Agent 本身不验证凭证。如需在本地测试凭证转发,请跳过这些示例,继续阅读可选:使用本地测试代理验证;该部分会提供专用 Token 和最终资源更新。
AISIX Cloud
导出凭证,然后更新已注册 Agent:
export A2A_AGENT_TOKEN="YOUR_UPSTREAM_TOKEN"
curl -fsS -X PATCH "$AISIX_CP/a2a_agents/$A2A_AGENT_ID" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
--data-binary @- <<EOF | jq
{
"auth_type": "bearer",
"secret": "${A2A_AGENT_TOKEN}"
}
EOF
该凭证为只写字段:AISIX Cloud 会对其进行静态加密,并且不会在创建、列表或更新响应中返回。发送新的 secret 会轮换凭证。从使用凭证的模式改为 none 会清除已存储的凭证。