このハンズオンでは Cognito ユーザプールの API を直接操作します。実際のアプリケーション開発では SDK を使って呼び出すことも多いですが、構成によっては API を直接呼び出すケースもあります。
まずは、Cognito には複数のサービスと API があるため、それらを紹介します。
Cognito には、ユーザプール と ID プール の 2 つのサービスがあります。
ユーザプール は独自のユーザディレクトリを持っており、ユーザを登録して認証することができます。ユーザには JWT 形式の Cognito トークンを発行され、アプリケーションの API へのアクセスに利用することができます。外部 ID プロバイダでのログインに基づいてトークンを発行することもできます。
ID プール では、独自に認証はせず Cognito ユーザプールあるいは外部 ID プロバイダでのログインに基づき、AWS 一時クレデンシャルを発行します。ユーザは AWS の各種サービスの API にアクセスできるようになります。
ユーザプールでは、Cognito Identity Provider API と Cognito Auth API の 2 つの API が提供されています。
Cognito Identity Provider API は、Cognito ユーザプール独自の API で InitiateAuth などの API があります。Cognito Auth API は OAuth / OIDC の仕様をベースとした API で Hosted UI も利用することになります。
さらに、Cognito Identity Provider API で提供されている各 API は、非 Admin API をブラウザなどのクライアントから直接呼び出す使い方とAdmin API をサーバから IAM 権限を使って呼び出す使い方があります。
Auth API も複数の使い方があります。OAuth 2.0 をベースにしたフローで、トークンを発行する前に認可コードを使ったステップがある Authorization Code Grant と認可コードは使わずすぐにトークンが発行される Implicit Grant があります。
全体を整理すると以下のとおりです。本ハンズオンでは Cognito Identity Provider API の 非 Admin API を呼び出しを 3章 で、Cognito Auth API の Authorization Code Grant の呼び出しを 4章 で行います。
Cognito の機能全般を知りたい方は Blackbelt - Amazon Cognito 資料 を見て頂くことをおすすめします。
本ハンズオンでは Postman を使って Cognito ユーザプールの API 呼び出しを行います。
特に指示がない場合は、東京リージョンをご利用ください。Amazon Cognito と Amazon API Gateway が利用できる他のリージョンでもかまいませんが、一部資料を読み替える必要があります。どのリージョンでサービスが提供されているかは、こちらのリストを参照ください。
本ハンズオンを実施すると、AWS の利用料金が発生します。新規に作成されたアカウントで実施される場合は無料利用枠の範囲ですが、それ以外の場合は料金が発生する場合があります。本ハンズオンの最後のステップにて作成したリソースの削除方法をご案内しているので、忘れずに削除してくだい。