すべてのプロダクト
Search
ドキュメントセンター

Resource Access Management:ロールベース SSO の SAML レスポンス

最終更新日:Jul 01, 2026

ロールベース SSO の SAML レスポンスと SAML アサーションに含める必要がある要素と、任意の要素を一覧で示します。

背景情報

SAML 2.0 ベースのシングルサインオン (SSO) フローでは、企業ユーザーが ID プロバイダー (IdP) にサインインした後、IdP は SAML 2.0 HTTP-POST バインディングに従って、SAML アサーションを含む認証応答を生成します。ブラウザまたはアプリケーションは、この応答を自動的に Alibaba Cloud に転送します。Alibaba Cloud はアサーションを使用してユーザーのサインイン状態を検証し、サインイン主体を抽出します。アサーションには Alibaba Cloud が要求するすべての要素を含める必要があります。含まれていない場合、SSO は失敗します。

SAML レスポンス

IdP は、以下に示す必須要素をすべて含む SAML レスポンスを Alibaba Cloud に送信する必要があります。いずれかの要素が欠落している場合、SSO は失敗します。

<saml2p:Response>
    <saml2:Issuer>...</saml2:Issuer>
    <saml2p:Status>
        ...
    </saml2p:Status>
    <saml2:Assertion>
        <saml2:Issuer>...</saml2:Issuer>
        <ds:Signature>
            ...
        </ds:Signature>
        <saml2:Subject>
            <saml2:NameID>${NameID}</saml2:NameID>
            <saml2:SubjectConfirmation>
                ...
            </saml2:SubjectConfirmation>
        </saml2:Subject>
        <saml2:Conditions>
            <saml2:AudienceRestriction>
                <saml2:Audience>${Audience}</saml2:Audience>
            </saml2:AudienceRestriction>
        </saml2:Conditions>
        <saml2:AuthnStatement>
            ...
        </saml2:AuthnStatement>
        <saml2:AttributeStatement>
            <saml2:Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName">
                ...
            </saml2:Attribute>
            <saml2:Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/Role">
                ...
            </saml2:Attribute>
        </saml2:AttributeStatement>
    </saml2:Assertion>
</saml2p:Response>

