翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ユーザープールによる認証について知っておくべきこと
Amazon Cognito ユーザープールを使用した認証モデルの設計では、以下の情報を考慮してください。
- マネージドログインとホストされた UI の認証フロー
-
マネージドログインには、クラシックのホストされた UI よりも多くの認証オプションがあります。例えば、ユーザーはマネージドログインでのみ、パスワードなしの認証とパスキー認証を実行できます。
- AWS SDK 認証でのみ使用できるカスタム認証フロー
-
マネージドログインまたはクラシックのホストされた UI で、カスタム認証フローや Lambda トリガーによるカスタム認証を行うことはできません。カスタム認証は AWS SDK による認証で利用できます。
- 外部 ID プロバイダー (IdP) によるサインイン用のマネージドログイン
-
AWS SDKs による認証では、サードパーティーの IdPs を介してユーザーにサインインすることはできません。マネージドログインまたはクラシックのホストされた UI を実装し、IdP にリダイレクトしてから、結果の認証オブジェクトをアプリケーション内の OIDC ライブラリで処理する必要があります。マネージドログインの詳細については、「ユーザープールのマネージドログイン」を参照してください。
- パスワードなしの認証が他のユーザー機能に与える影響
-
ユーザープールとアプリケーションクライアントでワンタイムパスワードまたはパスキーを使用してパスワードなしのサインインをアクティブ化すると、ユーザーの作成と移行に影響します。パスワードなしのサインインがアクティブな場合:
-
管理者はパスワードなしでユーザーを作成できます。デフォルトの招待メッセージテンプレートが変わり、
{###}パスワードプレースホルダーを含まないようになります。詳細については、「管理者としてのユーザーアカウントの作成」を参照してください。 -
SDK ベースのSignUp オペレーションの場合、ユーザーはサインアップ時にパスワードを入力する必要はありません。マネージドログインとホストされた UI では、パスワードなしの認証が許可されている場合でも、サインアップページでパスワードが必要です。詳細については、「ユーザーアカウントのサインアップと確認」を参照してください。
-
CSV ファイルからインポートされたユーザーは、使用可能なパスワードレスサインインオプションの E メールアドレスまたは電話番号が属性に含まれている場合、パスワードリセットなしでパスワードレスオプションですぐにサインインできます。詳細については、「CSV ファイルからユーザープールへのユーザーのインポート」を参照してください。
-
パスワードなしの認証では、ユーザー移行の Lambda トリガーは呼び出されません。
-
ワンタイムパスワード (OTP) を第 1 要素としてサインインするユーザーは、多要素認証 (MFA) 要素をセッションに追加できません。ユーザー検証を伴うパスキーは、
MULTI_FACTOR_WITH_USER_VERIFICATIONを使用して設定すると、MFA 要件を満たすことができます。
-
- パスキーに依拠しているパーティの URL をパブリックサフィックスリストに含めることはできない
-
所有しているドメイン名 (
www.example.comなど) を、パスキー設定で依拠しているパーティ (RP) の ID として使用できます。この設定は、所有しているドメインで実行するカスタム構築アプリケーションをサポートすることを目的としています。パブリックサフィックスリスト(PSL) には、保護された高レベルのドメインが含まれています。PSL のドメインに RP URL を設定しようとすると、Amazon Cognito はエラーを返します。
認証フローセッションの持続期間
ユーザープールの機能に応じて、アプリケーションが Amazon Cognito からトークンを取得するRespondToAuthChallenge前に、 InitiateAuthおよび に対するいくつかのチャレンジに応答できます。Amazon Cognito は、各リクエストへの応答にセッション文字列を含めます。API リクエストを 1 つの認証フローにまとめるには、前のリクエストに対する応答のセッション文字列を、後続の各リクエストに含めます。デフォルトでは、セッション文字列が期限切れになる前に、ユーザーに各チャレンジを完了するまでに 3 分間が与えられます。この期間を調整するには、アプリケーションクライアントの認証フローセッション持続期間を変更します。次の手順では、アプリクライアントの構成で、この設定を変更する方法について説明します。
注記
[認証フローセッションの持続期間] の設定は、Amazon Cognito ユーザープール API による認証に適用されます。マネージドログインでは、エンドユーザーが一時パスワードを使用して初めてサインインする際に、多要素認証のセッション時間が 3 分、強制パスワード変更のセッション時間が 8 分に設定されます。
アプリクライアントの詳細については、「アプリケーションクライアントによるアプリケーション固有の設定」を参照してください。
サインイン試行の失敗時におけるロックアウト動作
ユーザーのパスワードによるサインイン試行が 5 回失敗すると、認証されていない API オペレーションと IAM で認可された API オペレーションのどちらでリクエストしたかにかかわらず、Amazon Cognito はユーザーを 1 秒間ロックアウトします。ロックアウトの期間は、試行が 1 回失敗するたびに 2 倍になり、最大で約 15 分になります。
ロックアウト期間中に試行すると Password attempts exceeded 例外が生成され、その後のロックアウト期間の長さには影響しません。サインイン試行の累積失敗回数が n (Password attempts exceeded 例外を含まない) に達すると、Amazon Cognito はユーザーを 2^(n-5) 秒間ロックアウトします。ロックアウトを n=0 初期状態にリセットするには、ユーザーは、ロックアウト期間後にサインインに成功するか、連続 15 分間、サインイン試行を開始してはなりません。この動作は変更される可能性があります。この動作は、パスワードベースの認証も実行しない限り、カスタムチャレンジに適用されません。