进行OIDC角色SSO时,通过调用AssumeRoleWithOIDC接口,获取扮演RAM角色的临时身份凭证(STS Token)。
接口说明
前提条件
- 确保已从外部身份提供商(IdP)获取到OIDC令牌(OIDC Token)。
- 确保已在RAM中创建了OIDC身份提供商。具体操作,请参见创建OIDC身份提供商或CreateOIDCProvider 。
- 确保已在RAM中创建了可信实体为OIDC身份提供商的RAM角色。具体操作,请参见创建可信实体为身份提供商的RAM角色或CreateRole 。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
当前API暂无授权信息透出。
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
OIDCProviderArn | string | 是 | OIDC身份提供商的ARN。 您可以通过RAM控制台或API查看OIDC身份提供商的ARN。具体如下:
| acs:ram::113511544585****:oidc-provider/TestOidcIdp |
RoleArn | string | 是 | acs:ram::113511544585****:role/testoidc | |
OIDCToken | string | 是 | 由外部IdP签发的OIDC令牌(OIDC Token)。 长度:4~20000个字符。 说明需要输入原始OIDC Token,无需Base64解码。 | eyJraWQiOiJKQzl3eHpyaHFKMGd0**** |
Policy | string | 否 | 为STS Token额外添加的一个权限策略,进一步限制STS Token的权限。具体如下:
长度:1~1024个字符。 | {"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"} |
DurationSeconds | Long | 否 | Token有效期。单位:秒。 默认值:3600。最小值:900。最大值: 关于设置角色最大会话时间 | 3600 |
RoleSessionName | string | 否 | 角色会话名称。 该参数为用户自定义参数。通常设置为调用该API的用户身份,例如:用户名。在操作审计日志中,即使是同一个RAM角色执行的操作,也可以根据不同的RoleSessionName来区分实际操作者,以实现用户级别的访问审计。 格式:包含英文字母、数字、半角句号(.)、at(@)、短划线(-)和下划线(_)。 长度:2~64个字符。 | TestOidcAssumedRoleSession |
说明由于AssumeRoleWithOIDC接口使用OIDC Token进行身份认证,可以匿名访问,因此不需要提供公共参数中的
Signature
、SignatureMethod
、SignatureVersion
和AccessKeyId
参数。返回参数
示例
请求示例
https://sts.aliyuncs.com/?Action=AssumeRoleWithOIDC
&OIDCProviderArn=acs:ram::113511544585****:oidc-provider/TestOidcIdp
&RoleArn=acs:ram::113511544585****:role/testoidc
&OIDCToken=eyJraWQiOiJKQzl3eHpyaHFKMGd0****
&Policy={"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"}
&DurationSeconds=3600
&RoleSessionName=TestOidcAssumedRoleSession
&公共请求参数
正常返回示例
JSON
格式
{
"RequestId": "3D57EAD2-8723-1F26-B69C-F8707D8B565D",
"OIDCTokenInfo": {
"Subject": "KryrkIdjylZb7agUgCEf****",
"Issuer": "https://dev-xxxxxx.okta.com",
"ClientIds": "496271242565057****"
},
"AssumedRoleUser": {
"AssumedRoleId": "33157794895460****",
"Arn": "acs:ram::113511544585****:role/testoidc/TestOidcAssumedRoleSession"
},
"Credentials": {
"SecurityToken": "CAIShwJ1q6Ft5B2yfSjIr5bSEsj4g7BihPWGWHz****",
"Expiration": "2021-10-20T04:27:09Z",
"AccessKeySecret": "CVwjCkNzTMupZ8NbTCxCBRq3K16jtcWFTJAyBEv2****",
"AccessKeyId": "STS.NUgYrLnoC37mZZCNnAbez****"
}
}
XML
格式
<?xml version="1.0" encoding="UTF-8" ?>
<AssumeRoleWithOIDCResponse>
<RequestId>3D57EAD2-8723-1F26-B69C-F8707D8B565D</RequestId>
<OIDCTokenInfo>
<Subject>KryrkIdjylZb7agUgCEf****</Subject>
<Issuer>https://dev-xxxxxx.okta.com</Issuer>
<ClientIds>496271242565057****</ClientIds>
</OIDCTokenInfo>
<AssumedRoleUser>
<AssumedRoleId>33157794895460****</AssumedRoleId>
<Arn>acs:ram::113511544585****:role/testoidc/TestOidcAssumedRoleSession</Arn>
</AssumedRoleUser>
<Credentials>
<SecurityToken>CAIShwJ1q6Ft5B2yfSjIr5bSEsj4g7BihPWGWHz****</SecurityToken>
<Expiration>2021-10-20T04:27:09Z</Expiration>
<AccessKeySecret>CVwjCkNzTMupZ8NbTCxCBRq3K16jtcWFTJAyBEv2****</AccessKeySecret>
<AccessKeyId>STS.NUgYrLnoC37mZZCNnAbez****</AccessKeyId>
</Credentials>
</AssumeRoleWithOIDCResponse>
错误码
访问错误中心查看更多错误码。