ユーザプール
- ユーザ情報の保持とそのユーザの認証まで。
- 各種トークン(ID、アクセス、更新)の払い出し。
- API Gateway側はオーソライザーを設定することで、ユーザプールでの認証が通っているかどうかによるアクセス許可・拒否が可能。
- AWSリソースを操作したい場合、IDトークンから一時クレデンシャルを発行してもらう必要あり。
※IDプールにIDトークンを渡すことで、"認証されたユーザ" として扱われる
ID プール (フェデレーティッドアイデンティティ)
- ユーザに対してCognitoID(
GetId
で取得しレスポンスのIdentityID
=CognitoID)を払い出す- プロバイダ毎に認証済みの場合、
GetId
のLogins
にプロバイダと識別情報を指定すれことが可能
※プロバイダ=Logins
の中のkey部分、識別情報=Logins
の中のvalue部分(大体、IDトークン)
※この時、ユーザプールはあくまでプロバイダの1つである(対象プロバイダは ここ のLogins
参照)
※対象プロバイダは独自認証を対象にすることが可能なので実質何でもあり
- プロバイダ毎に認証済みの場合、
- AWSリソースへの権限(ロール)を付与する。※一時クレデンシャルが貰える
- ロールは、認証されたユーザ、認証されていないユーザで別々に付与できる。
- 認証プロバイダとして、ユーザプールを指定することが可能。※ユーザプール以外も指定可能
- ユーザプールと密接な関係があるように見えてそういうわけではなく、IDプールからするとユーザプールもIDプールにIDを貰いに来たプロバイダーの1つに過ぎない
- 独自認証に対して、Coginito発のIDトークンを発行できる(
GetOpenIdTokenForDeveloperIdentity
)