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****

示例

正常返回示例

JSON格式

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

错误码

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

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