見出し画像

Amazon Cognito復習

Amazon Cognito 概要

ユーザーディレクトリとしてアプリユーザーのサインアップとサインインオプションの提供や、ユーザーに別の AWS のサービスへのアクセスを許可する AWS 認証情報等を提供するサービスで、主なコンポーネントは次の2つです。
  ・Cognito ユーザープール
  ・Cognito ID プール (フェデレーティッドアイデンティティ)
Cognito Sync といったデバイス間でアプリケーションデータを同期するコンポーネントもありますが、本記事では省略いたします。

認証フロー

Cognitoの代表的な認証フローを引用します。

1. ユーザープールの認証フロー画像2https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html

2. ユーザープール認証フロー (カスタム認証チャレンジ Lambda トリガー)
画像3https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/user-pool-lambda-challenge.html

3. ID プールの基本認証フロー
画像4https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/authentication-flow.html

4. ID プールの拡張認証フロー
画像5https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/authentication-flow.html

サービスコンソールのトップ画面

ここからユーザープール、IDプールのそれぞれを設定できます。

画像1

まずはユーザープールを作成いたします。

Cognito ユーザープール

1. ユーザープール作成開始
[ユーザープールを作成]をクリックして先にすすめます。画像2
2. ユーザープール名設定
[デフォルトを確認する]を選択すると、デフォルト設定の確認ができ、直ぐにユーザープールの作成が可能です。
今回は[ステップに従って設定を選択する]を選択します。
画像3
3. 属性
サインイン方法、標準属性、カスタム属性(任意)が設定できます。画像4
4. ポリシー
パスワードポリシーや自己サインアップが設定できます。画像5
5. MFAそして確認
MFAの設定、アカウントリカバリー、属性の確認方法等が設定できます。画像6MFAを有効にすると、以下の通りSMSテキストメッセージとTOTP(Time-based One-time Password:時間ベースのワンタイムパスワード)から選択できます。([省略可能]を選択しても出力項目は同じです。)画像7
6. メッセージのカスタマイズ
主にAmazon SES関連について問われます。画像8
7. タグ
お馴染みのタグ追加です。画像9
8. デバイス
ユーザーのデバイスを記録できます。画像10これによってMFAによる2つ目の要素を抑制することができます。画像11
9. アプリクライアント

アプリクライアントへユーザープールに対するアクセス権限を付与できます。画像12ここで、カスタム認証の設定(デフォルトで有効)など認証フローの設定が可能です。画像13
10. トリガー
トリガーを利用したワークフローのカスタマイズが可能です。
画像15
画像15
11. 確認
最終確認画面です。画像16
作成完了後、以下画面へ遷移します。画像17

Cognito IDプール

1. IDプールの作成
ID プール名と認証関連事項を設定します。画像2設定をスルーしようとすると怒られます。画像3
2. IAM ロールの設定
IAM ロールの作成についてアナウンスされます。画像4
3. サンプルコード

プラットフォームに応じたSDKのダウンロードサイトと、AWS認証情報の取得のサンプルコードを入手できます。画像5なお、プラットフォームは以下が選択可能です。(2020年3月8日現在)
  ・Android
  ・iOS - Objective C
  ・iOS - Swift
  ・JavaScript
  ・Unity
  ・Xamarin
  ・.Net

4. ID ブラウザ
画像6
5. ダッシュボード
画像7

まとめ

Cognito は機能が豊富であり、他のサービスとの連携や、認証プロバイダーとの連携等ができることを再確認いたしました。

いいなと思ったら応援しよう!