7
13

More than 1 year has passed since last update.

CognitoユーザープールにGoogle認証を追加する手順

Last updated at Posted at 2023-05-02

目次

はじめに

業務でAWS Cognitoユーザープールの技術検証として、CognitoへのGoogle認証追加を行なったため、備忘録として残します。

この記事で扱うこと

  • Google認証をCognitoに追加する手順

この記事で扱わないこと

  • AWSユーザープールの作成手順及び概要説明等
  • Google管理者アカウントの作成方法

前提条件

既にユーザプールを作成済みであること、ユーザプールにてEmailの登録を必須としていることが条件となります。
作り方の参考記事

Google認証をCognitoに追加する手順

AWSの公式ドキュメントに沿って、手順を記載していきます。
Google認証を追加するにあたり、GoogleとAWSそれぞれへの設定追加が必要となります。

Googleへの設定

1.Google管理者ページへの遷移及びログイン

以下のURLに遷移しログインを行う
https://console.cloud.google.com/home/dashboard

2.新規プロジェクトの作成

上部のナビゲーションバーより「新しいプロジェクト」を選択し、プロジェクトを作成する
スクリーンショット 2023-05-02 17.09.35.png

作成後
google_home.png

3.左側のナビゲーションより「Oauth同意画面」を選択

スクリーンショット 2023-05-02 17.14.36.png

4.User Type

  • 「外部」を選択
    Oauth_create_1.png

5.「アプリ登録の編集」

  • 「アプリ名」にはGoogle認証時に表示されるアプリ名を入力(基本的には作成したアプリケーション名を入力すれば良い)
  • 「ユーザーサポートメール」に自分のメールアドレスを入力
  • 「承認済みドメイン」に「amazoncognito.com」を入力
  • デベロッパーの連絡先には自分のメールアドレスを入力
    oauth_create3.png
    oauth_create2.png

6.スコープ

  • 「スコープを追加または削除」を選択後、右に表示される項目より以下を選択(CognitoがGoogleより取得する情報を選択する)
    • email
    • profile
    • openid
      oauth_create4.png

更新を押した後、間違いがなければ保存して次へを選択

oauth_create5.png

7.アプリ登録の編集

デフォルトのまま保存して次へを選択
oauth_create6.png

8.設定内容の確認

間違いがないことを確認
oauth_create7.png
oauth_create8.png

9.左側のナビゲーションから「認証情報」を選択

oauth_create9.png

10.「認証情報を作成」→「OauthクライアントID」を選択

oauth_crate10.png

11.OauthクライアントIDの作成にて設定値を入力

  • 「アプリケーションの種類」は「ウェブアプリケーション」を選択
  • 「名前」は好きな名前を入力
  • 「承認済みのJavaScript生成元」にはCognitoのドメインを入力(詳細は2枚目の画像のCognitoドメインを参照)
  • 「承認済みのリダイレクトURI」にはドメイン + oauth2/idpresponseを入力
    • Googleから発行される認可コードのエンドポイントになります
      スクリーンショット 2023-05-02 17.49.44.png

user_pool_id.png

12.JSONダウンロード

これにてGoogleでの設定は完了です
クライアントIDとクライアントシークレットはCognitoで使用します。忘れずにJSONをダウンロードしておきましょう
スクリーンショット 2023-05-02 17.50.32.png

Cognitoへの設定

1. 対象のユーザープール設定画面にて「アイデンティティプロパイダーを追加」を選択

oauth_cognito1.png

2.アイデンティティプロパイダ−の追加設定

  • 「アイデンティティプロパイダー」でGoogleを選択
    oauth_cognito2.png

  • クライアントIDとクライアントのシークレットに、Googleで発行したクライアントIDとクライアントシークレットを入力

  • 「許可されたスコープ」にはGoogleにて設定した「email profile openid」を記載

  • 「Googleとユーザプール間で属性をマッピング」にはユーザープールの属性と、Googleから取得する情報でマッピングする項目を選択

    • Googleから取得したemailが、Cognitoユーザープールにて作成されるユーザ情報のemailとして保存されるようなイメージです
  • 入力が完了したら「アイデンティティプロパイダーを追加」を押下
    oauth_cognito3.png

3.アプリケーションクライアントのHosted UI編集画面にてIDプロパイダ(Google)の追加

手順2までではまだGoogleがログイン画面に表示されません。
最後に以下の設定をする必要があります。

アプリケーションの統合を選択後、最下部の「アプリケーションクライアント名」から対象のクライアントを選択
スクリーンショット 2023-05-02 18.26.02.png
スクリーンショット 2023-05-02 18.26.07.png

遷移後「ホストされたUI」の「編集」を選択
スクリーンショット 2023-05-02 18.29.47.png

IDプロパイダーのプルダウンを選択
スクリーンショット 2023-05-02 18.31.19.png

Googleを選択し、ページ最下部の「変更を保存」ボタンを押下
スクリーンショット 2023-05-02 18.31.24.png

以上で完了です。

動作確認

試しにHosted UIを開いてみます。

Google追加前

スクリーンショット 2023-05-02 18.35.30.png

Google追加後

無事追加されていることが確認できました。
スクリーンショット 2023-05-02 18.34.41.png

ログインしてみる

お馴染みのGoogle認証画面が表示されました。
スクリーンショット 2023-05-02 18.36.44.png
アプリケーションへのログインも完了しました。
スクリーンショット 2023-05-02 18.36.59.png

ユーザープールへの登録も確認できました。
スクリーンショット 2023-05-02 18.39.22.png

まとめ

以上がGoogle認証の追加方法です。
私と同じように、細かいことはいいからとにかく追加して技術検証したい!みたいな人の助けになればと思います。
こちらの記事でEmail認証ユーザとGoogle認証ユーザを統合する方法を記載しているので、ご興味あればご覧ください。
https://qiita.com/Naoki1126/items/e6294f0ed189344a5bd7

7
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
13