この操作では、ロールベースのシングルサインオン (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 アサーションが無効な場合に表示されるエラーメッセージ。