进行OIDC角色SSO时,通过调用AssumeRoleWithOIDC接口,获取扮演RAM角色的临时身份凭证(STS Token)。
接口说明
前提条件
确保已从外部身份提供商(IdP)获取到 OIDC 令牌(OIDC Token)。
确保已在 RAM 中创建了 OIDC 身份提供商。具体操作,请参见创建 OIDC 身份提供商或 CreateOIDCProvider 。
确保已在 RAM 中创建了可信实体为 OIDC 身份提供商的 RAM 角色。具体操作,请参见创建可信实体为身份提供商的 RAM 角色或 CreateRole 。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
调试
授权信息
请求参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| OIDCProviderArn |
string |
否 |
OIDC 身份提供商的 ARN。 您可以通过 RAM 控制台或 API 查看 OIDC 身份提供商的 ARN。具体如下:
|
acs:ram::113511544585****:oidc-provider/TestOidcIdp |
| RoleArn |
string |
否 |
需要扮演的 RAM 角色 ARN。 您可以通过 RAM 控制台或 API 查看角色 ARN。具体如下:
|
acs:ram::113511544585****:role/testoidc |
| OIDCToken |
string |
否 |
由外部 IdP 签发的 OIDC 令牌(OIDC Token)。 长度:4~20000 个字符。 说明
需要输入原始 OIDC Token,无需 Base64 解码。 |
eyJraWQiOiJKQzl3eHpyaHFKMGd0**** |
| Policy |
string |
否 |
为 STS Token 额外添加的一个权限策略,进一步限制 STS Token 的权限。具体如下:
长度:1~2048 个字符。 |
{"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"} |
| DurationSeconds |
integer |
否 |
Token 有效期。单位:秒。 默认值:3600。最小值:900。最大值: 关于设置角色最大会话时间 |
3600 |
| RoleSessionName |
string |
是 |
角色会话名称。 该参数为用户自定义参数。通常设置为调用该 API 的用户身份,例如:用户名。在操作审计日志中,即使是同一个 RAM 角色执行的操作,也可以根据不同的 RoleSessionName 来区分实际操作者,以实现用户级别的访问审计。 格式:包含英文字母、数字、半角句号(.)、at(@)、短划线(-)和下划线(_)。 长度:2~64 个字符。 |
TestOidcAssumedRoleSession |
由于 AssumeRoleWithOIDC 接口使用 OIDC Token 进行身份认证,可以匿名访问,因此不需要提供公共请求参数中的Signature、SignatureMethod、SignatureVersion和AccessKeyId参数。关于公共请求参数的详情,请参见公共请求参数。
返回参数
|
名称 |
类型 |
描述 |
示例值 |
|
object |
返回参数。 |
||
| RequestId |
string |
请求 ID。 |
3D57EAD2-8723-1F26-B69C-F8707D8B565D |
| OIDCTokenInfo |
object |
解析的 OIDC Token 信息。 |
|
| Subject |
string |
OIDC 主体。 对应 OIDC Token 中的 |
KryrkIdjylZb7agUgCEf**** |
| Issuer |
string |
OIDC 颁发者 URL。 对应 OIDC Token 中的 |
https://dev-xxxxxx.okta.com |
| ClientIds |
string |
OIDC 受众。多个之间用半角逗号(,)分隔。 对应 OIDC Token 中的 |
496271242565057**** |
| ExpirationTime |
string |
OIDC Token 的过期时间(UTC 时间)。 |
2021-10-20T04:27:09Z |
| IssuanceTime |
string |
OIDC Token 的签发时间(UTC 时间)。 |
2021-10-20T03:27:09Z |
| VerificationInfo |
string |
OIDC Token 的检验信息。更多信息,请参见管理 OIDC 身份提供商。 |
Success |
| AssumedRoleUser |
object |
角色扮演临时身份。 |
|
| AssumedRoleId |
string |
临时身份的 ID。 |
33157794895460**** |
| Arn |
string |
临时身份的 ARN。 |
acs:ram::113511544585****:role/testoidc/TestOidcAssumedRoleSession |
| Credentials |
object |
临时访问凭证(STS Token)。 |
|
| SecurityToken |
string |
安全令牌。 说明
安全令牌的长度不固定,我们强烈建议您不要对安全令牌的最大长度做任何限制。 |
CAIShwJ1q6Ft5B2yfSjIr5bSEsj4g7BihPWGWHz**** |
| Expiration |
string |
Token 到期失效时间(UTC 时间)。 |
2021-10-20T04:27:09Z |
| AccessKeySecret |
string |
访问密钥。 |
CVwjCkNzTMupZ8NbTCxCBRq3K16jtcWFTJAyBEv2**** |
| AccessKeyId |
string |
访问密钥 ID。 |
STS.NUgYrLnoC37mZZCNnAbez**** |
| SourceIdentity |
string |
源身份信息。 在扮演角色时,可以指定扮演者的源身份(SourceIdentity)作为会话的初始身份标识。 该源身份的值在持续扮演角色的链式会话中将一直存在,中途不可更改,可确保操作的可追溯性和安全性。 如果没有设置源身份信息,则该字段不会返回。 |
Alice |
示例
正常返回示例
JSON格式
{
"RequestId": "3D57EAD2-8723-1F26-B69C-F8707D8B565D",
"OIDCTokenInfo": {
"Subject": "KryrkIdjylZb7agUgCEf****",
"Issuer": "https://dev-xxxxxx.okta.com",
"ClientIds": "496271242565057****",
"ExpirationTime": "2021-10-20T04:27:09Z",
"IssuanceTime": "2021-10-20T03:27:09Z",
"VerificationInfo": "Success"
},
"AssumedRoleUser": {
"AssumedRoleId": "33157794895460****",
"Arn": "acs:ram::113511544585****:role/testoidc/TestOidcAssumedRoleSession"
},
"Credentials": {
"SecurityToken": "CAIShwJ1q6Ft5B2yfSjIr5bSEsj4g7BihPWGWHz****",
"Expiration": "2021-10-20T04:27:09Z",
"AccessKeySecret": "CVwjCkNzTMupZ8NbTCxCBRq3K16jtcWFTJAyBEv2****",
"AccessKeyId": "STS.NUgYrLnoC37mZZCNnAbez****"
},
"SourceIdentity": "Alice"
}
错误码
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。