进行SAML角色SSO时,通过调用AssumeRoleWithSAML接口,获取扮演RAM角色的临时身份凭证(STS Token)。
接口说明
前提条件
确保已从外部身份提供商(IdP)获取到 SAML 响应。
确保已在 RAM 中创建了 SAML 身份提供商。具体操作,请参见创建 SAML 身份提供商或 CreateSAMLProvider 。
确保已在 RAM 中创建了可信实体为 SAML 身份提供商的 RAM 角色。具体操作,请参见创建可信实体为身份提供商的 RAM 角色或 CreateRole 。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
调试
授权信息
请求参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| SAMLProviderArn |
string |
否 |
RAM 中创建的 SAML 身份提供商的 ARN。 格式: 您可以通过 RAM 控制台或 API 查看身份提供商的 ARN。具体如下:
|
acs:ram::123456789012****:saml-provider/company1 |
| RoleArn |
string |
否 |
要扮演的 RAM 角色的 ARN。 该角色是可信实体为 SAML 身份提供商的 RAM 角色。更多信息,请参见创建可信实体为身份提供商的 RAM 角色或 CreateRole 。 格式: 您可以通过 RAM 控制台或 API 查看角色 ARN。具体如下:
|
acs:ram::123456789012****:role/adminrole |
| SAMLAssertion |
string |
否 |
Base64 编码后的 SAML 断言。 长度为 4~100000 个字符。 说明
需要从 IdP 获取完整的 SAML 响应,不能是单独的 SAML 断言字段。 |
base64_encoded_saml_assertion |
| Policy |
string |
否 |
为 STS Token 额外添加的一个权限策略,进一步限制 STS Token 的权限。具体如下:
长度为 1~2048 个字符。 |
url_encoded_policy |
| DurationSeconds |
integer |
否 |
Token 有效期。单位:秒。 Token 有效期最小值为 900 秒,最大值为 您可以通过 CreateRole 或 UpdateRole 接口设置角色最大会话时间 |
3600 |
由于 AssumeRoleWithSAML 接口使用 SAML 断言进行身份认证,可以匿名访问,因此不需要提供公共请求参数中的Signature、SignatureMethod、SignatureVersion和AccessKeyId参数。关于公共请求参数的详情,请参见公共请求参数。
返回参数
|
名称 |
类型 |
描述 |
示例值 |
|
object |
返回参数。 |
||
| RequestId |
string |
请求 ID。 |
6894B13B-6D71-4EF5-88FA-F32781734A7F |
| SAMLAssertionInfo |
object |
SAML 断言中的部分信息。 |
|
| SubjectType |
string |
SAML 断言中 |
persistent |
| Subject |
string |
SAML 断言中 |
alice@example.com |
| Issuer |
string |
SAML 断言中 |
http://example.com/adfs/services/trust |
| Recipient |
string |
SAML 断言中 |
https://signin.aliyun.com/saml-role/SSO |
| AssumedRoleUser |
object |
角色扮演临时身份。 |
|
| AssumedRoleId |
string |
临时身份的 ID。 |
34458433936495****:alice |
| Arn |
string |
临时身份的 ARN。 |
acs:sts::123456789012****:assumed-role/AdminRole/alice |
| Credentials |
object |
访问凭证。 |
|
| SecurityToken |
string |
安全令牌。 说明
安全令牌的长度不固定,我们强烈建议您不要对安全令牌的最大长度做任何限制。 |
******** |
| Expiration |
string |
Token 到期失效时间(UTC 时间)。 |
2015-04-09T11:52:19Z |
| AccessKeySecret |
string |
访问密钥。 |
wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK**** |
| AccessKeyId |
string |
访问密钥 ID。 |
STS.L4aBSCSJVMuKg5U1**** |
| SourceIdentity |
string |
源身份信息。 在扮演角色时,可以指定扮演者的源身份(SourceIdentity)作为会话的初始身份标识。 该源身份的值在持续扮演角色的链式会话中将一直存在,中途不可更改,可确保操作的可追溯性和安全性。 如果没有设置源身份信息,则该字段不会返回。 |
Alice |
示例
正常返回示例
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****"
},
"SourceIdentity": "Alice"
}
错误码
|
HTTP status code |
错误码 |
错误信息 |
描述 |
|---|---|---|---|
| 500 | InternalError | STS Server Internal Error happened, please send the RequestId to us. |
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。