首页 访问控制 API参考 API参考(STS) API目录 角色扮演 AssumeRoleWithSAML - SAML角色SSO时获取扮演角色的临时身份凭证

AssumeRoleWithSAML - SAML角色SSO时获取扮演角色的临时身份凭证

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

接口说明

前提条件

调试

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

调试

授权信息

当前API暂无授权信息透出。

请求参数

名称类型必填描述示例值
SAMLProviderArnstring

RAM中创建的SAML身份提供商的ARN。

格式:acs:ram::<account_id>:saml-provider/<saml_provider_id>

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

acs:ram::123456789012****:saml-provider/company1
RoleArnstring

要扮演的RAM角色的ARN。

该角色是可信实体为SAML身份提供商的RAM角色。更多信息,请参见创建可信实体为身份提供商的RAM角色CreateRole

格式:acs:ram::<account_id>:role/<role_name>

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

acs:ram::123456789012****:role/adminrole
SAMLAssertionstring

Base64编码后的SAML断言。

长度为4~100000个字符。

说明需要从IdP获取完整的SAML响应,不能是单独的SAML断言字段。
base64_encoded_saml_assertion
Policystring

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

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

长度为1~2048个字符。

url_encoded_policy
DurationSecondslong

Token有效期。单位:秒。

Token有效期最小值为900秒,最大值为MaxSessionDuration设置的时间,默认值为3600秒。

您可以通过CreateRole或UpdateRole接口设置角色最大会话时间MaxSessionDuration。更多信息,请参见CreateRoleUpdateRole

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

返回参数

名称类型描述示例值
object

返回参数。

RequestIdstring

请求ID。

6894B13B-6D71-4EF5-88FA-F32781734A7F
SAMLAssertionInfoobject

SAML断言中的部分信息。

SubjectTypestring

SAML断言中NameID的格式。当前缀为urn:oasis:names:tc:SAML:2.0:nameid-format:时,前缀会被移除。例如:persistent/transient

persistent
Subjectstring

SAML断言中Subject - NameID字段的值。

alice@example.com
Issuerstring

SAML断言中Issuer字段的值。

http://example.com/adfs/services/trust
Recipientstring

SAML断言中Subject - SubjectConfirmation - SubjectConfirmationData字段中Recipient属性的值。

https://signin.aliyun.com/saml-role/SSO
AssumedRoleUserobject

角色扮演临时身份。

AssumedRoleIdstring

临时身份的ID。

34458433936495****:alice
Arnstring

临时身份的ARN。

acs:sts::123456789012****:assumed-role/AdminRole/alice
Credentialsobject

访问凭证。

SecurityTokenstring

安全令牌。

********
Expirationstring

Token到期失效时间(UTC时间)。

2015-04-09T11:52:19Z
AccessKeySecretstring

访问密钥。

wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK****
AccessKeyIdstring

访问密钥ID。

STS.L4aBSCSJVMuKg5U1****

示例

请求示例

https://sts.aliyuncs.com/?Action=AssumeRoleWithSAML
&SAMLProviderArn=acs:ram::123456789012****:saml-provider/company1
&RoleArn=acs:ram::123456789012****:role/adminrole
&SAMLAssertion=base64_encoded_saml_assertion
&DurationSeconds=3600
&公共请求参数

正常返回示例

JSON格式

{
  "Credentials": {
    "AccessKeyId": "STS.L4aBSCSJVMuKg5U1****",
    "AccessKeySecret": "wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK****",
    "Expiration": "2015-04-09T11:52:19Z",
    "SecurityToken": "********"
  },
  "AssumedRoleUser": {
    "arn": "acs:sts::1234567890123456:assumed-role/AdminRole/alice",
    "AssumedRoleId": "34458433936495****:alice"
  },
  "SAMLAssertionInfo": {
    "SubjectType": "persistent",
    "Subject": "alice@example.com",
    "Recipient": "https://signin.aliyun.com/saml-role/SSO",
    "Issuer": "http://example.com/adfs/services/trust"
  },
  "RequestId": "6894B13B-6D71-4EF5-88FA-F32781734A7F"
}

XML格式

<AssumeRoleWithSAMLResponse>
    <Credentials>
        <AccessKeyId>STS.L4aBSCSJVMuKg5U1****</AccessKeyId>
        <AccessKeySecret>wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK****</AccessKeySecret>
        <Expiration>2015-04-09T11:52:19Z</Expiration>
        <SecurityToken>********</SecurityToken>
    </Credentials>
    <AssumedRoleUser>
        <arn>acs:sts::1234567890123456:assumed-role/AdminRole/alice</arn>
        <AssumedRoleId>34458433936495****:alice</AssumedRoleId>
    </AssumedRoleUser>
    <SAMLAssertionInfo>
        <SubjectType>persistent</SubjectType>
        <Subject>alice@example.com</Subject>
        <Recipient>https://signin.aliyun.com/saml-role/SSO</Recipient>
        <Issuer>http://example.com/adfs/services/trust</Issuer>
    </SAMLAssertionInfo>
    <RequestId>6894B13B-6D71-4EF5-88FA-F32781734A7F</RequestId>
</AssumeRoleWithSAMLResponse>

错误码

Http code错误码错误信息
500InternalErrorSTS Server Internal Error happened, please send the RequestId to us.

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

阿里云首页 访问控制 相关技术圈