ユーザーアカウントの管理と検索 - Amazon Cognito

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ユーザーアカウントの管理と検索

ユーザープールには数百万のユーザーを含めることができます。このサイズのデータセットを使用するのは管理者にとって課題になります。Amazon Cognito には、ユーザープロファイルの検索や変更を行うツールがあります。ユーザーを検索する主な方法は、Amazon Cognito コンソールのユーザーメニューと ListUsers です。ユーザーに関する情報を取得する方法としては、[AdminGetUser] などとは異なり、コストに影響しないオプションです。

本ガイドのこのセクションには、ユーザープール内のユーザープロファイルの検索と更新に関する情報が記載されています。

ユーザー属性の表示

Amazon Cognito コンソールでユーザー属性を表示するには、以下の手順に従います。

ユーザー属性を表示するには
  1. Amazon Cognito コンソールに移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

  2. [User Pools] (ユーザープール) を選択します。

  3. リストから存在するユーザープールを 1 つ選択します。

  4. ユーザーメニューを選択し、リスト内のユーザーを選択します。

  5. ユーザーの詳細ページの [User attributes] (ユーザー属性) で、ユーザーに関連付けられている属性を表示できます。

ユーザーのパスワードのリセット

Amazon Cognito コンソールでユーザーのパスワードをリセットするには、以下の手順に従います。

ユーザーのパスワードのリセット
  1. Amazon Cognito コンソールに移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

  2. [User Pools] (ユーザープール) を選択します。

  3. リストから存在するユーザープールを 1 つ選択します。

  4. ユーザーメニューを選択し、リスト内のユーザーを選択します。

  5. ユーザーの詳細ページで、[Actions] (アクション)、[Reset password] (パスワードのリセット) を選択します。

  6. [Reset password] (パスワードのリセット) ダイアログで、情報を確認し、準備ができたら [Reset] (リセット) を選択します。

    この行動により、確認コードがユーザーに即時送信され、ユーザーの状態が RESET_REQUIRED に変更されることでユーザーの現在のパスワードが無効にされます。[Reset password] (ユーザーパスワードのリセット) コードは、1 時間有効です。

ユーザー属性の検索

ユーザープールがすでに作成されている場合は、 AWS Management Consoleの [Users] (ユーザー) パネルから検索できます。また、[Filter] (フィルター) パラメータを受け入れる Amazon Cognitoの ListUsers API も使用できます。

以下のどの標準属性でも検索できます。カスタム属性は検索できません。

  • username (大文字と小文字が区別されます)

  • email

  • phone_number

  • name

  • given_name

  • family_name

  • preferred_username

  • cognito:user_status (コンソールでは [Status (ステータス)] となっています) (大文字と小文字が区別されません)

  • status (コンソールでは [Enabled (有効)] となっています) (大文字と小文字が区別されます)

  • sub

注記

また、クライアント側のフィルターを使用してユーザーを一覧表示することもできます。サーバー側のフィルターは、1 つ以上の属性に一致しません。高度な検索を行うには、 AWS Command Line Interfaceでの list-users のアクションの --query パラメータを用いたクライアント側のフィルターを使用します。クライアント側のフィルターを使用すると、ListUsers は 0 人以上のユーザーからなるページ分割されたリストを返します。結果がゼロで、複数のページを連続して受信できます。Null ページネーショントークン値を受け取るまで、返される各ページネーショントークンでクエリを繰り返し、組み合わせた結果を確認します。

サーバー側およびクライアント側のフィルタリングの詳細については、 AWS Command Line Interface 「 ユーザーガイド」の「出力のフィルタリング AWS CLI」を参照してください。

でユーザーを検索する AWS Management Console

ユーザープールがすでに作成されている場合は、 AWS Management Consoleの [Users] (ユーザー) パネルから検索できます。

AWS Management Console 検索は常にプレフィックス (「starts with」) 検索です。

