Skip to content

API Reference

所有端点以 /api/v3/eak/ 为前缀。两组端点,鉴权方式不同

端点组鉴权
委托与令牌(10 个)访问密钥签名:用工作空间 AK/SK 对请求签名,置于 Authorization 头。推荐直接用 SDK(自动签名);HTTP 直连可复用 SDK 导出的 buildAuthorization 构造签名
工作空间与访问密钥(9 个)控制台登录态:面向管理台操作

响应统一为 JSON;错误码体系见页尾。

委托与令牌端点

GET /api/v3/eak/runtime-config

获取工作空间运行时配置(各服务的接入地址)。SDK 初始化时自动调用,一般无需手工使用。

POST /api/v3/eak/delegations

发起委托。mode 决定行为:interactive 返回授权链接(用户级授权确认),silent 直接签发(组织级授权确认,使用前必读安全考量)。

请求字段类型必填说明
agentstringAgent 标识
scopesstring[]请求授权的 scope 列表
userIdstringsilent 必填被授权用户 ID(SDK 侧已改用 user: { id },本参数为 HTTP 契约)
modesilent | interactive默认 silent授权模式
redirectUristringinteractive 必填授权完成后的回跳地址
statestringinteractive 必填业务回跳 state
expiresInnumber可选令牌有效期(秒,60–86400

响应(silent){ mode: "silent", tokenType: "Bearer", delegationToken, delegateAgentToken, expiresIn, grantId, auditId }响应(interactive){ mode: "interactive", authorizationUrl, grantId, grantState, state, requestedScopes? }

字段名:HTTP 与 SDK 不同

HTTP 响应里委托令牌的字段名是 delegationTokendelegateAgentToken 是同值的旧别名,新代码请用前者)。SDK 会把它重命名为 token 并额外提供 grantedScopes——那是 SDK 形状,HTTP 响应里没有这两个键。混用会取到 undefined。对照表见 SDK Reference

POST /api/v3/eak/delegations/complete

用授权完成后的回调参数换取委托令牌(SDK:completeDelegateToken)。

请求字段类型说明
grantIdstring授权记录 ID
codestring授权完成 code
statestring授权 state

响应:委托令牌对象,同 silent 响应形状(mode / tokenType / delegationToken / delegateAgentToken / expiresIn / grantId / auditId)。

授权确认流程端点(由 GenAuth 托管授权页调用)

以下四个端点服务于 interactive 授权确认的页面流程。使用托管授权页时无需直接调用;自建授权体验时按下表请求契约对接(响应为流程语义对象,以接口 Swagger 描述为权威):

端点用途请求字段
GET /api/v3/eak/delegations/:grantId/approval-context解析授权登录上下文(返回授权登录入口与请求信息)query:grant_stateredirect_uristate?
POST /api/v3/eak/delegations/auth/complete完成授权页的 OIDC 登录回调codestateredirectUri
POST /api/v3/eak/delegations/:grantId/approve用户批准授权,生成一次性回调 code(返回回跳地址)userId?userPoolId?
POST /api/v3/eak/delegations/callback/consume消费一次性 code,签发委托令牌(code 一次性,重放失败codestate

callback/consume 的响应为委托令牌对象(同上:delegationToken 为令牌字段名)。

POST /api/v3/eak/token-exchange

令牌兑换(RFC 8693 语义):用委托令牌换取目标产品的访问令牌。

请求字段类型必填说明
subjectTokenstring委托令牌
resourcegumem | webagent目标产品资源
scopesstring[]可选本次兑换需要的产品 scope(必须是委托令牌已授 scope 的子集)

响应{ token, tokenType, expiresIn?, scope? }(同时提供 access_token / token_type / expires_in 蛇形别名,便于按 OAuth 惯例解析)。访问令牌的字段结构见 Token 与 Claim 参考

POST /api/v3/eak/genauth/admin-token

换取管理面访问令牌(服务端管理操作用,如用户目录读写)。响应要点:管理面 accessToken 及其作用的用户池。

POST /api/v3/eak/delegations/introspect

在线验证委托令牌。

请求字段类型说明
tokenstring委托令牌

响应:有效时 { "active": true, ...委托令牌全部 claims };无效、过期或格式错误时一律 { "active": false }(不泄漏失败原因)。

工作空间与访问密钥端点

工作空间(workspace)是委托体系的隔离单元:绑定用户池与产品资源,持有访问密钥。

端点用途
GET /api/v3/eak/tenants列出工作空间
POST /api/v3/eak/tenants创建工作空间
GET /api/v3/eak/tenants/:eakTenantId工作空间详情
PATCH /api/v3/eak/tenants/:eakTenantId更新工作空间
GET /api/v3/eak/tenants/:eakTenantId/credentials列出访问密钥
POST /api/v3/eak/tenants/:eakTenantId/credentials创建访问密钥
POST /api/v3/eak/tenants/:eakTenantId/credentials/:accessKeyId/rotate轮换密钥
PATCH /api/v3/eak/tenants/:eakTenantId/credentials/:accessKeyId启停/更新密钥
DELETE /api/v3/eak/tenants/:eakTenantId/credentials/:accessKeyId删除密钥

创建工作空间POST /tenants)请求字段:name(必填)、description?genauthUserPoolId?gumemProjectId?webAgentTenantId?delegationLoginCallbackUrl?idempotencyKey?status?

创建/更新访问密钥请求字段:

字段端点说明
allowedScopes创建/更新该密钥允许发起委托的 scope 白名单
allowedAgents创建/更新该密钥允许委托的 Agent 白名单
enable更新启用/停用密钥(停用即时生效,见吊销与应急处置

密钥安全

Secret 仅在创建与轮换时返回一次;每个工作空间的密钥数量有限额(见 Limits)。allowedScopes 建议始终配置为最小集合——它是委托的第一道闸门(见安全考量)。

错误码

错误响应含 coderequestId。HTTP 层的 codeeak.* 点分码,按域分族:

码族典型码常见原因HTTP 状态
anima.auth.*anima.auth.invalid_signatureanima.auth.invalid_authorization_headeranima.auth.credential_disabled签名错误、Authorization 头格式错、密钥已停用401
eak.delegation.*eak.delegation.agent_not_allowedeak.delegation.scope_not_allowedeak.delegation.expires_in_invalideak.delegation.grant_invalid_or_expiredeak.delegation.user_not_boundAgent 或 scope 不在密钥白名单内、有效期越界、授权记录无效或过期、用户不在绑定用户池400 / 403
eak.token_exchange.*eak.token_exchange.upstream_failedeak.token_exchange.invalid_upstream_response令牌兑换的上游调用失败502
anima.genauth.*anima.genauth.userpool_binding_missinganima.genauth.no_bound_users工作空间未绑定用户池或池内无用户400

SDK 的错误码是归并后的

SDK 会把上面这些后端码归并为一组稳定的类型化错误(auth.failed / delegation.required / permission_denied / token.expired / validation.failed / rate_limit.exceeded 等),并抛出对应的错误类。直连 HTTP 时按 eak.* 码判断,用 SDK 时按错误类判断——映射关系见 SDK Reference

下一步