进行OIDC角色SSO时,通过调用AssumeRoleWithOIDC接口,获取扮演RAM角色的临时身份凭证(STS Token)。

前提条件

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String AssumeRoleWithOIDC

要执行的操作。取值:AssumeRoleWithOIDC

OIDCProviderArn String acs:ram::113511544585****:oidc-provider/TestOidcIdp

OIDC身份提供商的ARN。

您可以通过RAM控制台或API查看OIDC身份提供商的ARN。具体如下:

RoleArn String acs:ram::113511544585****:role/testoidc

需要扮演的RAM角色ARN。

您可以通过RAM控制台或API查看角色ARN。具体如下:

OIDCToken String eyJraWQiOiJKQzl3eHpyaHFKMGd0****

由外部IdP签发的OIDC令牌(OIDC Token)。

长度:4~20000个字符。

说明 需要输入原始OIDC Token,无需Base64解码。
Policy String {"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"}

为STS Token额外添加的一个权限策略,进一步限制STS Token的权限。具体如下:

  • 如果指定该权限策略,则STS Token最终的权限取RAM角色权限策略与该权限策略的交集。
  • 如果不指定该权限策略,则STS Token最终的权限就是RAM角色的权限。

长度:1~1024个字符。

DurationSeconds Long 3600

会话过期时间。单位:秒。

默认值:3600。最小值:900。最大值:MaxSessionDuration设置的时间。

说明 关于设置角色最大会话时间MaxSessionDuration的具体操作,请参见CreateRoleUpdateRole
RoleSessionName String TestOidcAssumedRoleSession

角色会话名称。

该参数为用户自定义参数。通常设置为调用该API的用户身份,例如:用户名。在操作审计日志中,即使是同一个RAM角色执行的操作,也可以根据不同的RoleSessionName来区分实际操作者,以实现用户级别的访问审计。

格式:包含英文字母、数字、半角句号(.)、at(@)、短划线(-)和下划线(_)。

长度:2~64个字符。

说明 由于AssumeRoleWithOIDC接口使用OIDC Token进行身份认证,可以匿名访问,因此不需要提供公共参数中的SignatureSignatureMethodSignatureVersionAccessKeyId参数。关于公共请求参数的详情,请参见公共参数

返回数据

名称 类型 示例值 描述
RequestId String 3D57EAD2-8723-1F26-B69C-F8707D8B565D

请求ID。

OIDCTokenInfo Object

解析的OIDC Token信息。

Subject String KryrkIdjylZb7agUgCEf****

OIDC主体。

对应OIDC Token中的sub字段值。

Issuer String https://dev-xxxxxx.okta.com

OIDC颁发者URL。

对应OIDC Token中的iss字段值。

ClientIds String 496271242565057****

OIDC受众。多个之间用半角逗号(,)分隔。

对应OIDC Token中的aud字段值。

AssumedRoleUser Object

角色扮演临时身份。

AssumedRoleId String 33157794895460****

临时身份的ID。

Arn String acs:ram::113511544585****:role/testoidc/TestOidcAssumedRoleSession

临时身份的ARN。

Credentials Object

临时访问凭证(STS Token)。

SecurityToken String CAIShwJ1q6Ft5B2yfSjIr5bSEsj4g7BihPWGWHz****

安全令牌。

Expiration String 2021-10-20T04:27:09Z

失效时间。

AccessKeySecret String CVwjCkNzTMupZ8NbTCxCBRq3K16jtcWFTJAyBEv2****

访问密钥。

AccessKeyId String STS.NUgYrLnoC37mZZCNnAbez****

访问密钥ID。

示例

请求示例

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
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/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>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/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****"
  }
}

错误码

访问错误中心查看更多错误码。