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

Resource Access Management:ロールベース SSO の SAML 応答

最終更新日:Mar 06, 2026

このトピックでは、ロールベースのシングルサインオン (SSO) における Security Assertion Markup Language (SAML) 応答の構文について説明します。また、SAML 応答内の SAML アサーションの要素についても説明します。

背景情報

SAML 2.0 ベースの SSO では、ユーザーの ID が検証された後、ID プロバイダー (IdP) は認証応答を生成し、ブラウザまたはプログラムを使用してこの応答を Alibaba Cloud に送信します。この応答には、SAML 2.0 の HTTP POST バインディングの仕様に準拠した SAML アサーションが含まれています。Alibaba Cloud は SAML アサーションを使用して、ユーザーのログインステータスと ID を判断します。したがって、SAML アサーションには Alibaba Cloud が要求する要素が含まれている必要があります。SAML アサーションに必要な要素が含まれていない場合、SSO は失敗します。

SAML 応答

IdP から Alibaba Cloud に送信される各 SAML 応答には、次の要素が含まれていることを確認してください。含まれていない場合、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 の詳細については、「SAML 2.0」をご参照ください。

    要素

    説明

    Issuer

    Issuer 要素の値は、Alibaba Cloud 管理コンソールで [IdP] にアップロードするメタデータファイル内の EntityID と一致する必要があります。

    Signature

    SAML アサーションは署名する必要があります。 Signature 要素には、署名値や署名アルゴリズムなどの情報が含まれている必要があります。 署名は、署名が生成された後に署名済みのSAML アサーションが変更されていないことを検証するために使用されます。

    Subject

    Subject 要素は、以下のサブ要素を含める必要があります:

    • NameID サブ要素は 1 つのみです。SAML 2.0 に基づいて NameID の値を指定する必要があります。ただし、Alibaba Cloud は NameID の値に基づいてログイン ID を判断しません。

    • SubjectConfirmation」サブ要素は1つだけ許可され、その中に「SubjectConfirmationData」サブ要素が含まれている必要があります。この「SubjectConfirmationData」サブ要素には、以下の属性を含める必要があります:

      • NotOnOrAfter: SAML アサーションの有効期間。

      • [受信者]: SAML アサーションの受信者です。Alibaba Cloud は、この属性の値に基づいて SAML アサーションの受信者を検証します。したがって、この属性を 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

    Conditions 要素は、AudienceRestriction サブ要素を含む必要があります。AudienceRestriction サブ要素は 1 つ以上の Audience サブ要素を含むことができます。Audience サブ要素の値は または urn:alibaba:cloudcomputing:international である必要があります。

    次のスクリプトは、Conditions 要素の例です:

    <Conditions>
      <AudienceRestriction>
        <Audience>urn:alibaba:cloudcomputing:international</Audience>
      </AudienceRestriction>
    </Conditions>           
  • Alibaba Cloud が要求するカスタム要素

    Alibaba Cloud では、SAML アサーション内の AttributeStatement 要素に、以下の Attribute サブ要素が含まれている必要があります。

    • Role 属性: Name 属性が https://www.aliyun.com/SAML-Role/Attributes/Role に設定された Attribute 要素。

      このサブ要素は必須であり、1 つ以上の AttributeValue サブ要素を含みます。AttributeValue は、お客様の IdP 内のユーザーが偽装可能なロールの一覧を示します。AttributeValue サブ要素の値は、ロールの Alibaba Cloud リソース名 (ARN) と IdP の ARN のカンマ区切りのペアです。ロールの ARN および IdP の ARN は、RAM コンソールで確認できます。

      • ロールの ARN を表示するには、[ロール] ページに移動し、RAM ロールの名前をクリックします。表示されたページの [基本情報] セクションで、ロールの ARN を確認できます。

      • IdP の ARN を表示するには、[SSO] ページに移動します。[ロールベース SSO] タブで、IdP の名前をクリックします。[IdP 情報] セクションで IdP の ARN を確認できます。

      説明

      ロール属性に複数の AttributeValue サブ要素が含まれている場合、ユーザーは Alibaba Cloud 管理コンソールにログインする際に、引き受けるロールを選択する必要があります。

      以下のスクリプトは、Role 属性 の例を示しています。

      <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 要素。

      このサブ要素は必須であり、RAM コンソールおよび ActionTrail ログに表示されるユーザー情報を指定する AttributeValue サブ要素を 1 つだけ含みます。複数のユーザーが同じロールを偽装する場合は、ユーザーごとに RoleSessionName 属性に異なる値を指定します。各値はユーザーを一意に識別します。たとえば、値を従業員 ID またはメールアドレスに設定できます。

      AttributeValue サブ要素の値は、長さが 2~64 文字である必要があり、英字、数字、および以下の特殊文字のみを含めることができます: - _ . @ =

      以下のスクリプトは、RoleSessionName 属性 の例を示しています。

      <Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName">
        <AttributeValue>user_id</AttributeValue>
      </Attribute>                     
    • SessionDuration 属性: Attribute のサブ要素で、Name 属性が https://www.aliyun.com/SAML-Role/Attributes/SessionDuration に設定されています。

      この要素はオプションであり、各セッションの最大期間を指定する AttributeValue サブ要素を 1 つだけ含みます。このサブ要素の値は、秒単位の整数です。この値は、Role 属性で指定された最大セッション期間を超えることはできません。最小値は 900 秒です。

      以下のスクリプトは SessionDuration 属性の例です。

      <Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/SessionDuration">
        <AttributeValue>1800</AttributeValue>
      </Attribute>                  
  • ロールの最大セッション期間

    コンソールを使用してロールを引き受ける場合、そのロールの最大セッション期間は、SAML アサーションで指定された SessionDuration 属性の値になります。また、AuthnStatement 要素の SessionNotOnOrAfter 属性も指定されている場合は、SessionDurationSessionNotOnOrAfter のうち小さい方の値が最大セッション期間になります。SessionDuration も SessionNotOnOrAfter も指定されていない場合は、ロールの [最大セッション期間] パラメーターと [ログオン セッションの有効期間] パラメーターのうち小さい方の値が最大セッション期間になります。詳細については、「RAM ユーザーのセキュリティ設定の管理」および「RAM ロールの最大セッション期間の指定」をご参照ください。

    DurationSeconds」パラメーターを AssumeRoleWithSAML 操作の呼び出し時に指定し、かつ「AuthnStatement」要素内で「SessionNotOnOrAfter」属性を定義した場合、最大セッション期間は「DurationSeconds」と「SessionNotOnOrAfter」のうち小さい方の値になります。詳細については、「AssumeRoleWithSAML」をご参照ください。「SessionDuration」も「SessionNotOnOrAfter」も指定されていない場合、最大セッション期間はデフォルトで 3,600 秒になります。

参照

Google Chrome で SAML 応答を表示する方法