この操作では、ロールベースのシングルサインオン (SSO) の使用中にロールを引き受けるための一時 ID を取得します。
リクエストパラメーター
パラメーター | タイプ | 必須項目 | 例 | 説明 |
---|---|---|---|---|
Action | String | 必須 | AssumeRoleWithSAML | 実行する操作。 このパラメーターを AssumeRoleWithSAML に設定します。 |
SAMLProviderArn | String | 必須 | acs:ram::123456789012****:saml-provider/company1 | RAM コンソールで作成された ID プロバイダー (IdP) の Alibaba Cloud リソース名 (ARN)。 形式:acs:ram::$account_ID:saml-provider/$saml_provider_ID |
RoleArn | String | 必須 | acs:ram::123456789012****:role/adminrole | 引き受けるロール の ARN 。 形式: acs:ram::$accountID:role/$roleName |
SAMLAssertion | String | 必須 | <base64_encoded_saml_assertion> | Base64 エンコードを使用してエンコードされた SAML アサーション。 値は 4 ~ 100,000 バイトである必要があります。 |
Policy | String | 任意 | <url_encoded_policy> | 生成された STS トークンの権限を指定するポリシー。 値の長さは最大 1,024 バイトです。 このパラメーターを指定しない場合、STS トークンには指定された RAM ロールのすべてのアクセス権限が付与されます。 |
DurationSeconds | Long | 任意 | 3600 | STS トークンの有効期間。 単位:秒 有効値:900 〜 3600。 既定値: 3600。 |
応答パラメーター
パラメーター | タイプ | 例 | 説明 |
---|---|---|---|
RequestId | String | 6894B13B-6D71-4EF5-88FA-F32781734A7F | リクエストの ID。 |
Credentials | アクセス資格情報。 | ||
└AccessKeyId | String | STS.L4aBSCSJVMuKg5U1**** | AccessKey ID。 |
└AccessKeySecret | String | wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK**** | AccessKey Secret。 |
└SecurityToken | String | ******** | STS トークン。 |
└Expiration | String | 2015-04-09T11:52:19Z | トークンの有効期限。 |
AssumedRoleUser | ロールを引き受けるために使用する一時 ID 。 | ||
└Arn | String | acs:sts::123456789012****:assumed-role/AdminRole/alice | ロールを引き受けるために使用する一時 ID の ARN 。 形式: acs:ram::$accountID:assumed-role/$roleName/$roleSessionName .
|
└AssumedRoleUserId | String | 34458433936495****:alice | ロールを引き受ける一時 ID の ID 。 |
SAMLAssertionInfo | SAML アサーションの情報。 | ||
└SubjectType | String | persistent | SAML アサーションの NameID の値の形式。 名前 ID に urn:oasis:names:tc:SAML:2.0:nameid-format: プレフィックスが含まれている場合、そのプレフィックスは ID から削除されます。 たとえば、ID が urn:oasis:names:tc:SAML:2.0:nameid-format:persistant/transient
の場合、persistant/transient のみが表示されます。
|
└Subject | String | alice@example.com | SAML アサーションの Subject-NameID フィールドの値。
|
└Recipient | String | https://signin.aliyun.com/saml-role/SSO | SAML アサーションの Subject-SubjectConfirmation-SubjectConfirmationData フィールドの Recipient 属性。
|
└Issuer | String | http://example.com/adfs/services/trust | SAML アサーションの Issuer フィールドの値。
|
例
注 SAMLAssertion パラメーターに大量の本文テキストがあり、GET メソッドを使用して API リクエストを送信すると、エラーが発生する場合があります。 したがって、POST メソッドを使用して
API リクエストを送信することを推奨します。
レスポンスの例
XML
形式
<AssumeRoleResponse>
<RequestId>6894B13B-6D71-4EF5-88FA-F32781734A7F</RequestId>
<AssumedRoleUser>
<arn>acs:sts::123456789012****:assumed-role/AdminRole/alice</arn>
<AssumedRoleUserId>34458433936495****:alice</AssumedRoleUserId>
</AssumedRoleUser>
<Credentials>
<AccessKeyId>STS.L4aBSCSJVMuKg5U1****</AccessKeyId>
<AccessKeySecret>wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK****</AccessKeySecret>
<SecurityToken>********</SecurityToken>
<Expiration>2015-04-09T11:52:19Z</Expiration>
</Credentials>
<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>
</AssumeRoleResponse>
JSON
形式
{
"Credentials": {
"AccessKeyId": "STS.L4aBSCSJVMuKg5U1****",
"AccessKeySecret": "wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK****",
"Expiration": "2015-04-09T11:52:19Z",
"SecurityToken": "********"
},
"AssumedRoleUser": {
"arn": "acs:sts::1234567890123456:assumed-role/AdminRole/alice",
"AssumedRoleUserId":"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"
}
Error codes
HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 |
---|---|---|---|
400 | MissingParameter.SAMLAssertion | Parameter SAMLAssertion is required. | SAMLAssertion パラメーターが指定されていない場合に返されるエラーメッセージ。 |
400 | MissingParameter.SAMLProviderArn | Parameter SAMLProviderArn is required. | SAMLProviderArn パラメーターが指定されていない場合に返されるエラーメッセージ。 |
400 | MissingParameter.RoleArn | Parameter RoleArn is required. | RoleArn パラメーターが指定されていない場合に返されるエラーメッセージ。 |
400 | InvalidParameter.PolicyGrammar | Invalid Policy. | 指定された権限ポリシーが無効な場合に返されるエラーメッセージ。 |
400 | InvalidParameter.PolicySize | The max size of policy string is 1024. | 指定されたポリシー文字列の長さが上限に達した場合に返されるエラーメッセージ。 ポリシー文字列の長さは最大 1,024 バイトです。 |
400 | InvalidParameter.RoleSessionName | The RoleSessionName is invalid. | 指定されたロールセッション名が無効な場合に返されるエラーメッセージ。 |
400 | InvalidParameter.DurationSeconds | The DurationSeconds is invalid. | 指定された DurationSeconds パラメーターの値が無効な場合に表示されるエラーメッセージ。 |
404 | EntityNotExist.SAMLProvider | Can not find SAML provider. | 指定された SAML IdP が存在しない場合に表示されるエラーメッセージ。 |
404 | EntityNotExist.RoleArn | The specified Role does not exists. | 指定された RAM ロール が存在しない場合に表示されるエラーメッセージ。 |
401 | AuthenticationFail.IDPMetadata.Invalid | The IdP Metadata of your SAML Provider is invalid. | SAML IdP のメタデータが無効な場合に返されるエラーメッセージ。 |
401 | AuthenticationFail.SAMLAssertion.Expired | The SAML Assertion is expired. | SAML アサーションの有効期限が切れている場合に返されるエラーメッセージ。 |
401 | AuthenticationFail.SAMLAssertion.Invalid | The SAML Assertion is invalid. | SAML アサーションが無効な場合に表示されるエラーメッセージ。 |