AWSのCognitoには名前にフェデレーションとつくリソースが二つある
- Cognito フェデレーテッドアイデンティティ
- Cognito UserPool サードパーティー (フェデレーション) 経由のサインイン
公式ドキュメントで明示的に違うものだと注記がつく(程度には紛らわしい)
注記
サードパーティー (フェデレーション) 経由のサインインは、Amazon Cognito のユーザープールで使用できます。この機能は、Amazon Cognito ID プール (フェデレーティッドアイデンティティ) 経由のフェデレーションとは別のものです。
Cognito フェデレーテッドアイデンティティ
Cognito IDプールのこと
外部のIDプロバイダーで認証し、AWSでの一時的なID(STS)を作成できる。このIDを利用して、Cognito Sync とデータを同期したり、他のAWSサービスにアクセスできる。
- Cognitoの古いほうの機能
- 例えば、Facebookなどでログインさせて一時的にAWSの権限を付与することが出来る
- AWSサービスの認可に使えるが、認証は出来ないのでどこの誰だかはわからない
- APIGateway,Dynamodb,S3へのアクセスを制御、とかはこれだけで出来る
- IDプールとプールという言葉がついているが永続的なID管理をしてくれるわけではない
Cognito UserPool のフェデレーション
Cognito Userプールの一機能
ユーザーディレクトリを作成、管理し、モバイルアプリやウェブアプリケーションにサインアップとサインインを追加できる。
- Cognito UserPoolはCognitoの新しいほうの機能 (とても便利になったと評判)
- UserプールはアプリのUserテーブル的なところawsがやってくれるサービス
- 認証/パスワード再発行/MFAなどの機能が利用できる
- このUserテーブルに、Facebookでログインしたユーザを登録できるのがUserPoolのフェデレーション
連携
紛らわしい概念同士を連携させることが出来る
CognitoIDプールのIDプロバイダ(Facebook, Google)の一つとして
CognitoUserプールを使うことが出来る