Amazon Cognito ユーザープールを使用して、SAML ID プロバイダーとして Auth0 を設定するにはどうすればよいですか?

最終更新日: 2021 年 7 月 16 日

Amazon Cognito ユーザープールを使用して、Security Assertion Markup Language 2.0 (SAML 2.0) ID プロバイダー (IdP) として Auth0 を使いたいと考えています。設定する方法を教えてください。

簡単な説明

Amazon Cognito ユーザープールでは、Auth0 などの SAML IdP を含め、サードパーティ (フェデレーション) を介してサインインすることができます。詳細については、「サードパーティー経由のユーザープールへのサインインの追加」および「ユーザープールへの SAML ID プロバイダーの追加」をご参照ください。

Auth0 と統合されたユーザープールにより、Auth0 アプリケーションのユーザーは Amazon Cognito からユーザープールトークンを取得することができます。詳細については、「ユーザープールのトークンの使用」を参照してください。

Auth0 を SAML IdP として設定するには、アプリクライアントとドメイン名を持つ Amazon Cognito ユーザープール、および Auth0 アプリケーションがある Auth0 アカウントが必要です。

解決方法

アプリクライアントとドメイン名を使用して Amazon Cognito ユーザープールを作成する

詳細については、以下の記事を参照してください。

Auth0 アカウントのサインアップ

Auth0 ウェブサイトに E メールアドレスとパスワードを入力し、サインアップして開始します。すでにアカウントがある場合は、ログインします。

Auth0 アプリケーションを作成する

  1. Auth0 ウェブサイトのダッシュボードで、[アプリケーション]を選択し、[アプリケーションの作成]を選択します。
  2. [Create Application] ダイアログで、アプリケーションの名前を入力します。例えば、My App などです。
  3. [Choose an application type] で、[Single Page Web Applications] を選択します。
  4. [作成] を選択します。

Auth0 アプリケーションのテストユーザーを作成する

  1. 左のナビゲーションバーで [User management] を選択して、[Users] を選択します。
  2. [+Create Your First User] を選択します。また、最初のユーザーでない場合は、[+Create User] を選択します。
  3. [Create user] ダイアログボックスで、ユーザーの E メールとパスワードを入力します。
  4. [保存] を選択します。

