ステップ 3. ユーザープールにソーシャルサインインを追加する (オプション)
アプリユーザーが Facebook、Google、Amazon、Apple などのソーシャル ID プロバイダー (IdP) を介してサインインするようにできます。ユーザーが直接サインインしても、サードパーティーを介してサインインしても、すべてのユーザーにはユーザープールにプロファイルがあります。ソーシャルサインイン ID プロバイダーを通じてサインインを追加しない場合は、この手順を省略してください。
ステップ 1: ソーシャル IdP に登録する
Amazon Cognito でソーシャル IdP を作成する前に、アプリケーションをソーシャル IdP に登録して、クライアント ID とクライアントシークレットを取得する必要があります。
-
Facebook の開発者アカウント
を作成します。 -
Facebook 認証情報を使用してサインイン
します。 -
[My Apps] (マイアプリ) メニューから、[新しいアプリを作成] (新しいアプリを作成) を選択します。
-
Facebook アプリケーションに名前を入力して、[Create App ID] (アプリケーション ID を作成) を選択します。
-
左のナビゲーションバーで、[Settings] (設定)、[Basic] (ベーシック) の順に選択します。
-
[App ID] (アプリ ID)] と [App Secret (アプリシークレット) を書き留めます。これらは次のセクションで使用します。
-
ページの下部で、[+ プラットフォームを追加] を選択します。
-
[Website] (ウェブサイト) を選択します。
-
[Website] (Web サイト) で、アプリケーションクライアントエンドポイントのサインイン URL を[Site URL] (サイトの URL) に入力します。サインイン URL の形式は次のようになります。
https://
your_user_pool_domain
/login?response_type=code&client_id=your_app_client_id
&redirect_uri=your_callback_url
-
[Save changes] (変更の保存) をクリックします。
-
[App Domains] (アプリケーションドメイン) で、ユーザープールのドメインを入力します。
https://
your_user_pool_domain
-
[Save changes] (変更の保存) をクリックします。
-
ナビゲーションバーで [Product] (プロダクト) を選択し、[Facebook Login] (Facebook ログイン) の [Set up] (設定)を選択します。
-
ナビゲーションバーで [Facebook Login] (Facebook ログイン)、[Settings] (設定) の順に選択します。
[Valid OAuth Redirect URIs] (有効な OAuth リダイレクト URI) にリダイレクト URL を入力します。リダイレクト URL は、
/oauth2/idpresponse
エンドポイント を持つユーザープールのドメインで構成されます。https://
your_user_pool_domain
/oauth2/idpresponse -
[Save changes] (変更の保存) をクリックします。
-
Amazon の開発者アカウント
を作成します。 -
Amazon 認証情報を使用してサインイン
します。 -
Amazon クライアント ID およびクライアントシークレットを受け取るには、Amazon セキュリティプロファイルを作成する必要があります。
ページの上部にあるナビゲーションバーで [Apps and Services (アプリとサービス)] を選択し、[Login with Amazon] を選択します。
-
[Create a New Security Profile (新しいセキュリティプロファイルの作成)] を選択します。
-
[Security Profile Name] (セキュリティプロファイル名)、[Security Profile Description] (セキュリティプロファイルの説明)、[Consent Privacy Notice URL] (プライバシー規約 URL の同意) に入力します。
-
[Save] を選択します。
-
[クライアント ID] および [クライアントシークレット] を選択して、クライアント ID およびシークレットを表示します。これらは次のセクションで使用します。
-
歯車アイコンにマウスカーソルを合わせ、[Web Settings] (ウェブ設定)、[Edit] (編集) の順に選択します。
-
[Allowed Origins] (許可されたオリジン) にユーザープールのドメインを入力します。
https://
<your-user-pool-domain>
-
/oauth2/idpresponse
エンドポイントを使用するユーザープールドメインを [Allowed Return URLs] (許可されたリターン URL) に入力します。https://
<your-user-pool-domain>
/oauth2/idpresponse -
[Save] を選択します。
Google Cloud プラットフォームの OAuth 2.0 の詳細については、開発者向け Google Workspace のドキュメントの「Learn about authentication & authorization
-
Google の開発者アカウント
を作成します。 -
Google Cloud Platform コンソール
にサインインします。 -
上部のナビゲーションバーから、[Select a project] (プロジェクトの選択) を選択します。Google プラットフォームのプロジェクトが既にある場合は、このメニューには代わりにデフォルトのプロジェクトが表示されます。
-
[NEW PROJECT] (新しいプロジェクト) を選択します。
-
製品の名前を入力し、[CREATE] (作成) を選択します。
-
左のナビゲーションバーで、[APIs and Services] (API とサービス) を選択し、[Oauth consent screen] (OAuth 同意画面) を選択します。
-
アプリ情報、[App domain] (アプリケーションドメイン)、[Authorized domains] (承認済みドメイン)、[Developer contact information] (開発者の連絡先情報) を入力します。[Authorized domains] (承認済みドメイン) には、
amazoncognito.com
とカスタムドメインのルート (例:example.com
) を含める必要があります。[SAVE AND CONTINUE] (保存して続行) を選択します。 -
1. [Scopes] (スコープ) で、[Add or remove scopes] (スコープの追加または削除) を選択し、少なくとも、次の OAuth スコープを選択します。
-
.../auth/userinfo.email
-
.../auth/userinfo.profile
-
openid
-
-
[Test users] (テストユーザー) で、[Add users] (ユーザーの追加) を選択します。E メールアドレスおよびその他の承認済みテストユーザーを入力して、[SAVE AND CONTINUE] (保存して続行) を選択します。
-
左のナビゲーションバーを再度展開し、APIs and Services (API とサービス) を選択して、[Credentials] (認証情報) を選択します。
-
[CREATE CREDENTIALS] (認証情報の作成)、[OAuth client ID] (OAuth クライアント ID) の順に選択します。
-
[Application type] (アプリケーションタイプ) を選択し、クライアントに [Name] (名前) を入力します。
-
[Authorized JavaScript origins] (承認済みの JavaScript 生成元) で、[ADD URI] (URI の追加) を選択します。ユーザープールのドメインを入力します。
https://
<your-user-pool-domain>
-
[Authorized redirect URIs] (承認済みリダイレクト URI) で、[ADD URI] (URI の追加) を選択します。ユーザープールのドメインの
/oauth2/idpresponse
エンドポイントへのパスを入力します。https://
<your-user-pool-domain>
/oauth2/idpresponse -
[CREATE] (作成) を選択します。
-
[Your client ID] (クライアント ID) と [Your client secret] (クライアントシークレット) の下に Google が表示する値を安全に保存します。Google IdP を追加するときに、Amazon Cognito にこれらの値を指定します。
「Apple でサインイン」を設定する方法についての詳細は、Apple 開発者ドキュメントの「Configuring Your Environment for Sign in with Apple
-
Apple の開発者アカウント
を作成します。 -
Apple 認証情報を使用してサインイン
します。 -
左のナビゲーションバーで、[Certificates, Identifiers & Profiles] (証明書、ID & プロファイル) を選択します。
-
左のナビゲーションペインで、[Identifiers] (識別子) を選択します。
-
[Identifiers] (識別子) ページで、[+] アイコンを選択します。
-
[Register a New Identifier] (新しい識別子の登録) ページで、[App IDs] (アプリ ID)、[Continue] (続行) の順に選択します。
-
[Select a type] (種類の選択) ページで、[App] (アプリケーション) を選択し、[Continue] (続行) を選択します。
-
[Register an App ID] ページで、次の操作を行います。
-
[Description] (説明) で、説明を入力します。
-
[App ID Prefix] (アプリケーション ID プレフィックス) に、[Bundle ID] (バンドル ID) と入力します。[App ID Prefix] (アプリケーション ID プレフィックス) にある値を書き留めておきます。この値は、ステップ 2: ユーザープールにソーシャル IdP を追加する で Apple を ID プロバイダーとして選択した後で使用します。
-
[Capabilities] (機能) で、[Sign In with Apple] (Apple でサインイン) を選択してから [Edit] (編集) を選択します。
-
[Sign in with Apple: App ID Configuration] (Apple でサインイン: アプリケーション ID の設定) ページで、アプリケーションをプライマリとして設定するか、他のアプリケーション ID とグループ化するかを選択し、次に [Save] (保存) を選択します。
-
[Continue (続行)] を選択します。
-
-
[Confirm your App ID] ページで、[登録] を選択します。
-
[Identifiers] (識別子) ページで、[+] アイコンを選択します。
-
[Register a New Identifier] (新しい識別子の登録) ページで、[Services IDs] (サービス ID)、[Continue] (続行) の順に選択します。
-
[Register a Services ID] ページで、次の操作を行います。
-
[説明] に、説明を入力します。
-
[Identifier] に、識別子を入力します。このサービス ID をメモしておきます。この値は、ステップ 2: ユーザープールにソーシャル IdP を追加する で Apple を ID プロバイダーとして選択した後で必要になります。
-
[Continue] (続行) を選択し、[Register] (登録) を選択します。
-
-
[Identifiers] (識別子) ページから、先ほど作成した [Services ID] (サービス ID) を選択します。
-
[Sign In with Apple] (Apple でサインイン) を選択後、[Configure] (設定) を選択します。
-
[Web Authentication Configuration] (ウェブ認証の設定) ページで、[Primary App ID] (プライマリアプリケーション ID) として前に作成したアプリケーション ID を選択します。
-
[Website URLs] (ウェブサイトの URL) の横の [+] アイコンを選択します。
-
[Domains and subdomains] (ドメインとサブドメイン) で、
https://
プレフィックスなしでユーザープールのドメインを入力します。<your-user-pool-domain>
-
[Return URLs] (URL を返す) で、ユーザープールのドメインの
/oauth2/idpresponse
エンドポイントへのパスを入力します。https://
<your-user-pool-domain>
/oauth2/idpresponse -
[Next] (次へ) を選択し、[Done] (完了) を選択します。ドメインを検証する必要はありません。
-
[Continue] (続行) を選択し、次に [Save] (保存) を選択します。
-
-
左のナビゲーションペインで [Keys] (キー) を選択します。
-
[Keys (キー)] ページで、[+] アイコンを選択します。
-
[Register a New Key] ページで、次の操作を行います。
-
[Key Name] (キー名) に、キー名を入力します。
-
[Sign In with Apple] (Apple でサインイン) を選択後、[Configure] (設定) を選択します。
-
[Configure Key] (キーの設定) ページで、Primary App ID (プライマリアプリ ID) として前に作成したアプリケーション ID を選択します。[Save] を選択します。
-
[Continue] (続行) を選択し、[Register] (登録) を選択します。
-
-
[Download Your Key] (鍵のダウンロード) ページで、[Download] (ダウンロード) をクリックしてプライベートキーをダウンロードしてから、表示される [Key ID] (キー ID) を書き留め、[Done] (完了) を選択します。このプライベートキーと、このページに表示されている [Key ID] (キー ID) の値は、ステップ 2: ユーザープールにソーシャル IdP を追加する で Apple を ID プロバイダーとして選択した後で必要になります。
ステップ 2: ユーザープールにソーシャル IdP を追加する
このセクションでは、前のセクションで取得したクライアント ID およびクライアントシークレットを使用してユーザープールにソーシャル IdP を設定します。
ステップ 3: ソーシャル IdP の設定をテストする
前の 2 つのセクションの要素を使用してログイン URL を作成できます。この URL を使用してソーシャル IdP の設定をテストします。
https://
<your_user_pool_domain>
/login?response_type=code&client_id=<your_client_id>
&redirect_uri=https://www.example.com
ドメインは、コンソールにあるユーザープールの [ドメイン名] ページで確認できます。クライアント ID は [アプリクライアントの設定] ページにあります。redirect_uri パラメータのコールバック URL を使用します。これは、ユーザーが認証に成功した後でリダイレクトされるページの URL です。
Amazon Cognito は 5 分以内に完了しない認証リクエストをキャンセルし、ホストされた UI にユーザーをリダイレクトします。ページには、Something went wrong
というエラーメッセージが表示されます。
次のステップ
ステップ 4. SAML ID プロバイダーを使用したサインインをユーザープールに追加する (オプション)