View a markdown version of this page

認証フローを実装する - Amazon Cognito

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

認証フローを実装する

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

App client supported flows

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

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

認証フロー用にアプリケーションクライアントを設定するには (コンソール)
  1. にサインイン AWS し、Amazon Cognito ユーザープールコンソールに移動します。ユーザープールを選択するか、新しいユーザープールを作成します。

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

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

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

認証フロー用にアプリケーションクライアントを設定するには (API/SDK)

Amazon Cognito API を使用してアプリケーションクライアントで利用可能な認証フローを設定するには、CreateUserPoolClient リクエストまたは UpdateUserPoolClient リクエストで ExplicitAuthFlows の値を設定します。次の例では、セキュアリモートパスワード (SRP) と選択ベースの認証をクライアントにプロビジョニングします。

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

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

アプリケーションクライアントでのフローのサポート
認証フロー 互換性 コンソール API
選択ベースの認証 サーバー側、クライアント側 サインイン時に認証タイプを選択する ALLOW_USER_AUTH
永続的なパスワードによるサインイン クライアント側 ユーザー名とパスワードでサインインする ALLOW_USER_PASSWORD_AUTH
永続的なパスワードと安全なペイロードによるサインイン サーバー側、クライアント側 セキュアリモートパスワード (SRP) でサインインする ALLOW_USER_SRP_AUTH
トークンの更新 サーバー側、クライアント側 既存の認証済みセッションから新しいユーザートークンを取得する ALLOW_REFRESH_TOKEN_AUTH
サーバー側の認証 サーバー側 サーバー側の管理認証情報でサインインする ALLOW_ADMIN_USER_PASSWORD_AUTH
カスタム認証 サーバー側およびクライアント側のカスタム構築アプリケーション。マネージドログインとの互換性なし。 Lambda トリガーからのカスタム認証フローでサインインする ALLOW_CUSTOM_AUTH
Implement flows in your application

マネージドログインでは、設定された認証オプションがサインインページで自動的に利用可能になります。カスタム構築アプリケーションでは、初期フローの宣言から認証を開始します。

  • ユーザーのフローオプションのリストから選択するには、USER_AUTH フローで選択ベースの認証を宣言します。このフローでは、パスキー認証やパスワードなしの認証など、クライアントベースの認証フローでは利用できない認証方法を利用できます。

  • 認証フローを事前に選択するには、アプリケーションクライアントで利用可能な他のフローでクライアントベースの認証を宣言します。

ユーザーをサインインさせるときは、InitiateAuth リクエストまたは AdminInitiateAuth リクエストの本文に AuthFlow パラメータを含める必要があります。

選択ベースの認証:

"AuthFlow": "USER_AUTH"

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

"AuthFlow": "USER_SRP_AUTH"