Cognito のアクセストークンなどを取得するまでのフローを試してみた

Cognito のアクセストークンなどを取得するまでのフローを試してみた

Clock Icon2025.06.09

Identity provider and relying party endpoints - Amazon Cognito
認可エンドポイント > トークンエンドポイントの流れでアクセストークンなどを取得してみました。
なお、リクエストは Postman から行いました。

01. Cognito ユーザープールの作成

以下の設定でユーザープールを作成します。

  • アプリケーションタイプ: 従来のウェブアプリケーション
  • サインイン識別子のオプション: メールアドレス

上記以外はデフォルト設定です。
2025-06-09_10h04_00

02. ユーザーの作成

サインインに使用するユーザーを作成しておきます。
手順 01 で作成したユーザープール > ユーザー > ユーザーを作成をクリックします。
2025-06-09_10h04_55

E メールアドレスとパスワードを入力して「ユーザーを作成」をクリックします。
2025-06-09_10h06_01

ユーザーの作成後、アプリケーションクライアント > 手順 01 でユーザープール作成時に自動的に作成されたアプリケーションクライアントをクリックします。
2025-06-09_10h07_10

ログインページ > ログインページを表示をクリックします。
2025-06-09_10h07_35

上記手順で作成したユーザーの E メールアドレスとパスワードでサインインします。
初回のサインインではパスワードの変更を求められるのでパスワードを変更します。
2025-06-09_10h07_57
2025-06-09_10h08_12
2025-06-09_10h08_29

サインインが成功するとデフォルトの許可されているコールバック URL に遷移します。
2025-06-09_10h08_45

03. 認可エンドポイントへのリクエスト

The redirect and authorization endpoint - Amazon Cognito

To use the authorize endpoint, invoke your user's browser at /oauth2/authorize with parameters that provide your user pool with information about the following user pool details.

Cognito の認可エンドポイントは以下の形式です。

https://<Cognito ドメイン>/oauth2/authorize

Cognito のデフォルトドメインについてはユーザープール > ドメインから確認できます。
2025-06-09_10h09_42

上記エンドポイントに対して必要なパラメータを付与したうえでリクエストします。

今回は以下のようなリクエストパラメータを付与します。

  • response_type: code
  • client_id: Cognito アプリケーションクライアントのクライアント ID
  • redirect_uri: マネージドログインのデフォルトの許可されているコールバック URL
  • state: abcdefg
  • scope: email+openid+phone

上記パラメータを Postman で設定してリクエストを送信します。
2025-06-09_10h11_03

Status が 200 OK で Preview でサインインページが表示されていればリクエスト成功です。
2025-06-09_10h11_28

後述の手順で認可コードが必要になるため、上記リクエストパラメーターが付与された URL を Postman からコピーし、ブラウザで URL へアクセスします。
今回はサインインから試したかったのでブラウザのシークレットモードで URL へアクセスしました。

サインイン画面が表示されたら手順 02 で作成したユーザー情報でサインインします。
2025-06-09_10h13_25

サインイン後、URL に認可コードが含まれていれば OK です。
2025-06-09_10h14_28

サインイン後の URL を Postman に入力するとよりわかりやすいです。
code の値の文字列が認可コードです。
2025-06-09_10h14_51

04. トークンエンドポイントへのリクエスト

The token issuer endpoint - Amazon Cognito

The OAuth 2.0 token endpoint at /oauth2/token issues JSON web tokens (JWTs) to applications that want to complete authorization-code and client-credentials grant flows.

Cognito のトークンエンドポイントは以下の形式です。

https://<Cognito ドメイン>/oauth2/token

上記エンドポイントに対して必要なパラメータを付与したうえでリクエストします。

今回は以下のようなリクエストパラメータを付与します。

  • code: 手順 03 で取得した認可コード
  • client_id: Cognito アプリケーションクライアントのクライアント ID
  • client_secret: Cognito アプリケーションクライアントのクライアントシークレット
  • grant_type: authorization_code
  • redirect_uri: マネージドログインのデフォルトの許可されているコールバック URL

2025-06-09_10h17_52

また、以下のヘッダーも追加します。

  • Content-Type: application/x-www-form-urlencoded

2025-06-09_10h18_13

リクエストは POST メソッドで行います。
Status が 200 OK で以下の情報を取得できれば成功です。

  • id_token
  • access_token
  • refresh_token
  • expires_in
  • token_type

2025-06-09_10h18_37

まとめ

今回は Cognito のアクセストークンなどを取得するまでのフローを試してみました。
どなたかの参考になれば幸いです。

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.