Skip to main content
入站认证验证进入智能体的请求方身份。VeADK 支持 API Key 与 OAuth2 两类方式。

API Key 认证

API Key 通过唯一字符串密钥验证请求方身份、授权访问 API 资源。VeADK 约定将 API Key 放在 URL 的 token 参数中传递。
API Key 仅适用于 A2A / MCP Server 部署模式,不建议在 VeADK Web 部署模式中使用;后者更推荐 OAuth2。
在脚手架创建智能体时选择 API Key 认证,或为已有项目在部署时加上 --auth-method=api-key 启用。此后用户访问应用时,API 网关会校验 token URL 参数中携带的 API Key。

OAuth2 单点登录

OAuth2 是一套开放的授权框架,通过令牌而非直接暴露账号密码,实现第三方应用对资源的有限访问;用户一次登录后即可免重复验证地访问多个关联应用。VeADK 提供两种接入方式:

API 网关模式

适用于通过 VeFaaS 部署的 VeADK Web 应用,由 API 网关处理 OAuth2 流程。
API 网关模式需要 4.0.0 及以上版本的 API 网关。
在脚手架创建智能体时选择 OAuth2,或为已有项目在部署时加上 --auth-method=oauth2;VeADK 会自动创建 Identity 用户池与客户端。若要复用已有资源,部署时用 --user-pool-name 与 --client-name 指定。 部署后在 Agent Identity 中创建用户:
1

进入用户池

登录火山引擎控制台,进入 Agent Identity 服务,在左侧选择 身份认证 › 用户池管理,选择用户池。
2

新建用户

在用户池的 用户 标签页点击 新建用户,填写信息并确定。
用户访问应用时,API 网关会引导其完成登录;登录后可从 Authorization 请求头取得用户的 JWT 令牌。

Starlette / FastAPI 中间件

适用于本地开发或自托管部署,通过 VeADK 提供的中间件在应用内处理 OAuth2,支持所有基于 Starlette 的框架(含 FastAPI)。推荐用 OAuth2Config.from_veidentity() 自动配置 VeIdentity 用户池:
该方法会自动创建用户池与客户端(如不存在)、注册回调 URL 并配置 OAuth2 端点。Starlette 用法相同,将 FastAPI() 换成 Starlette() 即可。 复用已有资源时关闭自动创建:
本地开发需关闭 HTTPS cookie:
接入非 VeIdentity 的 OAuth2 提供商时,直接构造 OAuth2Config:
中间件会自动注册以下路由: 可配置跳过认证的路径:exempt_paths=["/health", "/metrics"](精确匹配)、exempt_prefixes=["/public/", "/static/"](前缀匹配)。中间件按请求类型响应:浏览器请求重定向到登录页,API 请求返回 401。API 请求通过 Accept: application/json 请求头、路径前缀(默认 /api/)或 X-Requested-With: XMLHttpRequest 识别,可用 api_path_prefixes 自定义。 OAuth2Config.from_veidentity() 关键参数: OAuth2Config 关键参数:
默认的 InMemoryStateStore 仅适用于单进程部署。分布式场景需实现基于 Redis 等外部存储的 state store,并通过 setup_oauth2(app, config, state_store=...) 传入。

OAuth2 JWT 认证

OAuth2 JWT 认证将 OAuth2 授权框架与 JWT 结合,用 JWT 承载授权令牌,适用于 A2A / MCP Server。 在脚手架创建智能体时选择 OAuth2,或为已有项目在部署时加上 --auth-method=oauth2;VeADK 会自动创建 Identity 用户池,需要复用时用 --user-pool-name 指定。随后在 Agent Identity 的用户池中新建 M2M 类型客户端,用其凭据换取 JWT 令牌:
用户访问应用时,API 网关校验其携带的 JWT 令牌;令牌可从 Authorization 请求头取得。

A2A 调用中的身份透传

在使用 AgentKit A2A registry 的调用链中,VeADK 可以把当前请求携带的身份凭证传递给下游智能体,使下游继续按原用户身份和信任关系执行授权。
身份凭证会发送给解析到的下游 A2A 地址。仅调用可信的下游智能体,并为传入令牌配置完成任务所需的最小权限。
对于声明 OAuth2 的下游智能体,VeADK 先使用透传的 Bearer JWT 发起请求。只有下游明确返回 401 Unauthorized 时,才会改用 OAuth2 M2M 令牌重试一次。其他状态码或调用错误不会触发 M2M 回退,避免把业务错误或服务故障误判为身份令牌失效。
最后修改于 2026年9月19日