進行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 |
否 |
Base 64 編碼後的 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. |
訪問錯誤中心查看更多錯誤碼。
變更歷史
更多資訊,參考變更詳情。