

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

# 認証フローを実装する
<a name="authentication-implement"></a>

[マネージドログイン](authentication-flows-selection-managedlogin.md)を実装するか、認証用の AWS SDK [を使用してカスタム構築されたアプリケーションフロントエンド](authentication-flows-selection-sdk.md)を実装するかにかかわらず、実装する認証のタイプに合わせてアプリケーションクライアントを設定する必要があります。以下の情報では、[アプリケーションクライアント](user-pool-settings-client-apps.md)とアプリケーションにおける認証フローの設定について説明します。

------
#### [ App client supported flows ]

Amazon Cognito コンソールまたは AWS SDK の API を使用して、アプリケーションクライアントでサポートされているフローを設定できます。これらのフローをサポートするようにアプリケーションクライアントを設定した後で、アプリケーションにデプロイできます。

次の手順では、Amazon Cognito コンソールを使用してアプリケーションクライアントで利用できる認証フローを設定します。

**認証フロー用にアプリケーションクライアントを設定するには (コンソール)**

1. にサインイン AWS し、[Amazon Cognito ユーザープールコンソール](https://console.aws.amazon.com/cognito/v2/idp)に移動します。ユーザープールを選択するか、新しいユーザープールを作成します。

1. ユーザープールの設定で、**[アプリケーションクライアント]** メニューを選択します。アプリケーションクライアントを選択するか、新しく作成します。

1. **[アプリケーションクライアントに関する情報]** で、**[編集]** を選択します。

1. **[アプリケーションクライアントのフロー]** で、サポートする認証フローを選択します。

**認証フロー用にアプリケーションクライアントを設定するには (API/SDK)**  
Amazon Cognito API を使用してアプリケーションクライアントで利用可能な認証フローを設定するには、[CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html#CognitoUserPools-CreateUserPoolClient-request-ExplicitAuthFlows) リクエストまたは [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html#CognitoUserPools-UpdateUserPoolClient-request-ExplicitAuthFlows) リクエストで `ExplicitAuthFlows` の値を設定します。次の例では、セキュアリモートパスワード (SRP) と選択ベースの認証をクライアントにプロビジョニングします。

```
"ExplicitAuthFlows": [ 
   "ALLOW_USER_AUTH",
   "ALLOW_USER_SRP_AUTH"
]
```

アプリケーションクライアントがサポートするフローを設定するときは、以下のオプションと API 値を指定できます。


**アプリケーションクライアントでのフローのサポート**  

| 認証フロー | 互換性 | コンソール | API  | 
| --- | --- | --- | --- | 
| [選択ベースの認証](authentication-flows-selection-sdk.md#authentication-flows-selection-choice) | サーバー側、クライアント側 | サインイン時に認証タイプを選択する | ALLOW\_USER\_AUTH | 
| [永続的なパスワードによるサインイン](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-password) | クライアント側 | ユーザー名とパスワードでサインインする | ALLOW\_USER\_PASSWORD\_AUTH | 
| [永続的なパスワードと安全なペイロードによるサインイン](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-srp) | サーバー側、クライアント側 | セキュアリモートパスワード (SRP) でサインインする | ALLOW\_USER\_SRP\_AUTH | 
| [トークンの更新](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-refresh) | サーバー側、クライアント側 | 既存の認証済みセッションから新しいユーザートークンを取得する | ALLOW\_REFRESH\_TOKEN\_AUTH | 
| [サーバー側の認証](authentication-flows-public-server-side.md#amazon-cognito-user-pools-server-side-authentication-flow) | サーバー側 | サーバー側の管理認証情報でサインインする | ALLOW\_ADMIN\_USER\_PASSWORD\_AUTH | 
| [カスタム認証](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-custom) | サーバー側およびクライアント側のカスタム構築アプリケーション。マネージドログインとの互換性なし。 | Lambda トリガーからのカスタム認証フローでサインインする | ALLOW\_CUSTOM\_AUTH | 

------
#### [ Implement flows in your application ]

マネージドログインでは、設定された認証オプションがサインインページで自動的に利用可能になります。カスタム構築アプリケーションでは、初期フローの宣言から認証を開始します。
+ ユーザーのフローオプションのリストから選択するには、`USER_AUTH` フローで[選択ベースの認証](authentication-flows-selection-sdk.md#authentication-flows-selection-choice)を宣言します。このフローでは、[パスキー](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passkey)認証や[パスワードなし](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless)の認証など、クライアントベースの認証フローでは利用できない認証方法を利用できます。
+ 認証フローを事前に選択するには、アプリケーションクライアントで利用可能な他のフローで[クライアントベースの認証](authentication-flows-selection-sdk.md#authentication-flows-selection-client)を宣言します。

ユーザーをサインインさせるときは、[InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthFlow) リクエストまたは [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-AuthFlow) リクエストの本文に `AuthFlow` パラメータを含める必要があります。

選択ベースの認証:

```
"AuthFlow": "USER_AUTH"
```

SRP によるクライアントベースの認証:

```
"AuthFlow": "USER_SRP_AUTH"
```

------