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

Resource Access Management:ユーザーベースSSOのSAMLレスポンス

最終更新日:Oct 31, 2024

このトピックでは、ユーザーベースのシングルサインオン (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:Assertion>
</saml2p:Response>

SAMLアサーションの要素

  • SAMLの共通要素2.0

    SAML 2.0の詳細については、「SAML 2.0」をご参照ください。

    要素

    説明

    発行者

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

    署名

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

    件名

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

    • NameIDサブエレメントは1つだけです。 サブ要素は、Alibaba Cloudアカウント内のRAMユーザーを識別するために使用されます。 詳細については、このトピックのNameIDの説明と例を参照してください。

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

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

      • 受信者: SAMLアサーションの受信者。 Alibaba Cloudは、この属性の値に基づいてSAMLアサーションの受信者をチェックします。 したがって、この属性を https://signin-intl.aliyun.com/saml/SSO .

      次のスクリプトは、Subject要素の例を示しています。

      <Subject>
        <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">Alice@example.onaliyun.com</NameID>        
        <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">   
          <SubjectConfirmationData NotOnOrAfter="2019-01-01T00:01:00.000Z" Recipient="https://signin-intl.aliyun.com/saml/SSO"/>    
        </SubjectConfirmation>
      </Subject>

    条件

    Conditions要素には、AudienceRestrictionサブ要素を含める必要があります。 AudienceRestrictionサブ要素には、1つ以上のAudienceサブ要素を含めることができます。 Audienceサブ要素の値は、 https://signin-intl.aliyun.com/${accountId}/saml/SSO ${accountId} は、Alibaba CloudアカウントのIDを指定します。

    次のスクリプトは、Conditions要素の例を示しています。

    <Conditions>
      <AudienceRestriction>
        <Audience>https://signin-intl.aliyun.com/${accountId}/saml/SSO</Audience>
      </AudienceRestriction>
    </Conditions>           
  • NameID要素

    Alibaba Cloud はユーザープリンシパル名 (UPN) を使用して RAM ユーザーを見つけます。 したがって、IdPによって生成されるSAMLアサーションには、RAMユーザーのUPNが含まれている必要があります。 ユーザーベースSSOを実装するために、Alibaba CloudはSAMLアサーションのNameID要素を解決し、この要素を対応するRAMユーザーのUPNにマップします。

    IdPによって発行されるSAMLアサーションを設定する場合、RAMユーザーのUPNをSAMLアサーションのNameID要素にマップする必要があります。

    NameID要素の値には、次のいずれかのサフィックスを含める必要があります。

    • Alibaba Cloudアカウントのドメインエイリアス: <username >@< domain_alias><username> RAMユーザーのユーザー名を指定します。 <domain_alias> はドメインエイリアスを指定します。 ドメインエイリアスの設定方法の詳細については、「ドメインエイリアスの作成と検証」をご参照ください。

    • 補助ドメイン名: <username >@< auxiliary_domain><username> は、RAMユーザーのユーザー名を指定します。 <auxiliary_domain> は、補助ドメイン名を指定します。 補助ドメイン名の設定方法については、「ロールベースSSO用のAlibaba CloudのSAML設定の設定」をご参照ください。

      説明

      ドメインエイリアスと補助ドメイン名の両方を設定する場合、NameID要素の値にはドメインエイリアスが付いています。

    • Alibaba Cloudアカウントのデフォルトドメイン名: <username >@< default_domain><username> RAMユーザーのユーザー名を指定します。 <default_domain> は、デフォルトのドメイン名を指定します。 デフォルトドメイン名を設定する方法の詳細については、「デフォルトドメイン名の表示と変更」をご参照ください。

      説明

      ドメインエイリアスまたは補助ドメイン名を設定している場合でも、Alibaba Cloudアカウントのデフォルトドメイン名をNameID要素のサフィックスとして使用できます。

  • NameIDの例

    この例では、Alibaba Cloudアカウントに対してAliceという名前のRAMユーザーが作成され、Alibaba Cloudアカウントのデフォルトドメイン名がexample.onaliyun.comされています。

    • Alibaba Cloudアカウントのドメインエイリアスをexample.comに設定した場合、SAMLアサーションのNameID要素の値がAlice@example.onaliyun.comまたはAlice@example.comされます。

    • 補助ドメイン名をexample.netに設定し、ドメインエイリアスが設定されていない場合、SAMLアサーションのNameID要素の値がAlice@example.onaliyun.comまたはAlice@example.netされます。

    • Alibaba Cloudアカウントのドメインエイリアスをexample.comに設定し、補助ドメイン名をexample.netに設定した場合、SAMLアサーションのNameID要素の値がAlice@example.onaliyun.comまたはAlice@example.comになります。 補助ドメイン名は使用できません。

関連ドキュメント

Google ChromeでSAMLレスポンスを表示するにはどうすればよいですか?