OIDC 短期身份令牌
从 Agent 本地 socket 获取签名 JWT,并按 audience、主体和运行范围授权。
This page has not been translated into English yet. The original Chinese version is shown below.
OIDC token 让运行中的 Agent 向云平台或内部服务证明身份,无需保存长期 key。它通过执行机器的本地 Unix socket 获取,与外部 Cloud Agents API 的 API Key 认证不同。
获取令牌
下面命令由运行环境中的 Agent 或脚本执行:
curl --unix-socket "${CURSOR_AGENT_SOCKET}" \
-H 'Content-Type: application/json' \
-d '{"aud":"sts.amazonaws.com"}' \
http://cursor-agent/v1/tokens/oidc托管 VM 的 CURSOR_AGENT_SOCKET 为 /run/cursor/api.sock;URL hostname 被忽略。请求必须 POST JSON,body 最多 4 KB,aud 为无空白的可打印 ASCII,最长 512 字符。
响应包含 token 和 Unix 秒 expires_at,有效期 5 分钟,无 refresh endpoint,到期重新 mint。可选 nonce 用于验证方的重放绑定;可选 sub_claim 将支持的 claim 投影为 <name>:<value> 主体,目前支持 team_id、organization_id、environment_id,缺值或不支持会失败。
验证方配置
| 配置 | 当前地址 |
|---|---|
| Issuer | https://api.cursor.com |
| Discovery | https://api.cursor.com/.well-known/openid-configuration |
| JWKS | https://api.cursor.com/keys |
验证 RS256 签名、kid、iss、预期 aud、nbf/exp 和授权主体。Cursor 不限制请求者选择 aud,所以接收端必须拒绝其他 audience;旧 api2.cursor.sh/cloud-agent/identity 仍提供 discovery,但已不是新 token 的 issuer。
默认 sub 为 user:
自托管与信任范围
worker 默认不提供身份 socket,需要 agent worker --identity-socket start,pool 也使用此开关。每个 claim 有独立 socket,token 带 agent_runtime:self_hosted,托管为 managed。
token 代表整个运行,能访问 socket 的代码、Hooks 和 Agent 都可 mint;自托管同一 OS 用户的其他进程也可访问。它不证明某条调用只来自模型本身,授权范围应按整个运行确定。
频率与错误
每个 claimed Agent 每分钟最多 30 次,突发最多 10;socket 最多 8 个并发连接,托管环境与 metadata 共用。缓存尚未过期 token,避免每个 API 调用都 mint。
429、503、500、502、504 使用退避重试并遵循 Retry-After;403 视为不可继续的授权失败。换取 AWS/GCP 等服务凭据仍需出站网络,即使 mint 本身走本地 socket。