ユーザープールでのソーシャル ID プロバイダーの使用 - Amazon Cognito

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ユーザープールでのソーシャル ID プロバイダーの使用

ウェブおよびモバイルアプリのユーザーは、Facebook、Google、Amazon、Apple などのソーシャル ID プロバイダー (IdP) 経由でサインインできます。組み込みの Hosted Web UI では、Amazon Cognito がすべての認証済みユーザーに関するトークンの処理と管理を提供します。このように、バックエンドシステムは 1 セットのユーザープールトークンで標準化できます。サポートされているソーシャル ID プロバイダーと統合するには、ホストされた UI を有効にする必要があります。Amazon Cognito がホストされた UI を構築すると、Amazon Cognito と OIDCおよび ソーシャルが情報交換 IdPs に使用する OAuth 2.0 エンドポイントが作成されます。詳細については、Amazon Cognito ユーザープール認証APIリファレンス」を参照してください。

ソーシャル IdP を に追加するか AWS Management Console、 または Amazon Cognito を使用できます AWS CLIAPI。

ソーシャルサインインの認証の概要
注記

サードパーティー (フェデレーション) 経由のサインインは、Amazon Cognito のユーザープールで使用できます。この機能は、Amazon Cognito ID プール (フェデレーティッド ID) 経由のフェデレーションとは無関係です。

前提条件

開始するには、以下が必要です。

  • アプリケーションクライアントとユーザープールドメインを使用するユーザープール。詳細については、「ユーザープールの作成」を参照してください。

  • ソーシャル IdP。

ステップ 1: ソーシャル IdP に登録する

