Amazon Cognito復習
Amazon Cognito 概要
ユーザーディレクトリとしてアプリユーザーのサインアップとサインインオプションの提供や、ユーザーに別の AWS のサービスへのアクセスを許可する AWS 認証情報等を提供するサービスで、主なコンポーネントは次の2つです。
・Cognito ユーザープール
・Cognito ID プール (フェデレーティッドアイデンティティ)
Cognito Sync といったデバイス間でアプリケーションデータを同期するコンポーネントもありますが、本記事では省略いたします。
認証フロー
Cognitoの代表的な認証フローを引用します。
1. ユーザープールの認証フローhttps://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html
2. ユーザープール認証フロー (カスタム認証チャレンジ Lambda トリガー)https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/user-pool-lambda-challenge.html
3. ID プールの基本認証フローhttps://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/authentication-flow.html
4. ID プールの拡張認証フローhttps://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/authentication-flow.html
サービスコンソールのトップ画面
ここからユーザープール、IDプールのそれぞれを設定できます。
まずはユーザープールを作成いたします。
Cognito ユーザープール
1. ユーザープール作成開始
[ユーザープールを作成]をクリックして先にすすめます。
2. ユーザープール名設定
[デフォルトを確認する]を選択すると、デフォルト設定の確認ができ、直ぐにユーザープールの作成が可能です。
今回は[ステップに従って設定を選択する]を選択します。
3. 属性
サインイン方法、標準属性、カスタム属性(任意)が設定できます。
4. ポリシー
パスワードポリシーや自己サインアップが設定できます。
5. MFAそして確認
MFAの設定、アカウントリカバリー、属性の確認方法等が設定できます。MFAを有効にすると、以下の通りSMSテキストメッセージとTOTP(Time-based One-time Password:時間ベースのワンタイムパスワード)から選択できます。([省略可能]を選択しても出力項目は同じです。)
6. メッセージのカスタマイズ
主にAmazon SES関連について問われます。
7. タグ
お馴染みのタグ追加です。
8. デバイス
ユーザーのデバイスを記録できます。これによってMFAによる2つ目の要素を抑制することができます。
9. アプリクライアント
アプリクライアントへユーザープールに対するアクセス権限を付与できます。ここで、カスタム認証の設定(デフォルトで有効)など認証フローの設定が可能です。
10. トリガー
トリガーを利用したワークフローのカスタマイズが可能です。
11. 確認
最終確認画面です。
作成完了後、以下画面へ遷移します。
Cognito IDプール
1. IDプールの作成
ID プール名と認証関連事項を設定します。設定をスルーしようとすると怒られます。
2. IAM ロールの設定
IAM ロールの作成についてアナウンスされます。
3. サンプルコード
プラットフォームに応じたSDKのダウンロードサイトと、AWS認証情報の取得のサンプルコードを入手できます。なお、プラットフォームは以下が選択可能です。(2020年3月8日現在)
・Android
・iOS - Objective C
・iOS - Swift
・JavaScript
・Unity
・Xamarin
・.Net
4. ID ブラウザ
5. ダッシュボード
まとめ
Cognito は機能が豊富であり、他のサービスとの連携や、認証プロバイダーとの連携等ができることを再確認いたしました。