
AWS CognitoでのGoogle Authの設定方法
CognitoへGoogle認証追加の手順を備忘録として残します。
概要
- AWS Cognito ユーザープールの作成
- Google Cloud の設定
- AWS CognitoにGoogle Cloudのキーを追加
- 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の設定
Google Cloudの設定とAWS Cognitoのユーザープールに紐づく
1. Googleプロジェクトの認証情報作成
Google Cloud のプロジェクト作成は割愛します。
認証情報にて認証情報を作成します。 →「OAuthクライアントID」を選択する
名前は適当に入力
承認済みのJavaScript生成元
AWS Cognito プールの「アプリケーションの統合」タブでCognito ドメインを確認できます
https://{Cognitoドメインのプレフィックス}.auth.AWSのリージョン}.amazoncognito.com
承認済みのリダイレクトURI
{「承認済みのJavascript生成元」に入力した値 }/oauth2/idpresponse
設定完了だと、「クライアント ID」 と 「クライアント シークレット」は表示されます。
2. AWS Cognitoのユーザープールに紐づく
1. アイデンティティプロバイダーを追加
Cognitoのユーザープールの中にある「サインインエクスペリエンス」タブでアイデンティティプロバイダーを追加します。
アイデンティティプロバイダー
Google
クライアントID と クライアントシークレット
Googleプロジェクトの認証情報で作成したもの
許可されたスコープ
email profile openid
※ Googleコンソールにて設定できます。
Googleとユーザープール間で属性をマッピング
今回はemailで良いです。
2. ホストされたUIに追加
Cognitoのユーザープールの中にある「アプリケーション統括」タブでアプリクライアントに入って、ホストされた UI という設定があります。
- ID プロバイダーにGoogleを追加します。
3. テスト
ホストされたUIを表示ボタンを選択し、ログインしてみます。 成功でしたら、ユーザープールにユーザーが作成されます。