Amazon Cognito コンソールでユーザーを検索する
  1. Amazon Cognito コンソールに移動します。 AWS 認証情報の入力を求められる場合があります。

  2. [User Pools] (ユーザープール) を選択します。

  3. リストから存在するユーザープールを 1 つ選択します。

  4. ユーザーメニューを選択し、検索フィールドにユーザー名を入力します。[Username] (ユーザーネーム) など、一部の属性値では、大文字と小文字が区別される点に注意してください。

    また、検索フィルターを調整して、スコープを他のユーザープロパティ ([Email] (E メール)、[Phone number] (電話番号)、または [Last name] (姓)など) に絞り込むことで、ユーザーを検索することもできます。

ListUsers API を使用したユーザーの検索

アプリからユーザーを検索するには、Amazon Cognito の ListUsers API を使用します。この API は以下のパラメータを使用します。

  • AttributesToGet: 文字列の配列です。各文字列は、検索結果でユーザーごとに返されるユーザー属性の名前です。すべての属性を取得するには、AttributesToGet パラメータを含めないか、またはリテラル文字列の値 null を使って AttributesToGet をリクエストしてください。

  • Filter: 「 ""」形式のフィルター文字列です。AttributeNameFilter-TypeAttributeValueフィルター文字列内の引用符は、円記号 (\) を使用してエスケープする必要があります。例えば、"family_name = \"Reddy\"" と指定します。フィルター文字列が空の場合、ListUsers はユーザープールのすべてのユーザーを返します。

    • AttributeName: 検索する属性の名前。同時に検索できる属性は 1 つのみです。

      注記

      標準属性のみを検索できます。カスタム属性は検索できません。これはインデックスが付けられた属性のみが検索可能なためで、カスタム属性にインデックスを作成することはできません。

    • Filter-Type: 完全一致を検索する場合は、= を使用します (given_name = "Jon" など)。プレフィックス (「先頭の文字」) 一致を検索する場合、^= を使用します (given_name ^= "Jon" など)。

    • AttributeValue: ユーザーごとに一致する必要がある属性値です。

  • Limit: 返されるユーザーの最大数です。

  • PaginationToken: 前の検索からさらに結果を取得するためのトークンです。Amazon Cognito は 1 時間後にページ分割トークンを期限切れにします。

  • UserPoolId: 検索を実行する必要があるユーザープールのユーザープール ID です。

すべての検索で大文字と小文字が区別されません。検索結果は、AttributeName 文字列により指定された属性によって昇順に並べ替えられます。

ListUsers API の使用例

次の例はすべてのユーザーを返します。すべての属性が含まれています。

{ "AttributesToGet": null, "Filter": "", "Limit": 10, "UserPoolId": "us-east-1_samplepool" }

次の例は、電話番号の先頭が「+1312」のすべてのユーザーを返します。また、すべての属性が含まれています。

{ "AttributesToGet": null, "Filter": "phone_number ^= \"+1312\"", "Limit": 10, "UserPoolId": "us-east-1_samplepool" }

次の例は、姓が「Reddy」の先頭 10 人のユーザーを返します。各ユーザーの検索結果には、ユーザーの名、電話番号、E メールアドレスが含まれています。ユーザープールに存在する一致ユーザーが 10 人を超える場合、レスポンスにはページ分割トークンが含まれています。

{ "AttributesToGet": [ "given_name", "phone_number", "email" ], "Filter": "family_name = \"Reddy\"", "Limit": 10, "UserPoolId": "us-east-1_samplepool" }

前の例でページ分割トークンが返された場合、次の例は同じフィルター文字列と一致する次の 10 人のユーザーを返します。

{ "AttributesToGet": [ "given_name", "phone_number", "email" ], "Filter": "family_name = \"Reddy\"", "Limit": 10, "PaginationToken": "pagination_token_from_previous_search", "UserPoolId": "us-east-1_samplepool" }