🕵️
Amazon Cognito入門
はじめに
仕事でCognitoを使うので、情報を整理しようと思います。
Amazon Cognitoとは
Cognitoは、Webアプリ・Mobileアプリ用の認証[1]・認可[2]機能を簡単に実装できるサービスです。
主に2つのコンポーネントがあり、どちらかを利用することも、どちらも利用することも可能です。
ユーザープール
- 認証の設定を行う
- 使った分の課金
- Amazon Cognito経由でサインインする、もしくはサードパーティのIdP経由でフェデレートすることを可能にする
IDプール
- 認可の設定を行う
- サービスにアクセスするための一時的な認証情報を取得できる
- 無料
- AWSアカウント内のIAMポリシーとの統合方法は2つあり、どちらか利用する、もしくはどちらも利用することが可能
- ロールベースアクセスコントロール
- アクセスコントロールの属性
それぞれ詳しく説明していきます。
ユーザープール
先程説明した通り、認証機能実装するのがユーザープールです。
ユーザープール作成時に設定する項目は以下です。
- フェデレーテッドIDプロバイダー(Facebook、Google等)の利用有無
- Cognitoユーザープールサインインオプション(ユーザー名、Email等)
- パスワードポリシー
- MFAの有無
- パスワードを忘れた際のアカウント復旧方法
- 自己登録(新規ユーザー自らサインアップ)の可否
- 属性検証とユーザーアカウント確認の方法(Cognitoが確認メッセージを自動送信or手動で確認)
- 新規ユーザー作成に必要な属性(電話番号、メールアドレス等)
- メール送信方法(Amazon SES、Amazon Cognito)、SMS送信方法
- ユーザープール情報(ユーザープール名、ドメインタイプ、統合するアプリ名、コールバックURL)
IDプール
最初に説明した通り、認可機能を実装するのがIDプールです。
IDプール作成時に設定する項目は以下です。
- 認証情報(どのIDプロバイダーで認証したのか(Cognitoユーザープール、Facebook等)、または未認証のゲストユーザーなのか)
- 適用するIAMロール
- IDプロバイダーの詳細情報(ユーザープールID、アプリクライアントID、ロール設定、ユーザーセッションとタグのマッピング)
- IDプール情報(IDプール名、基本認証のアクティブ化、タグ)
おわりに
利用前の事前情報整理といったところなので、利用してみてわかったことがあれば随時更新していきます。
Discussion