Cognitoとは
認証・認可周りを担当するサービス。
大別して三つの機能があり、それぞれ名前のついたサービスに分かれている
機能 | サービス |
---|---|
ユーザの管理と認証 | User Pools |
AWSの各リソースへの認可 | Federated Identities |
同一ユーザのデバイス間同期 | Sync |
Cognito User Pools
- ユーザの管理
- メールアドレスなどを利用したユーザ登録
- メールアドレスや電話番号の検証
- パスワード再発行
- CSVなどを利用したインポート・エクスポート
- ユーザの認証
- ID/Passwordでの認証
- OpenID Connectに準拠したTokenの発行
Cognito Federated Identities
- Identityの発行
- 認証サービスを利用しているユーザを名寄せし、統合したIDを発行
- AWSリソースへの認可
- Cognito User Poolのユーザの認可
- 未認証ユーザの認可
- 以下の外部認証サービスのユーザの認可
- Amazon
- OpenID Connectプロバイダー
- SAMLプロバイダー
- 独自に実装したプロバイダー
Cognito Sync
- データの保存
- key-valueの形式でデータを保存
- オフライン状態でも動作
- 同一ユーザ間の同期
- 同じユーザの複数デバイス間でデータを同期
動作
- UserPoolにログインしてTokenを取得
- 取得したTokenをFederated Identitiesに渡す
- Federated IdentitiesがTokenを検証
- 検証が完了したらSTSから一時クレデンシャルを取得
- ユーザに一時クレデンシャルと統合IDを返す
- 統合IDと一時クレデンシャルを利用してAWSリソースにアクセス