

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

# ユーザーアカウントの管理と検索
<a name="how-to-manage-user-accounts"></a>

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

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

## ユーザー属性の表示
<a name="manage-user-accounts-viewing-user-attributes"></a>

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

**ユーザー属性を表示するには**

1. [Amazon Cognito コンソール](https://console.aws.amazon.com/cognito/home)に移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

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

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

1. **[ユーザー]** メニューを選択し、リストからユーザーを選択します。

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

## ユーザーのパスワードのリセット
<a name="manage-user-accounts-reset-user-password"></a>

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

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

1. [Amazon Cognito コンソール](https://console.aws.amazon.com/cognito/home)に移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

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

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

1. **[ユーザー]** メニューを選択し、リストからユーザーを選択します。

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

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

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

## ユーザーアカウントの有効化、無効化、削除
<a name="manage-user-accounts-enable-disable"></a>

使用されていないユーザープロファイルを削除できます。一時的にアクセスを制限する場合は、無効にすることもできます。ユーザーは自分のアカウントを削除できますが、ユーザーアカウントを有効または無効にできるのはユーザープール管理者のみです。

**削除の影響**  
ユーザーは、削除済みのユーザーアカウントでサインインすることはできません。アクセスを回復するには、サインアップするか、再度作成する必要があります。

**アカウントの無効化の影響**  
ユーザーアカウントを無効にすると、Amazon Cognito はすべての認証済みセッションを自動的に無効にし、サインイン用のユーザーアカウントを非アクティブ化して、[アクセストークンと更新トークンの取り消し](token-revocation.md)を行います。無効化したアカウントにユーザーがサインインしようとすると、Amazon Cognito は `invalid_request` エラーとともにメッセージ `User is not enabled` を返します。この動作は、アプリケーションクライアントの[ユーザー存在の開示設定](cognito-user-pool-managing-errors.md)では変更されません。ローカルユーザーアカウントと、フェデレーションユーザーアカウントのローカルプロファイルを無効にすることができます。ユーザーがマネージドログインまたはクラシックのホストされた UI を使用してサインインし、その後アカウントを無効にした場合、認証されたセッションを維持するブラウザ Cookie を通じて再度サインインしようとすると、Amazon Cognito によってログインページにリダイレクトされます。

**アカウントの有効化の影響**  
ユーザーは、アカウントを有効にすると、すぐにサインインできます。ユーザーアカウントはデフォルトで有効になります。ユーザーの属性とパスワードは、アカウントが無効になる前と同じままです。アプリケーションで取り消したトークンは、ユーザーアカウントを無効にしたか、更新トークンを別個に取り消したかにかかわらず、トークンを所有していたユーザーアカウントを有効にした後も無効のままになります。

------
#### [ Delete a user account (console) ]

**ユーザーアカウントを削除するには**

1. [Amazon Cognito コンソール](https://console.aws.amazon.com/cognito/home)に移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

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

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

1. **[ユーザー]** メニューを選択し、リスト内のユーザーのユーザー名の横にあるラジオボタンを選択します。

1. **[削除]** を選択します。

1. **[アクセスの無効化]** を選択します。

1. **[削除]** を選択します。

------
#### [ Delete a user account (API) ]

ユーザーは、セルフサービスのアクセストークンで認可された [DeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUser.html) API オペレーションを使用してアカウントを削除できます。`DeleteUser` リクエスト本文の例を次に示します。

```
{
   "AccessToken": "{{eyJra456defEXAMPLE}}"
}
```

管理者は、IAM で認可された [AdminDeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDeleteUser.html) API オペレーションを使用してユーザーアカウントを削除できます。`AdminDeleteUser` リクエスト本文の例を次に示します。

```
{
   "Username": "{{testuser}}",
   "UserPoolId": "{{us-west-2_EXAMPLE}}"
}
```

------
#### [ Disable a user account (console) ]

**ユーザーアカウントを無効にするには**

1. [Amazon Cognito コンソール](https://console.aws.amazon.com/cognito/home)に移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

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

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

1. **[ユーザー]** メニューを選択し、リストからユーザーのユーザー名を選択します。

1. ユーザーの詳細ページで、**[アクション]**、**[ユーザーアクセスの無効化]** の順に選択します。

1. 表示されたダイアログで、**[無効化]** を選択します。

------
#### [ Disable a user account (API) ]

管理者は、IAM で認可された [AdminDisableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableUser.html) API オペレーションを使用してユーザーアカウントを無効化できます。`AdminDisableUser` リクエスト本文の例を次に示します。

```
{
   "Username": "{{testuser}}",
   "UserPoolId": "{{us-west-2_EXAMPLE}}"
}
```

------
#### [ Enable a user account (console) ]

**ユーザーアカウントを有効にするには**

1. [Amazon Cognito コンソール](https://console.aws.amazon.com/cognito/home)に移動します。プロンプトが表示されたら、 AWS 認証情報を入力します。

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

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

1. **[ユーザー]** メニューを選択し、リストからユーザーのユーザー名を選択します。

1. ユーザーの詳細ページで、**[アクション]**、**[ユーザーアクセスの有効化]** の順に選択します。

1. 表示されたダイアログで、**[有効化]** を選択します。

------
#### [ Enable a user account (API) ]

管理者は、IAM で認可された [AdminEnableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminEnableUser.html) API オペレーションを使用してユーザーアカウントを有効化できます。`AdminEnableUser` リクエスト本文の例を次に示します。

```
{
   "Username": "{{testuser}}",
   "UserPoolId": "{{us-west-2_EXAMPLE}}"
}
```

------

## ユーザー属性の検索
<a name="manage-user-accounts-searching-user-attributes"></a>

ユーザープールがすでに作成されている場合は、 AWS マネジメントコンソールの [**Users**] (ユーザー) パネルから検索できます。また、**[Filter]** (フィルター) パラメータを受け入れる Amazon Cognitoの [ListUsers API](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) も使用できます。

以下のどの標準属性でも検索できます。カスタム属性は検索できません。
+ 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](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html)」を参照してください。

## でユーザーを検索する AWS マネジメントコンソール
<a name="cognito-user-pools-manage-user-accounts-searching-for-users-using-console"></a>

ユーザープールがすでに作成されている場合は、 AWS マネジメントコンソールの [**Users**] (ユーザー) パネルから検索できます。

AWS マネジメントコンソール 検索は常にプレフィックス (「starts with」) 検索です。

**Amazon Cognito コンソールでユーザーを検索する**

1. [Amazon Cognito コンソール](https://console.aws.amazon.com/cognito/home)に移動します。 AWS 認証情報の入力を求められる場合があります。

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

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

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

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

## `ListUsers` API を使用したユーザーの検索
<a name="cognito-user-pools-searching-for-users-using-listusers-api"></a>

 アプリからユーザーを検索するには、Amazon Cognito の [ListUsers API](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) を使用します。この API は以下のパラメータを使用します。
+  `AttributesToGet`: 文字列の配列です。各文字列は、検索結果でユーザーごとに返されるユーザー属性の名前です。すべての属性を取得するには、`AttributesToGet` パラメータを含めないか、またはリテラル文字列の値 `null` を使って `AttributesToGet` をリクエストしてください。
+  `Filter`: 「 ""」形式のフィルター文字列です。`AttributeName``Filter-Type``AttributeValue`フィルター文字列内の引用符は、円記号 (`\`) を使用してエスケープする必要があります。例えば、`"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 の使用例
<a name="cognito-user-pools-searching-for-users-listusers-api-examples"></a>

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

```
{
    "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"
}
```