SAML アサーション要素

  • [標準SAML 2.0要素]

    これらの要素はSAML 2.0 プロトコル仕様に準拠しています。

    要素

    説明

    発行者

    Issuer の値は、Alibaba Cloud で IdP エンティティを作成したときにアップロードした IdP メタデータファイル内の EntityID と一致している必要があります。

    署名

    Alibaba Cloud では、改ざんを防止するために、署名付き SAML アサーションが必要です。Signature 要素とその子要素には、署名値や署名アルゴリズムなどの情報を含める必要があります。

    件名

    Subject 要素には、次の要素を含める必要があります。

    • NameID 要素は 1 つのみです。NameID の値は、SAML 2.0 プロトコルに従って、通常はユーザーの IdP 識別子に設定します。Alibaba Cloud は、この値を使用してサインインサブジェクトを識別しません。

    • SubjectConfirmationData 要素を含む SubjectConfirmation 要素を 1 つだけ含める必要があります。SubjectConfirmationData 要素には、次の属性が必要です。

      • NotOnOrAfter: SAML アサーションの有効期限を指定します。

      • Recipient: Alibaba Cloud は、この属性の値を使用して、アサーションが Alibaba Cloud 向けであることを検証します。値は https://signin.alibabacloud.com/saml-role/sso である必要があります。

      Subject 要素:

      <Subject>
        <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">administrator</NameID>        
        <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">   
          <SubjectConfirmationData NotOnOrAfter="2019-01-01T00:01:00.000Z" Recipient="https://signin.alibabacloud.com/saml-role/sso"/>    
        </SubjectConfirmation>
      </Subject>

    条件

    Conditions 要素には、少なくとも 1 つの Audience 要素を含む AudienceRestriction 要素を含める必要があります。1 つの Audience 要素の値は urn:alibaba:cloudcomputing:international である必要があります。

    説明

    IdP で Alibaba Cloud RAM を参照する複数の SAML アプリケーションを設定し、パラメーター付きのエンティティ ID (例:urn:alibaba:cloudcomputing:international#abc.123) を使用する場合、Audience 要素は、パラメーターのサフィックスを含めてエンティティ ID と完全に一致する必要があります。

    例: Conditions 要素:

    <Conditions>
      <AudienceRestriction>
        <Audience>urn:alibaba:cloudcomputing:international</Audience>
      </AudienceRestriction>
    </Conditions>           
  • [Alibaba Cloudのカスタム要素]

    AttributeStatement 要素は、以下の Alibaba Cloud 固有の Attribute 要素を含める必要があります:

    • Name 属性が https://www.aliyun.com/SAML-Role/Attributes/Role である Attribute 要素

      この要素は必須で、複数の値に対応しています。各 AttributeValue には、ユーザーが引き受け可能なロールを、RAM ロール ARN と IdP ARN をカンマ (,) で区切った形式で指定します。両方の ARN はコンソールから取得します:

      • RAM ロール ARN: ロール ページで RAM ロール名をクリックし、基本情報 セクションで ARN を確認します。

      • IdP ARN: [SSO] ページの ロールベースの SSO ログイン方式 タブで、IdP 名をクリックし、詳細 セクションで ARN を見つけます。

      説明

      複数の値を指定した場合、コンソールにサインインするユーザーは、表示されるリストからロールを選択できます。

      ロール Attribute 要素の例:

      <Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/Role">      
        <AttributeValue>acs:ram::$account_id:role/role1,acs:ram::$account_id:saml-provider/provider1</AttributeValue>
        <AttributeValue>acs:ram::$account_id:role/role2,acs:ram::$account_id:saml-provider/provider1</AttributeValue>
      </Attribute>               
      説明

      $account_id は、RAM ロールと IdP を所有する Alibaba Cloud アカウントの ID です。

    • Name 属性が https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName である Attribute 要素

      この要素は必須であり、1 つの値のみを受け入れます。AttributeValue は、コンソールのユーザー情報と ActionTrail ログに表示されます。同じロールを引き受けるユーザーを区別するために、ユーザーごとに一意の RoleSessionName (従業員 ID やメールアドレスなど) を使用します。

      AttributeValue は 2~64 文字で、英字、数字、および次の特殊文字 -_.@= を使用できます。

      例 RoleSessionName Attribute 要素:

      <Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName">
        <AttributeValue>user_id</AttributeValue>
      </Attribute>                     
    • Name 属性が https://www.aliyun.com/SAML-Role/Attributes/SessionDuration である Attribute 要素

      この要素は任意であり、最大 1 つの値を受け入れます。AttributeValue は、秒単位のセッション期間を表す整数である必要があります。最小値は 900 で、最大値は Role 属性で指定された RAM ロールに設定された最大セッション期間を超えることはできません。

      SessionDuration 属性 要素の例:

      <Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/SessionDuration">
        <AttributeValue>1800</AttributeValue>
      </Attribute>                  
  • [セッション期間]

    コンソールへのサインインでは、SessionDuration 値が SAML アサーションからセッション期間として使用されます。 AuthnStatement 要素で SessionNotOnOrAfter も定義されている場合、SessionDurationSessionNotOnOrAfter のうち短い方が適用されます。 どちらも指定されていない場合、セッション期間はデフォルトでロールの 最大セッション時間 設定になりますが、{key, select, AllowUserToChangePassword {ユーザーによるパスワードの管理を許可} AllowUserToManageMFADevices {ユーザーによる MFA デバイスの管理を許可} AllowUserToManageAccessKeys {ユーザーによる AccessKey の管理を許可} AllowUserToManageServiceCredentials {ユーザーによる API Key の管理を許可} AllowUserToManagePersonalDingTalk {ユーザーによる DingTalk バインドの管理を許可} AllowUserLongTermLogin {長期ログインの維持を許可} HelpAllowUserLongTermLogin {長期ログインをサポートするアプリ:アリババクラウド App、アリババクラウド ECS クライアント。} LoginSessionDuration {ログインセッションの有効期限} HelpLoginSessionDuration {ログインセッションの継続時間を指定します。有効値は {min} ~ {max} 時間です。} ValueOfLoginSessionDuration {{value} 時間} AllowUserToLoginWithPasskey {ユーザーによるパスキーログインを許可} MaxIdleDaysForUsers {ユーザーの最大アイドル日数} HelpMaxIdleDaysForUsersTitle {設定の変更は翌日に有効になります。以下の条件をすべて満たすユーザーは、コンソールへのログインが無効になります。} HelpMaxIdleDaysForUsersFirstCondition {1. 最後のログインから設定期間以上が経過している、またはユーザーの作成から設定期間以上が経過しており一度もログインしていない。} HelpMaxIdleDaysForUsersSecondCondition {2. ユーザーのログイン設定が 7 日以内に更新されていない。} MaxIdleDaysForAccessKeys {AccessKey の最大ア HelpMaxIdleDaysForAccessKeysTitle {設定の変更は翌日に有効になります。以下の条件をすべて満たす AccessKey は無効になります。} HelpMaxIdleDaysForAccessKeysFirstCondition {1. AccessKey の最終使用日時から最大アイドル期間以上が経過している。} HelpMaxIdleDaysForAccessKeysSecondCondition 7 日以内に更新されていない。} ValueOfIdleDays {{value} 日} other {{key}} } 設定が上限となります。 RAM ユーザーのセキュリティ設定の管理RAM ロールの最大セッション期間の設定

    プログラムによるサインインでは、AssumeRoleWithSAML を呼び出すときに DurationSeconds を指定し、かつ AuthnStatement 要素で SessionNotOnOrAfter も定義した場合、STS トークンの有効期間は DurationSecondsSessionNotOnOrAfter のうち、短い方の値になります。どちらも指定されていない場合、有効期間はデフォルトで 3,600 秒になります。

関連ドキュメント

ブラウザで SAML レスポンスを確認するにはどうすればよいですか?