GetResourceOauth2Token
更新时间:2026-07-14
GetResourceOauth2Token
- 获取 OAuth2 类型的资源凭证。支持四种工作模式:缓存命中直接返回 accessToken;token 过期且有 refresh_token 时自动刷新;无缓存时返回 authorizationUrl+sessionUri 发起授权;传入 sessionUri 时轮询查询授权进度。accessToken 与 sessionStatus 互斥。
OpenAPI Explorer
去调试
您可以在 OpenAPI Explorer 中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer 可以自动生成 SDK 代码示例。
请求结构
Plain Text
1POST /v{version}/agent-identity/credential/oauth2 HTTP/1.1
2Host: identity.baidubce.com
3Authorization: authorization string
请求头域
除公共头域外,无其他特殊头域
请求参数
| 参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
|---|---|---|---|---|
| version | String | 是 | URL参数 | API版本号 |
| x-bce-workload-access-token | String | 否 | Host参数 | WAT(Header 传递,与 Body 中的 workloadAccessToken 二选一) |
| resourceCredentialProviderName | String | 否 | RequestBody参数 | (首次调用必填)凭证提供方名称 |
| scopes | List |
否 | RequestBody参数 | OAuth2 scope 列表,不传则使用 provider 默认值 |
| oauth2Flow | String | 否 | RequestBody参数 | 默认 USER_FEDERATION(3LO) |
| resourceOauth2ReturnUrl | String | 否 | RequestBody参数 | (首次调用必填)客户端回调 URL,需在 Agent 白名单中注册 |
| sessionUri | String | 否 | RequestBody参数 | (轮询时必填)首次请求返回的 sessionUri |
| forceAuthentication | Boolean | 否 | RequestBody参数 | 默认 false,true 时跳过缓存强制重新授权 |
| workloadAccessToken | String | 是 | RequestBody参数 | WAT(Body 传递,也可通过 Header 传递) |
返回状态码
成功返回200;参数缺失返回400;WAT 缺失或无效返回401;domainId 不一致或 session 不属于当前 Agent 返回403;凭证提供方/Agent/session 不存在返回404。详见错误码
返回头域
除公共头域外,无其他特殊头域
返回参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| accessToken | String | OAuth2 access token(token 就绪时返回,与 sessionStatus 互斥) |
| authorizationUrl | String | 授权 URL(仅首次发起时返回) |
| sessionUri | String | 会话标识(轮询用) |
| sessionStatus | String | 会话状态:IN_PROGRESS / FAILED |
请求示例
Plain Text
1{
2 "resourceCredentialProviderName": "my-google-oauth",
3 "scopes": ["openid", "email", "https://www.googleapis.com/auth/gmail.readonly"],
4 "resourceOauth2ReturnUrl": "https://my-app.example.com/oauth2/callback",
5 "workloadAccessToken": "eyJ..."
6}
返回示例
Plain Text
1{
2 "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=xxx&redirect_uri=xxx&scope=openid+email&state=xxx",
3 "sessionUri": "a1b2c3d4e5f6...",
4 "sessionStatus": "IN_PROGRESS"
5}
评价此篇文章