アプリケーション用の SAML 設定を設定する

  1. 左側のナビゲーションバーで [Applications] を選択します。
  2. 作成したアプリケーションの名前を選択します。
  3. [Addons] タブで、[SAML2 Web App] をオンにします。
  4. [Addon: SAML2 Web App] ダイアログボックスの[Settings] タブで、[Application Callback URL] に https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse と入力します。
    注意: yourDomainPrefixリージョンをユーザープールの値に置き換えます。ユーザープールの管理ページの [ドメイン名] タブの [Amazon Cognito コンソール] でそれらが見つけかります。
    - または -
    次のようなカスタムドメインコールバック URL を入力します。 https/yourcustomDomain/saml2/idPresponse。詳細については、[ユーザープールへのカスタムドメインの追加] を参照してください。
  5. [設定] では、次の操作を実行します。
    視聴者の場合、urn:amazon:cognito:sp:yourUserPoolId でコメント区切り文字 (//) を削除し、デフォルト値 (urn:foo) を置き換えます。
    注 :Amazon Cognito のユーザープール ID で yourUserPoolId を置き換えます。ユーザープールの管理ページの [General settings] タブで、Amazon Cognito コンソールの ID を見つけます。
    マッピングE メールの場合では、(//) コメント区切り文字を削除します。Amazon Cognito ユーザープールに必要な他のすべての属性についても同様にします。詳細については、[ユーザープール属性の設定] を参照してください。
    nameIdentifierFormatの場合では、コメント区切り文字 (//) を削除します。デフォルト値 (urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified) を urn:oasis:names:tc:SAML:2.0:nameid-format:persistent で置き換えます。
  6. (オプション) [Debug] を選択してから、作成したテストユーザーとしてログインし、設定が機能することを確認します。
  7. [有効] を選択し、[保存] をクリックします。

Auth0 アプリケーションの IdP メタデータを取得する

[Addon: SAML2 Web App] ダイアログボックスの [Usage] タブで、[ID プロバイダのメタデータ]を見つけます。次に、以下のいずれかを行います。

  • [download] を右クリックして、URL をコピーします。
  • .xml メタデータファイルをダウンロードするには、[download] を選択します。

Amazon Cognitoで Auth0 を SAML IdP として設定する

詳細については、[ユーザープールの SAML ID プロバイダーの作成と管理] を参照してください。[ユーザープールに SAML 2.0 ID プロバイダーを設定する] の下の指示に従ってください。

メタデータドキュメント用に SAML IdP を作成する場合、アイデンティティプロバイダメタデータ URL をペーストするかまたは .xml メタデータファイルをアップロードします。

E メールアドレスを IdP 属性からユーザープール属性へマッピングする

詳細については、[ユーザープールの ID プロバイダー属性マッピングの指定] をご参照いただき、[SAML プロバイダー属性マッピングを指定する方法] の指示に従ってください。

SAML 属性を追加する場合、[SAML Attribute] (SAML 属性) に、http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress と入力します。[User pool attribute] (ユーザープール属性) で、リストから [Email] (E メール) を選択します。

Amazon Cognito でアプリクライアントの設定を変更する

  1. Amazon Cognito コンソールのユーザープールの管理ページの [App integration] (アプリの統合) で、[App client settings] (アプリクライアントの設定) を選択します。次に、以下の操作を実行します :
    有効な ID プロバイダー で、[Auth0] および [Cognito User Pool] チェックボックスをオンにします。
    [コールバック URL] にログイン後にユーザーをリダイレクトする URL を入力します。テストについては、https://www.amazon.com など任意の有効な URL を入力します。
    [サインアウト URL] にログアウト後にユーザーをリダイレクトする URL を入力します。テストについては、https://www.amazon.com など任意の有効な URL を入力します。
    [Allowed OAuth Flows] で必ず [Implicit grant] チェックボックスをオンにします。
    [Allowed OAuth Scopes] で必ず [email] および [openid] チェックボックスをオンにしてください。
  2. [Save changes] (変更を保存) を選択します。

詳細については、[アプリクライアントの設定用語] を参照してください。

ログインエンドポイントをテストする

  1. ウェブブラウザにこの URL を入力してください。https://<yourDomainPrefix>.auth.<region>.amazoncognito.com/login?response_type=token&client_id=<yourClientId>&redirect_uri=<redirectUrl>
    注意: yourDomainPrefixリージョンをユーザープールの値に置き換えます。ユーザープールの管理ページの [ドメイン名] タブの [Amazon Cognito コンソール] でそれらが見つけかります。
    yourClientId をアプリクライアントの ID で置き換え、redirectUrl をクライアントのコールバック URL で置き換えます。ユーザープールの管理ページの [アプリクライアント設定] タブにある [Amazon Cognito コンソール] でそれらが見つかります。
    詳細については、「Amazon Cognito のホストされたウェブの UI を設定する方法を教えてください」と「ログインエンドポイント」を参照してください。
  2. Auth0 を選択します。
    注 : アプリクライアントのコールバック URL にリダイレクトされている場合、ブラウザで Auth0 アカウントにすでにサインインしています。ユーザープールのトークンは、ウェブブラウザのアドレスバーの URL に表示されます。
  3. Auth0 アプリケーションのログインページで、作成したテストユーザーの E メールとパスワードを入力します。
  4. [Log in] を選択します。

ログイン後、アプリクライアントのコールバック URL にリダイレクトされます。ユーザープールのトークンは、ウェブブラウザのアドレスバーの URL に表示されます。