Amazon Cognito でユーザーパスワードを回復する方法を教えてください。

所要時間1分
0

Amazon Cognito でユーザーパスワードを回復したいと考えています。

解決方法

Amazon Cognito でユーザーパスワードを回復するには、次の 2 つの方法があります。

  • 確認済みの E メールアドレスまたは電話番号を通じて。
  • 管理者によりユーザーパスワードを通じて。

E メールアドレスまたは電話番号の検証

ForgotPassword API コマンドを使用して、ユーザーパスワードを回復できます。ForgotPassword API コマンドは、検証済みの E メールアドレスまたは確認済みの電話番号にリカバリーコードを送信します。リカバリーコードは 1 時間有効です。次に、ConfirmForgotPassword API コマンドを使用して、パスワードをリセットする確認コードを入力します。

注: AWS コマンドラインインターフェイス (AWS CLI) のコマンド実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

AWS CLI コマンド:

ForgotPassword

aws cognito-idp forgot-password --client-id 38fjsnc484p94kpqsnet7mpld0 --username jane@example.com

出力:

{
  "CodeDeliveryDetails": {
    "Destination": "j***@e***.com",
    "DeliveryMedium": "EMAIL",
    "AttributeName": "email"
  }
}

ConfirmForgotPassword

aws cognito-idp confirm-forgot-password --client-id 3n4b5urk1ft4fl3mg5e62d9ado --username=diego@example.com --password PASSWORD --confirmation-code CONF_CODE

注: 次の要件の両方を満たす場合は、CLI コマンドで --secret-hash を渡す必要があります。

  • AWS CLI コマンドに --client-id がパラメータとして含まれている。
  • アプリケーションクライアントはシークレットで設定されている。

アプリケーションクライアントのシークレットハッシュを計算するには、「[Amazon Cognito ユーザープール API で発生する「クライアント

のシークレットハッシュを確認できません」エラーをトラブルシューティングする方法を教えてください](https://repost.aws/ja/knowledge-center/cognito-unable-to-verify-secret-hash) 」を参照してください。

管理者リセット

注: 管理者でない場合は、管理者に連絡して次の操作を完了してください。

AdminResetUserPassword API コマンドを呼び出すと、現在のパスワードは無効になるため、変更する必要があります。API コマンドが呼び出された後にユーザーがログインしようとすると、アプリケーションは次の処理を行います。

  • PasswordResetRequiredException を元に戻します。
  • パスワードを忘れた場合のフローでパスワードをリセットするようユーザーに指示します。

さらに、API を呼び出すと、次の場合にパスワードを変更するためのコードが記載されたメッセージがユーザーに送信されます。

  • ユーザープールには電話認証が設定されている場合。
  • ユーザーの確認済みの電話番号または E メールアドレスが存在している場合。

AWS CLI コマンド:

AdminResetUserPassword

aws cognito-idp admin-reset-user-password --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com

ConfirmForgotPassword

aws cognito-idp confirm-forgot-password --client-id 3n4b5urk1ft4fl3mg5e62d9ado --username diego@example.com --password PASSWORD --confirmation-code CONF_CODE

AdminSetUserPassword

管理者は、AdminSetUserPassword API コマンドを使用して、ユーザープール内のユーザーのパスワードを呼び出すこともできます。パスワードは一時的なものでも永続的なものでもかまいません。一時的な場合、ユーザーステータスは FORCE_CHANGE_PASSWORD 状態になります。サインインすると、InitiateAuth/AdminInitiateAuth レスポンスに NEW_PASSWORD_REQUIRED チャレンジが含まれます。有効期限が切れる前にサインインしないと、サインインできないため、パスワードをリセットする必要があります。新しいパスワードを設定した後、またはパスワードが永続的な場合は、ユーザーステータスは CONFIRMED に設定されます。

aws cognito-idp admin-set-user-password --user-pool-id us-west-2_aaaaaaaaa --username diego@example.com --password Hello@123 --permanent

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