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

最終更新日: 2019 年 2 月 1 日

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

簡単な説明

Amazon Cognito ユーザープールを使用して、Auth0 などの SAML IdP を含め、サードパーティ (フェデレーション) を介してサインインすることが可能です。詳細については、 「サードパーティを介したユーザプールサインインの追加Adding User Pool Sign-in Through a Third Party」および「ユーザープールへの SAML ID プロバイダーの追加」をご参照ください。

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

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

解決方法

アプリクライアントおよびドメイン名を持つ Amazon Cognito ユーザープールを作成する

詳細については、次の記事をご参照ください :

Auth0 アカウントにサインアップする

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

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

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

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

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

アプリケーション用の 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 を入力します。
    注 :
    yourDomainPrefixregionをユーザープールの値に置き換えます。ユーザープールの管理ページの [Domain name] タブの Amazon Cognito コンソールで見つけます。
  5. [Settings] で、次の操作を行います。
    対象者の場合、urn:amazon:cognito:sp:yourUserPoolId でコメント区切り文字 (//) を削除し、デフォルト値 (urn:foo) を置き換えます。
    注:
    yourUserPoolId を Amazon Cognito のユーザープール ID で 置き換えます。ユーザープールの管理ページの [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. [Save] を選択します。

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

[Addon:SAML2 Web App] ダイアログの[Usage] タブ、[Identity Provider Metadata] を見つけます。その後、次のいずれかを実行します :

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

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

詳細については、「ユーザープール用の SAML ID プロバイダーの作成と管理 (AWS マネジメントコンソール) 」 をご参照してください。「ユーザープールに SAML 2.0 ID プロバイダーを設定するには」の手順に従います。

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

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

詳細については、「ユーザープールの ID プロバイダー属性マッピングを指定する」をご参照のうえ、「SAML プロバイダ属性マッピングを指定する 」の手順に従ってください。

SAML 属性を追加する場合、SAML 属性http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress と入力します。ユーザープール属性には、リストから 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

    注 :
    yourDomainPrefixregionをユーザープールの値に置き換えます。ユーザープールの管理ページの [Domain name] タブの Amazon Cognito コンソールで見つけます。
    yourClientId をアプリクライアントの ID で置き換え、redirectUrl をクライアントのコールバック URL で置き換えます。ユーザープールの管理ページの [App client settings] タブの Amazon Cognito コンソールで見つけます。

    詳細については、「 Amazon Cognito のホストされたウェブの UI を設定する方法を教えてください」および 「ログインエンドポイント」を参照してください。
  2. [Auth0] を選択します。
    注 :
    アプリクライアントのコールバック URL にリダイレクトされている場合、ブラウザで Auth0 アカウントにすでにサインインしています。ウェブブラウザのアドレスバーの URL にユーザープールトークンが表示されます。
  3. Auth0 アプリケーションのログインページで、作成したテストユーザーの E メールとパスワードを入力します。
  4. [Log in] を選択します。

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