0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Cognito 備忘録:アプリクライアント設定で Allowed Logout URLs が logout_url と一致しているかを確認する方法

Posted at

はじめに

AWS Cognito を利用する際、ログアウト処理の適切な設定は重要です。

特に logout_urlAllowed Logout URLs が一致していないと、意図したログアウト動作ができないことがあります。

本記事では、Cognito のログアウト設定を確認する手順や、AWS マネジメントコンソール・CLI での確認方法を紹介します。

書こうと思ったきっかけ

Cognito を利用した認証機能を実装する中で、ログアウト後のリダイレクト先の設定に問題が発生しました。

特に logout_urlAllowed Logout URLs に登録されていないとログアウト時にエラーとなることがありました。

そこで、ログアウト設定の確認手順を整理し、環境変数や AWS マネコン側でどのように設定すべきかを明確にするため、本記事をまとめることにしました。

確認手順について

AWS マネジメントコンソールでの確認

  1. AWS マネジメントコンソールにログイン
  2. Cognito コンソール にアクセス
  3. ユーザープールを選択
    • 該当のユーザープールを選択する
  4. アプリ統合の設定
    • 左のメニューから「アプリ統合」を開く
    • 「アプリクライアントの設定」セクションを確認
  5. Allowed Logout URLs の確認
    • 「サインアウトURL」(Allowed Logout URLs)の項目を確認し、logout_url と比較
    • http / https の違いや末尾の / の有無にも注意

実際の確認画面

Screenshot 2025-02-14 at 8.35.09.png

CLIでの確認方法

AWS CLI を使用して Allowed Logout URLs を取得することも可能です。

aws cognito-idp describe-user-pool-client \
    --user-pool-id <USER_POOL_ID> \
    --client-id <CLIENT_ID> \
    --query "UserPoolClient.LogoutURLs"

これにより、Cognito に登録されている Allowed Logout URLs を取得できるので、logout_url と比較してください。

実際の確認画面

Screenshot 2025-02-14 at 8.39.32.png

logout_url を確認する方法

logout_url がどこで設定されているかにより確認方法が異なります。

フロントエンドのコードで確認

アプリケーションのログアウト処理を実装している部分に logout_url が記述されている可能性があります。

const logout_url = `https://yourdomain.auth.<region>.amazoncognito.com/logout?client_id=<CLIENT_ID>&logout_uri=https://yourapp.com/logout`;

または、環境変数 (.env) に設定されていることもあります。

NEXT_PUBLIC_COGNITO_LOGOUT_URL=https://yourdomain.auth.<region>.amazoncognito.com/logout

バックエンド(API)の設定を確認

バックエンドでログアウト処理 (logout_url) を設定している場合、環境変数や設定ファイルに記述されている可能性があります。

export LOGOUT_URL="https://yourdomain.auth.<region>.amazoncognito.com/logout?client_id=<CLIENT_ID>&logout_uri=https://yourapp.com/logout"

または設定ファイル (config.py, .env, settings.json など) に記載されている可能性があります。

LOGOUT_URL = "https://yourdomain.auth.<region>.amazoncognito.com/logout?client_id=<CLIENT_ID>&logout_uri=https://yourapp.com/logout"

Cognitoのアプリ統合設定を確認

Cognito の「アプリ統合」設定に logout_url を設定している場合、AWS マネジメントコンソールから確認できます。

確認手順

  1. AWS マネジメントコンソールにログイン
  2. Cognito → ユーザープールを開く
  3. 「アプリ統合」 → 「アプリクライアントの設定」へ移動
  4. 「サインアウトURL」(Allowed Logout URLs) を確認

AWS CLI で確認

aws cognito-idp describe-user-pool-client \
    --user-pool-id <USER_POOL_ID> \
    --client-id <CLIENT_ID> \
    --query "UserPoolClient.LogoutURLs"

Allowed Logout URLs と logout_url を一致させる必要がある

理由
Cognito のログアウト処理では、ユーザーがログアウト後にリダイレクトされるURLを logout_uri(または logout_url)として指定します。

このURLが Cognito の Allowed Logout URLs に登録されていないと、ログアウト時にエラーが発生します。

対処方法

✅ AWS マネジメントコンソールでの設定手順

  1. AWS マネジメントコンソールにログイン
  2. Cognito > ユーザープール > 対象のユーザープールを選択
  3. 「アプリ統合」 > 「アプリクライアントの設定」
  4. 「サインアウトURL」(Allowed Logout URLs) に logout_url を追加
  5. 保存して設定を反映

✅ CLIで設定を確認・更新

確認

aws cognito-idp describe-user-pool-client \
    --user-pool-id <USER_POOL_ID> \
    --client-id <CLIENT_ID> \
    --query "UserPoolClient.LogoutURLs"

追加・更新

aws cognito-idp update-user-pool-client \
    --user-pool-id <USER_POOL_ID> \
    --client-id <CLIENT_ID> \
    --logout-urls "https://yourapp.com/logout"

.env 側か、AWSのマネコン側どちらで変更すべき?

.env を変更すべきケース

  • .env に設定されている logout_url が Cognito の Allowed Logout URLs に登録済みの場合。
  • フロントエンドやバックエンドのリダイレクト先を変更したい場合。

✅ 変更方法

LOGOUT_URL="https://yourapp.com/logout"

AWS マネコン側を変更すべきケース

  • .envlogout_url を変えたくない場合(他の環境と統一したい)。
  • 複数の logout_url を許可したい場合(例: 本番用と開発用を両方登録)。
  • 現在の logout_url が Cognito 側に登録されていない場合。

✅ 変更手順(AWS マネコン)

  1. AWS マネジメントコンソールにログイン
  2. Cognito → ユーザープール → 該当のユーザープールを選択
  3. 「アプリ統合」 > 「アプリクライアントの設定」
  4. 「サインアウトURL」(Allowed Logout URLs) に .envlogout_url を追加
  5. 保存して適用

まとめ

  • logout_url を変えても問題ないなら .env を Cognito の Allowed Logout URLs に合わせる
  • logout_url を変えたくないなら Cognito 側の Allowed Logout URLs.envlogout_url を追加する
  • 迷ったら、まず Cognito 側の Allowed Logout URLs.envlogout_url を追加してみるのが安全

これで、Cognito のログアウトURL設定を適切に管理できます!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?