Amazon Cognito でソーシャル IdP を作成する前に、アプリケーションをソーシャル IdP に登録して、クライアント ID とクライアントシークレットを取得する必要があります。

  1. Facebook の開発者アカウントを作成します。

  2. Facebook 認証情報を使用してサインインします。

  3. [My Apps] (マイアプリ) メニューから、[新しいアプリを作成] (新しいアプリを作成) を選択します。

  4. Facebook アプリケーションの名前を入力し、[Create App ID] (アプリケーション ID の作成) を選択します。

  5. 左のナビゲーションバーで、[設定]、[ベーシック] の順に選択します。

  6. [App ID] (アプリ ID)] と [App Secret (アプリシークレット) を書き留めます。これらは次のセクションで使用します。

  7. ページの下部で、[+ プラットフォームを追加] を選択します。

  8. [Website] (ウェブサイト) を選択します。

  9. ウェブサイト で、アプリのサインインページへのパスをサイト URLに入力します。

    https://mydomain.us-east-1.amazoncognito.com/login?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
  10. [Save changes] (変更の保存) をクリックします。

  11. ユーザープールドメインのルートへのパスを [App Domains] (アプリケーションドメイン) に入力します。

    https://mydomain.us-east-1.amazoncognito.com
  12. [Save changes] (変更の保存) をクリックします。

  13. ナビゲーションバーで [Add Product] (プロダクトの追加) を選択し、[Facebook Login] (Facebook ログイン) の [Set up] (設定) を選択します。

  14. ナビゲーションバーで [Facebook ログイン]、[設定] の順に選択します。

    ユーザープールドメインの/oauth2/idpresponseエンドポイントへのパスを Valid OAuth Redirect URIsに入力します。

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  15. [Save changes] (変更の保存) をクリックします。

  1. Amazon の開発者アカウントを作成します。

  2. Amazon 認証情報を使用してサインインします。

  3. Amazon クライアント ID およびクライアントシークレットを受け取るには、Amazon セキュリティプロファイルを作成する必要があります。

    ページの上部にあるナビゲーションバーで [Apps and Services (アプリとサービス)] を選択し、[Login with Amazon] を選択します。

  4. [Create a New Security Profile (新しいセキュリティプロファイルの作成)] を選択します。

  5. セキュリティプロファイル名 セキュリティプロファイルの説明 、および同意プライバシー通知 URLを入力します。

  6. [Save] を選択します。

  7. [クライアント ID] および [クライアントシークレット] を選択して、クライアント ID およびシークレットを表示します。これらは次のセクションで使用します。

  8. 歯車アイコンにマウスカーソルを合わせ、[Web Settings] (ウェブ設定)、[Edit] (編集) の順に選択します。

  9. [Allowed Origins] (許可されたオリジン) にユーザープールのドメインを入力します。

    https://mydomain.us-east-1.amazoncognito.com
  10. /oauth2/idpresponse エンドポイントを使用してユーザープールドメインを Allowed Return URLsに入力します。

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  11. [Save] を選択します。

Google Cloud プラットフォームの OAuth 2.0 の詳細については、「Google Workspace for Developers ドキュメント」の「認証と認可の詳細」を参照してください。

  1. Google の開発者アカウントを作成します。

  2. Google Cloud Platform コンソールにサインインします。

  3. 上部のナビゲーションバーから、[Select a project] (プロジェクトの選択) を選択します。Google プラットフォームにプロジェクトが既にある場合は、このメニューには代わりにデフォルトのプロジェクトが表示されます。

  4. を選択しますNEWPROJECT

  5. 製品の名前を入力し、 を選択しますCREATE

  6. 左側のナビゲーションバーで、APIs「」と「サービス」を選択し、「Oauth 同意画面」を選択します。

  7. アプリ情報、[App domain] (アプリドメイン)、[Authorized domains] (承認済みドメイン)、[Developer contact information] (開発者の連絡先情報) を入力します。[Authorized domains] (承認済みドメイン) には、amazoncognito.com とカスタムドメインのルート (例: example.com) を含める必要があります。を選択しますSAVEANDCONTINUE

  8. 1. スコープ で、スコープ の追加または削除を選択し、少なくとも次のOAuthスコープを選択します。

    1. .../auth/userinfo.email

    2. .../auth/userinfo.profile

    3. openid

  9. [Test users] (テストユーザー) で、[Add users] (ユーザーの追加) を選択します。E メールアドレスと他の承認されたテストユーザーを入力し、 SAVE AND CONTINUEを選択します。

  10. 左のナビゲーションバーを再度展開し、 APIs および サービス を選択し、次に認証情報 を選択します。

  11. を選択しCREATECREDENTIALSOAuthクライアント ID を選択します。

  12. [Application type] (アプリケーションタイプ) を選択し、クライアントに [Name] (名前) を入力します。

  13. 認定オ JavaScript リジン で、 ADD URIを選択します。ユーザープールのドメインを入力します。

    https://mydomain.us-east-1.amazoncognito.com
  14. 「承認済みリダイレクトURIs」で、ADDURI「」を選択します。ユーザープールのドメインの /oauth2/idpresponse エンドポイントへのパスを入力します。

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  15. を選択しますCREATE

  16. [Your client ID] (クライアント ID) と [Your client secret] (クライアントシークレット) の下に Google が表示する値を安全に保存します。Google IdP を追加するときに、Amazon Cognito にこれらの値を指定します。

Apple でサインインを設定する方法の詳細については up-to-date、Apple デベロッパードキュメントの「Apple でサインインするための環境の設定」を参照してください。

  1. Apple の開発者アカウントを作成します。

  2. Apple 認証情報を使用してサインインします。

  3. 左のナビゲーションバーで、[Certificates, Identifiers & Profiles] (証明書、ID & プロファイル) を選択します。

  4. 左のナビゲーションペインで、[Identifiers] (識別子) を選択します。

  5. [Identifiers] (識別子) ページで、[+] アイコンを選択します。

  6. 新しい識別子の登録ページで、アプリケーション IDsを選択し、続行 を選択します。

  7. [Select a type] (種類の選択) ページで、[App] (アプリ) を選択し、[Continue] (続行) を選択します。

  8. [Register an App ID] ページで、次の操作を行います。

    1. [Description] (説明) で、説明を入力します。

    2. [App ID Prefix] (アプリ ID プレフィックス) に、[Bundle ID] (バンドル ID) を入力します。[App ID Prefix] (アプリケーション ID プレフィックス) にある値を書き留めておきます。この値は、ステップ 2: ユーザープールにソーシャル IdP を追加する で Apple を ID プロバイダーとして選択した後で使用します。

    3. [Capabilities] (機能) で、[Sign In with Apple] (Apple でサインイン) を選択してから [Edit] (編集) を選択します。

    4. Apple でサインイン: App ID 設定ページで、アプリをプライマリとして設定するか、他の App とグループ化するかを選択しIDs、 を保存を選択します。

    5. [Continue](続行) を選択します。

  9. [Confirm your App ID] ページで、[登録] を選択します。

  10. [Identifiers] (識別子) ページで、[+] アイコンを選択します。

  11. 新しい識別子の登録ページで、サービス IDsを選択し、続行 を選択します。

  12. [Register a Services ID] ページで、次の操作を行います。

    1. [説明] に、説明を入力します。

    2. [Identifier] に、識別子を入力します。このサービス ID をメモしておきます。この値は、ステップ 2: ユーザープールにソーシャル IdP を追加する で Apple を ID プロバイダーとして選択した後で必要になります。

    3. [Continue] (続行) を選択し、[Register] (登録) を選択します。

  13. [Identifiers] (識別子) ページから、先ほど作成した [Services ID] (サービス ID) を選択します。

    1. [Sign In with Apple] (Apple でサインイン) を選択後、[Configure] (設定) を選択します。

    2. [Web Authentication Configuration] (ウェブ認証の設定) ページで、[Primary App ID] (プライマリアプリ ID) として前に作成したアプリ ID を選択します。

    3. ウェブサイト URLsの横にある アイコンを選択します。

    4. [Domains and subdomains] (ドメインとサブドメイン) で、https:// プレフィックスなしでユーザープールのドメインを入力します。

      mydomain.us-east-1.amazoncognito.com
    5. Return URLsで、ユーザープールドメインの/oauth2/idpresponseエンドポイントへのパスを入力します。

      https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
    6. [Next] (次へ) を選択し、[Done] (完了) を選択します。ドメインを検証する必要はありません。

    7. [Continue] (続行) を選択し、次に [Save] (保存) を選択します。

  14. 左のナビゲーションペインで [Keys] (キー) を選択します。

  15. [Keys (キー)] ページで、[+] アイコンを選択します。

  16. [Register a New Key] ページで、次の操作を行います。

    1. [Key Name] (キー名) に、キー名を入力します。

    2. [Sign In with Apple] (Apple でサインイン) を選択後、[Configure] (設定) を選択します。

    3. [Configure Key] (キーの設定) ページで、プライマリアプリ ID として前に作成したアプリ ID を選択します。[Save] を選択します。

    4. [Continue] (続行) を選択し、[Register] (登録) を選択します。

  17. [Download Your Key] (鍵のダウンロード) ページで、[Download] (ダウンロード) をクリックしてプライベートキーをダウンロードしてから、表示される [Key ID] (キー ID) を書き留め、[Done] (完了) を選択します。このプライベートキーと、このページに表示されている [Key ID] (キー ID) の値は、ステップ 2: ユーザープールにソーシャル IdP を追加する で Apple を ID プロバイダーとして選択した後で必要になります。

ステップ 2: ユーザープールにソーシャル IdP を追加する

を使用してユーザープールソーシャル IdP を設定するには AWS Management Console
  1. Amazon Cognito コンソールに移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

  2. [User Pools] (ユーザープール) を選択します。

  3. リストから既存のユーザープールを選択するか、ユーザープールを作成します。

  4. [Sign-in experience] (サインインエクスペリエンス) タブを選択します。[Federated sign-in] (フェデレーションサインイン) を探し、[Add an identity provider] (ID プロバイダーを追加する) を選択します。

  5. ソーシャル IdP ([Facebook][Google][Login with Amazon][Sign in with Apple]) を選択します。

  6. ソーシャル IdP の選択に基づいて、次のステップから選択します。

    • GoogleLogin with Amazon (Amazon でのログイン) — 前のセクションで生成された [app client ID] (アプリケーションクライアント ID) と [app client secret] (アプリケーションクライアントシークレット) を入力します。

    • Facebook — 前のセクションで生成されたアプリケーションクライアント IDアプリケーションクライアントシークレットを入力し、APIバージョン (バージョン 2.12 など) を選択します。各 Facebook にはライフサイクルと中止日APIがあるため、可能な最新バージョンを選択することをお勧めします。Facebook のスコープと属性は、APIバージョンによって異なる場合があります。Facebook でソーシャル ID ログインをテストして、フェデレーションが意図したとおりに機能することを確認することをお勧めします。

    • Sign In with Apple (Apple でのサインイン) — 以前のセクションで作成された [Services ID] (サービス ID)、[Team ID] (チーム ID)、[Key ID] (キー ID) および [private key] プライベートキーを入力します。

  7. 使用したい [Authorized scopes] (承認するスコープ) の名前を入力します。スコープは、アプリでアクセスするユーザー属性 (nameemail など) を定義します。Facebook の場合は、コンマで区切る必要があります。Google および Login with Amazon の場合は、スペースで区切って指定します。Sign in with Apple の場合は、アクセスするスコープのチェックボックスをオンにします。

    ソーシャル ID プロバイダー スコープ例
    Facebook public_profile, email
    Google profile email openid
    Login with Amazon profile postal_code
    Apple でのサインイン email name

    アプリケーションユーザーは、これらの属性をアプリケーションに提供することに同意するよう求められます。ソーシャルプロバイダーのスコープの詳細については、Google、Facebook、Login with Amazon、および Sign in with Apple のドキュメントを参照してください。

    以下は、Sign in with Apple の場合にスコープが返らない可能性があるユーザーシナリオです。

    • エンドユーザーが Apple のサインインページを離れるとエラーが発生する (Amazon Cognito の内部障害またはデベロッパーが記述したプログラムが原因である可能性があります)

    • サービス ID 識別子がユーザープールや他の認証サービス全体で使用されている

    • エンドユーザーが以前にサインインしてから、デベロッパーによってさらにスコープが追加されている (新しい情報は取得されません)

    • デベロッパーによって削除されたユーザーが Apple ID プロファイルからアプリを削除せずに再度サインインしている

  8. IdP からユーザープールに属性をマッピングします。詳細は、「ユーザープール用 ID プロバイダー属性マッピングの特定」を参照してください。

  9. [Create] (作成) を選択します。

  10. [App client integration] (アプリケーションクライアント統合) タブから、[App clients] (アプリケーションクライアント) のリストより 1 つ選択して、[Edit hosted UI settings] (ホストされた UI 設定の編集) をクリックします。[Identity providers] (ID プロバイダー) で、新しいソーシャル IdP をアプリクライアントに追加します。

  11. [Save changes] (変更の保存) をクリックします。

ステップ 3: ソーシャル IdP の設定をテストする

前の 2 つのセクションの要素URLを使用してログインを作成できます。この URL を使用してソーシャル IdP の設定をテストします。

https://mydomain.us-east-1.amazoncognito.com/login?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com

ドメインは、コンソールにあるユーザープールの [ドメイン名] ページで確認できます。クライアント ID は [アプリクライアントの設定] ページにあります。redirect_uri パラメータURLにコールバックを使用します。これは、認証が成功した後にユーザーがリダイレクトされるURLページの です。

注記

Amazon Cognito は 5 分以内に完了しない認証リクエストをキャンセルし、ホストされた UI にユーザーをリダイレクトします。ページには、Something went wrong というエラーメッセージが表示されます。