概要
Cognitoのログイン、認可エンドポイント役割、挙動の説明。
- OAuth2.0、OpenIDConnectのフローに乗せる際に使用する。
- 単純に認証してトークン(ID、アクセス、更新)が欲しいだけの場合、CognitoのAPIを普通に叩いても(Amplify等を使って)取得できる。
cognitoログインエンドポイントの説明
- 認可エンドポイント+認証機能がログインエンドポイント。
- ログインという名前がついているが感覚としては、"認可する"ことを許可するための認証が正しい。
- ログイン後、set-cookie: cognito="XXXX" され、認証のやり取りはこのクッキーを使って行う。
※1度認証済みになった後(認証情報用のクッキー有りの状態)、ログインエンドポイントへアクセスした場合、認証済みの画面が表示される。 - 認証後、指定したリダイレクトエンドポイント(redirect_uri)へ認可情報付きでリダイレクトされる。
cognito認可エンドポイントの説明
- ログインエンドポイントで認証した結果設定される認証情報用のクッキー(set-cookie: cognito="XXXX")が存在しない場合、ログインエンドポイントにリダイレクトされる。
- ログインエンドポイントにて認証後(認証情報用のクッキー有りの状態)、cognito認可エンドポイントをコールすると指定したリダイレクトエンドポイント(redirect_uri)へ認可情報付きでリダイレクトされる。
ユーザプール認証フローで使われているモノと何が違うのか
- ユーザプール認証フローはCognitoのAPIを叩いて実際に認証するための手順。
※APIを叩く方法はAmplifyやAmazon Cognito ユーザープールSDK等(自分実装で叩いても勿論OK) - ログイン、認可エンドポイントは、OAuth2.0、OpenIDConnectにCogtnitoを使う用。
- エンドポイントが内部処理として認証を行う際、ユーザー認証フローのどれかを使ってるのだと思われる
- エンドポイントの内部処理なのでユーザからは実際に認証をどうやってるのか見えない