Google Authの設定方法

AWS CognitoでのGoogle Authの設定方法

CognitoへGoogle認証追加の手順を備忘録として残します。

概要

  1. AWS Cognito ユーザープールの作成
  2. Google Cloud の設定
  3. AWS CognitoにGoogle Cloudのキーを追加
  4. AWS Cognitoにて ホストされた UI でテスト

※ 場合により細かく設定してください

AWS Cognitoでのユーザープールの設定方法

AWSのコンソールから「Cognito」→「ユーザープールを作成」で作成を開始してください。

1. サインインエクスペリエンスを設定

「フェデレーテッドアイデンティティプロバイダー」と「Eメール」と「Google」をチェックしてください。

サインインエクスペリエンス

2. セキュリティ要件を設定

  • パスワードポリシーモードは「Cognitoのデフォルト」にします。
  • 多要素認証は「MFAなし」にします。

セキュリティ要件を設定

3. サインアップエクスペリエンスを設定

  • 「自己登録を有効化」をチェックします。
  • 「Cognitoが検証と確認のためにメッセージを自動的に送信することを許可」をチェックします。

サインアップエクスペリエンスを設定

4. メッセージ配信を設定

開発ペースなので、一旦「CognitoでEメールを送信」を選択する

メッセージ配信を設定

5. フェデレーテッドアイデンティティプロバイダーを接続

Google Cloudにて設定した情報を使うため、後で設定します。

フェデレーテッドアイデンティティプロバイダーを接続

6. アプリケーションを統合

1. プール名の設定

アプリケーションを統合・ユーザープール名

2. ドメインの設定

アプリケーションを統合・ドメイン

3. コールバックURLの設定

アプリケーションを統合・コールバックURLの設定

Google Cloudの設定とAWS Cognitoのユーザープールに紐づく

1. Googleプロジェクトの認証情報作成

Google Cloud のプロジェクト作成は割愛します。

認証情報にて認証情報を作成します。 →「OAuthクライアントID」を選択する

Google Cloud・create OAuth

  • 名前は適当に入力

  • 承認済みのJavaScript生成元

    AWS Cognito プールの「アプリケーションの統合」タブでCognito ドメインを確認できます

    https://{Cognitoドメインのプレフィックス}.auth.AWSのリージョン}.amazoncognito.com
    
  • 承認済みのリダイレクトURI

    {「承認済みのJavascript生成元」に入力した値 }/oauth2/idpresponse
    

Google Cloud・create OAuth

設定完了だと、「クライアント ID」 と 「クライアント シークレット」は表示されます。

Google Cloud・create OAuth

2. AWS Cognitoのユーザープールに紐づく

1. アイデンティティプロバイダーを追加

Cognitoのユーザープールの中にある「サインインエクスペリエンス」タブでアイデンティティプロバイダーを追加します。

  • アイデンティティプロバイダー

    Google

  • クライアントID と クライアントシークレット

    Googleプロジェクトの認証情報で作成したもの

  • 許可されたスコープ

    email profile openid

    ※ Googleコンソールにて設定できます。

    Add google oauth to cognito

  • Googleとユーザープール間で属性をマッピング

    今回はemailで良いです。

Add google oauth to cognito

2. ホストされたUIに追加

Cognitoのユーザープールの中にある「アプリケーション統括」タブでアプリクライアントに入って、ホストされた UI という設定があります。

  • ID プロバイダーにGoogleを追加します。

Add google oauth to cognito

3. テスト

ホストされたUIを表示ボタンを選択し、ログインしてみます。 成功でしたら、ユーザープールにユーザーが作成されます。