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 ユーザープールを作成する
詳細については、以下の記事を参照してください。
- チュートリアル: ユーザープールの作成
注: ユーザープールを作成する場合、スタンダード属性のメールがデフォルトで選択されます。ユーザープール属性の詳細については、「ユーザープールの属性の設定」をご参照ください。 - Amazon Cognito コンソールでのホストされた UI のセットアップ
注 : アプリクライアントを追加する場合、「Generate client secret」チェックボックスをオフにします。アプリクライアントのシークレットは不要であり、アプリクライアントのシークレットを使用すると、Amazon Cognito JavaScript (ブラウザ) SDK がユーザーを認証できなくなります。 - ユーザープールのドメイン名の追加
Auth0 アカウントのサインアップ
Auth0 ウェブサイトに E メールアドレスとパスワードを入力し、サインアップして開始します。すでにアカウントがある場合は、ログインします。
Auth0 アプリケーションを作成する
- Auth0 ウェブサイトのダッシュボードで、[アプリケーション]を選択し、[アプリケーションの作成]を選択します。
- [Create Application] ダイアログで、アプリケーションの名前を入力します。例えば、My App などです。
- [Choose an application type] で、[Single Page Web Applications] を選択します。
- [作成] を選択します。
Auth0 アプリケーションのテストユーザーを作成する
- 左のナビゲーションバーで [User management] を選択して、[Users] を選択します。
- [+Create Your First User] を選択します。また、最初のユーザーでない場合は、[+Create User] を選択します。
- [Create user] ダイアログボックスで、ユーザーの E メールとパスワードを入力します。
- [保存] を選択します。
アプリケーション用の SAML 設定を設定する
- 左側のナビゲーションバーで [Applications] を選択します。
- 作成したアプリケーションの名前を選択します。
- [Addons] タブで、[SAML2 Web App] をオンにします。
- [Addon: SAML2 Web App] ダイアログボックスの[Settings] タブで、[Application Callback URL] に https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse と入力します。
注意: yourDomainPrefix とリージョンをユーザープールの値に置き換えます。ユーザープールの管理ページの [ドメイン名] タブの [Amazon Cognito コンソール] でそれらが見つけかります。
- または -
次のようなカスタムドメインコールバック URL を入力します。 https/yourcustomDomain/saml2/idPresponse。詳細については、[ユーザープールへのカスタムドメインの追加] を参照してください。 - [設定] では、次の操作を実行します。
視聴者の場合、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 で置き換えます。 - (オプション) [Debug] を選択してから、作成したテストユーザーとしてログインし、設定が機能することを確認します。
- [有効] を選択し、[保存] をクリックします。
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 でアプリクライアントの設定を変更する
- 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] チェックボックスをオンにしてください。 - [Save changes] (変更を保存) を選択します。
詳細については、[アプリクライアントの設定用語] を参照してください。
ログインエンドポイントをテストする
- ウェブブラウザにこの 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 を設定する方法を教えてください」と「ログインエンドポイント」を参照してください。 - Auth0 を選択します。
注 : アプリクライアントのコールバック URL にリダイレクトされている場合、ブラウザで Auth0 アカウントにすでにサインインしています。ユーザープールのトークンは、ウェブブラウザのアドレスバーの URL に表示されます。 - Auth0 アプリケーションのログインページで、作成したテストユーザーの E メールとパスワードを入力します。
- [Log in] を選択します。
ログイン後、アプリクライアントのコールバック URL にリダイレクトされます。ユーザープールのトークンは、ウェブブラウザのアドレスバーの URL に表示されます。