Cognito ユーザープールにインポートしたユーザーでパスワードをリセットする方法を教えてください
困っていた内容
Cognito ユーザープールにユーザーをインポートしました。
インポートしたユーザーでマネージドログインの UI にアクセスしたところ、パスワードのリセットボタンが表示されませんでした。
Cognito ユーザープールにインポートしたユーザーでパスワードをリセットする方法を教えてください。
どう対応すればいいの?
アプリケーションクライアントの認証フローで選択ベースのサインイン (ALLOW_USER_AUTH) を無効化する方法をお試しください。
アプリケーションクライアントで選択ベースのサインインが有効化されている場合、マネージドログインの UI ではユーザー名を入力した後にユーザーの設定に応じてパスワード認証の画面やワンタイムパスワードの入力を求める画面に遷移します。
そのため、ユーザー名を入力する画面ではパスワードのリセットボタンが表示されません。
やってみた
Cognito ユーザープールを作成し、以下のような CSV ファイルでユーザーをインポートしました。
profile,address,birthdate,gender,preferred_username,updated_at,website,picture,phone_number,phone_number_verified,zoneinfo,locale,email,email_verified,given_name,family_name,middle_name,name,nickname,cognito:mfa_enabled,cognito:username
,,,,,,,,,,,,my-email-address,TRUE,,,,,,FALSE,my-email-address
なお、アプリケーションクライアントはユーザープール作成時に自動的に作成されています。
自動作成された時点では以下の 3 つの認証フローが有効になっています。
- 選択ベースのサインイン
- セキュアリモートパスワード (SRP)
- 既存の認証済みセッションからユーザートークンを取得
ユーザーのインポート成功後、ユーザーの確認ステータスは「リセットが必要です」になっており、パスワードのリセットが必要な状況です。
この状態でマネージドログインの UI でサインインを試みてもエラーが発生し、パスワードのリセットができません。
ここで、アプリケーションクライアントの選択ベースのサインインを無効化します。
この状態で再度マネージドログインの UI でサインインを試みると、パスワードの入力欄やパスワードのリセットボタンを表示されました。
この状態であればパスワードのリセットが可能なため、パスワードのリセットボタンからパスワードを設定することができます。