ユーザープールのアプリクライアントの設定 - Amazon Cognito

ユーザープールのアプリクライアントの設定

アプリは、認証されていない API 操作 (認証されたユーザーがない操作) を呼び出すための許可を持つユーザープール内のエンティティです。この例には、登録、サインイン、忘れたパスワードの処理などの操作があります。これらの API を呼び出すには、アプリクライアント ID とオプションのクライアントシークレットが必要です。アプリクライアント ID またはシークレットをセキュア化して、認証されたクライアントアプリのみがこれらの認証されていない API を呼び出すことができるようにするのは、お客様の責任です。

ユーザープールには複数のアプリを作成できます。一般的に、アプリケーションはアプリケーションのプラットフォームに対応します。例えば、サーバー側アプリケーション用のアプリと、別の Android アプリを作成することができます。各アプリには独自のアプリのクライアント ID があります。

アプリケーションを作成すると、そのアプリケーションのシークレットを作成することもできます。シークレットをアプリケーション用に作成した場合、アプリケーションを使用するには、シークレットを提供する必要があります。JavaScript で作成されたブラウザベースのアプリケーションには、シークレットを持つアプリが必要ない場合があります。

シークレットは、アプリケーションの作成後に変更することはできません。使用しているシークレットキーを更新したい場合、新規のシークレットで新しいアプリケーションを作成できます。また、そのアプリのクライアント ID を使用するアプリケーションからのアクセスを遮断するためにアプリケーションを削除できます。

アプリクライアントを作成する (コンソール)

  1. ユーザープールのダッシュボードで、[Create a user pool] (ユーザープールを作成する) をクリックします。

  2. [Pool name] (プール名) を入力します。

  3. [Review defaults] (デフォルトを確認する) をクリックします。

  4. [Add an app client] (アプリクライアントの追加) をクリックします。

  5. [Add an app client] (アプリクライアントの追加) をクリックします。

  6. [App client name] (アプリクライアント名) を入力します。

  7. アプリの [Refresh token expiration] (トークンの有効期限を更新) を指定します。デフォルト値は 30 です。これは、1 時間から 10 年の任意の値に変更できます。

  8. アプリの [Access token expiration] (アクセストークンの有効期限) を指定します。デフォルト値は 1 時間です。これは、5 分から 24 時間の任意の値に変更できます。

  9. アプリの [ID token expiration] (ID トークンの有効期限) を指定します。デフォルト値は 1 時間です。これは、5 分から 24 時間の任意の値に変更できます。

    重要

    Hosted UI を使用しており、トークンを 1 時間未満に設定する場合、エンドユーザーは、現在 1 時間に固定されているセッション cookie に基づいて新しいトークンを取得できます。

  10. デフォルトでは、ユーザープールによりアプリのクライアントシークレットが生成されます。生成されないようにする場合、[クライアントシークレットを生成する] をクリアします。

  11. サーバーアプリがデベロッパー認証情報を必要とし (署名バージョン 4 を使用)、セキュアリモートパスワード (SRP) 認証を使用しない場合は、[Enable username password auth for admin APIs for authentication (ALLOW_ADMIN_USER_PASSWORD_AUTH)] (認証用の管理 API のユーザー名パスワード認証を有効にする (ALLOW_ADMIN_USER_PASSWORD_AUTH)) を選択してサーバー側の認証を有効にします。詳細については、「管理認証フロー」を参照してください。

  12. [Prevent User Existence Errors] (ユーザー存在エラーを防ぐ) で、[Legacy] (レガシー) または [Enabled] (有効) を選択します。詳細については、「エラーレスポンスの管理」を参照してください。

  13. デフォルトで、ユーザープールはアプリによるすべての属性を読み書きを許可します。アプリに異なる許可を設定する場合は、以下のステップを実行します。または [Create app client] (アプリクライアントの作成) をクリックして終了します。

    1. [Set attribute read and write permissions] (属性の読み込みおよび書き込み許可を設定する) をクリックします。

    2. 以下のいずれかを行って、読み取りと書き込み許可を設定します。

      • 1 つ、または複数のスコープを選択します。各スコープは、標準属性のセットです。詳細については、「標準 OIDC スコープ」のリストを参照してください。

      • 個々の標準属性またはカスタム属性を選択します。

    注記

    必須属性はアプリの書き込みアクセス権限から削除できません。

  14. [Create app client] (アプリクライアントの作成) をクリックします。

  15. 別のアプリを作成する場合は、[Add an app] (アプリの追加) を選択します。

  16. 必要なアプリをすべて作成したら、[Return to pool details] (プールの詳細に戻る) をクリックしてその他のフィールドを更新し、[Create pool] (プールの作成) をクリックします。

ユーザープールでアプリケーションクライアントを作成して更新する (API、AWS CLI)

次のいずれかを行ってください。

  • APICreateUserPoolClient および UpdateUserPoolClient 操作を使用します。

  • AWS CLI – コマンドラインで create-user-pool-client および update-user-pool-client コマンドを実行します。