文档首页/ 智能体身份/ API参考/ API/ 凭证提供商/ 从资源凭证提供商处获取 OAuth 2.0 令牌
更新时间:2026-11-04 GMT+08:00
分享

从资源凭证提供商处获取 OAuth 2.0 令牌

功能介绍

使用配置的流程返回指定资源的OAuth2.0令牌。

URI

POST /v1/oauth2/token

请求参数

表1 请求Body参数

参数

是否必选

参数类型

描述

custom_parameters

否

Map<String,String>

参数解释:

授权请求的附加自定义参数(不会覆盖标准OAuth2参数)。

约束限制:

不涉及。

取值范围:

键值对,每个值长度为1~2048个字符。

默认取值:

不涉及。

custom_state

否

String

参数解释:

用于CSRF保护的不透明字符串(在回调URL响应中作为标准state参数返回)。

约束限制:

不涉及。

取值范围:

长度为1~4096个字符。

默认取值:

不涉及。

force_authentication

否

Boolean

参数解释:

是否发起新的3LO流程,无论现有会话如何。

约束限制:

不涉及。

取值范围:

  • true:发起新的3LO流程。

  • false:使用现有会话。

默认取值:

false

oauth2_flow

是

String

参数解释:

要执行的OAuth2流程类型。

约束限制:

不涉及。

取值范围:

  • USER_FEDERATION:用户联合流程

  • M2M:机器对机器流程

默认取值:

不涉及。

resource_credential_provider_name

是

String

参数解释:

资源的凭证提供者名称。

约束限制:

不涉及。

取值范围:

只能由英文字母、数字及"-"、"_"组成,长度为1~128个字符。

默认取值:

不涉及。

resource_oauth2_return_url

否

String

参数解释:

令牌检索后重定向的回调URL(必须为工作负载身份配置)。

约束限制:

不涉及。

取值范围:

必须以协议开头,长度为1~2048个字符。

默认取值:

不涉及。

scopes

否

Array of strings

参数解释:

请求的OAuth作用域(粗粒度权限,由rich_authorization_details补充细粒度控制)。

约束限制:

不涉及。

取值范围:

数组长度范围[1,50],每个值长度为1~128个字符。

默认取值:

不涉及。

session_uri

否

String

参数解释:

用户认证会话的唯一标识符(跟踪OAuth2流程状态)。

约束限制:

不涉及。

取值范围:

必须以"urn:ietf:params:oauth:request_uri:"开头,后面跟随字母、数字、"."、"-"、"_"、"~"组成的字符串,长度为1~1024个字符。

默认取值:

不涉及。

workload_access_token

否

String

参数解释:

请求OAuth2.0令牌的工作负载身份令牌。

约束限制:

不涉及。

取值范围:

长度为1~131072个字符。

默认取值:

不涉及。

响应参数

状态码:200

表2 响应Body参数

参数

参数类型

描述

access_token

String

参数解释:

要使用的OAuth2.0访问令牌(如果请求了rich_authorization_details,则嵌入RAR授权详情声明)。

取值范围:

长度为1~131072个字符。

authorization_url

String

参数解释:

发起授权的URL(当需要用户授权时提供,包含编码的RAR详情以供用户同意)。

取值范围:

长度至少为1个字符。

session_status

String

参数解释:

用户授权会话的状态(决定OAuth2流程中的下一步操作)。

取值范围:

  • IN_PROGRESS:进行中

  • FAILED:失败

session_uri

String

参数解释:

用户认证会话的唯一标识符(与请求的session_uri匹配)。

取值范围:

必须以"urn:ietf:params:oauth:request_uri:"开头,后面跟随字母、数字、"."、"-"、"_"、"~"组成的字符串,长度为1~1024个字符。

状态码:400

表3 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码。

取值范围:

不涉及。

error_msg

String

参数解释:

错误信息。

取值范围:

不涉及。

request_id

String

参数解释:

请求ID。

取值范围:

不涉及。

encoded_authorization_message

String

参数解释:

加密后的认证失败信息,可以通过STS5解密接口进行解密。

取值范围:

不涉及。

状态码:401

表4 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码。

取值范围:

不涉及。

error_msg

String

参数解释:

错误信息。

取值范围:

不涉及。

request_id

String

参数解释:

请求ID。

取值范围:

不涉及。

encoded_authorization_message

String

参数解释:

加密后的认证失败信息,可以通过STS5解密接口进行解密。

取值范围:

不涉及。

状态码:403

表5 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码。

取值范围:

不涉及。

error_msg

String

参数解释:

错误信息。

取值范围:

不涉及。

request_id

String

参数解释:

请求ID。

取值范围:

不涉及。

encoded_authorization_message

String

参数解释:

加密后的认证失败信息,可以通过STS5解密接口进行解密。

取值范围:

不涉及。

状态码:404

表6 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码。

取值范围:

不涉及。

error_msg

String

参数解释:

错误信息。

取值范围:

不涉及。

request_id

String

参数解释:

请求ID。

取值范围:

不涉及。

encoded_authorization_message

String

参数解释:

加密后的认证失败信息,可以通过STS5解密接口进行解密。

取值范围:

不涉及。

状态码:429

表7 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码。

取值范围:

不涉及。

error_msg

String

参数解释:

错误信息。

取值范围:

不涉及。

request_id

String

参数解释:

请求ID。

取值范围:

不涉及。

encoded_authorization_message

String

参数解释:

加密后的认证失败信息,可以通过STS5解密接口进行解密。

取值范围:

不涉及。

状态码:500

表8 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码。

取值范围:

不涉及。

error_msg

String

参数解释:

错误信息。

取值范围:

不涉及。

request_id

String

参数解释:

请求ID。

取值范围:

不涉及。

encoded_authorization_message

String

参数解释:

加密后的认证失败信息,可以通过STS5解密接口进行解密。

取值范围:

不涉及。

请求示例

从资源凭证提供商获取OAuth2.0令牌。

POST https://{endpoint}/v1/oauth2/token

{
  "oauth2_flow" : "USER_FEDERATION",
  "resource_credential_provider_name" : "my-oauth2-provider",
  "resource_oauth2_return_url" : "https://example.com/callback",
  "session_uri" : "urn:ietf:params:oauth:request_uri:abc123"
}

响应示例

状态码:200

{
  "access_token" : "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "session_status" : "IN_PROGRESS",
  "session_uri" : "urn:ietf:params:oauth:request_uri:abc123"
}

状态码

状态码

描述

200

请求成功(如果请求了RAR声明,则令牌中嵌入RAR声明)。

400

请求体异常(包括无效RAR类型/操作/位置验证)。

401

认证失败。

403

没有操作权限(包括RAR细粒度授权失败)。

404

未找到相应的资源。

429

请求过于频繁。

500

服务端异常。

错误码

请参见错误码。

相关文档