Amazon Cognito ユーザープールの MFA エラーをトラブルシューティングする方法を教えてください。

所要時間2分
0

Amazon Cognito ユーザープールで解決しなければならない多要素認証 (MFA) エラーがあります。

簡単な説明

Amazon Cognito ユーザープールに MFA を設定するときに、複数のタイプのエラーが発生する可能性があります。MFA 用のショートメッセージサービス (SMS) メッセージを設定する場合は、次のセクションを確認してください: SMS をMFAMFAに設定する前のエラーと** SMS MFAMFAエラー**。MFA に時間ベースのワンタイムパスワード (TOTP) を設定する場合は、次のセクションを確認してください:: TOTP をセットアップする前に、MFA エラーと** TOTP MFA** エラーが発生します。

解像度

SMS をMFAに設定する前に

SMS を MFA ファクターとして設定する前に、SMS メッセージを初めて送信する追加の手順を実行する必要があります。詳細については、「Amazon Cognito ユーザープールで初めて SMSメッセージングを設定する」を参照してください

MFA を有効にして 2 番目の要素として SMS を選択すると、Amazon Cognito は未確認の電話番号に SMS メッセージを送信できます。ユーザーが SMS テキストメッセージの MFA 検証を完了すると、Amazon Cognito は電話の\ _number\ _verified 属性を** true **に設定します。

SMS MFA エラー

無効な SMS ロールアクセスポリシー例外

SMS 設定の AWS ID およびアクセス管理 (IAM) ロールには、Amazon 簡易通知サービス (Amazon SNS) を使用して公開する権限がありません。

このエラーを解決するには、必ず IAM ロールに** SNS: Publish** 権限を付与してください。また、サービスコントロールポリシー (SCP) が** SNS: Publish** アクションをブロックしていないことを確認してください。

無効な SMS ロールの信頼関係の例外

このエラーは、IAM ロールに Amazon Cognitoがロールを引き継ぐことができる有効な信頼関係がない場合に発生します。これは、** cognito-idp.amazonaws.com** が信頼されていない場合や、ロールポリシーの外部 ID がユーザープールの SMS 設定と一致しない場合に発生します。

このエラーを解決するには、IAM ロールの信頼ポリシーが正しく設定されていることを確認してください。詳細については、「Amazon Cognito ユーザープールで初めて SMSメッセージングを設定する」を参照してください

無効なパラメータ例外

このエラーは、Amazon Cognito が無効なパラメータを検出したときに発生します。

このエラーを解決するには、** SMS を MFA 用に設定するときに、必要な値がすべてSetUserPoolMfaConfig API の SMSMFAConfiguration** パラメーターに渡されていることを確認してください。

MFA に TOTP をセットアップする前に

Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-mfa-totp.html) ユーザープールに[ TOTP ソフトウェアトークン MFA を設定する場合、TOTP トークンを設定する前に MFA をユーザープールに追加してください。

ユーザーがすでに認証されていない限り、ユーザーがアプリケーションにサインインしようとするまで、TOTP トークンをユーザーに関連付けることはできません。

MFA はユーザープール内のフェデレーティッドユーザーをサポートしていません。

TOTP MFA エラー

NotAuthorizedException: アクセストークンには必要なスコープがありません

このエラーは、アクセストークンに必要な** aws.cognito.signin.user.admin** スコープが含まれていない場合に発生します。AssociateSoftwareToken API を呼び出すには、** aws.cognito.signin.user.admin** スコープが必要です。ユーザーが InitiateAuth API でサインインすると、スコープがアクセストークンに自動的に表示されます。ただし、ユーザーがホストされた UI を使用してサインインする場合は、** aws.cognito.signin.user.admin** スコープがアクセストークンに含まれていることを確認してください。

NotAuthorizedException: ユーザーのセッションが無効です。セッションは 1 回しか使用できません

このエラーは、ユーザーが同じセッションを複数回使用した場合に発生します。ユーザーがフローの途中でこのエラーを受け取った場合、アプリケーションはフローを最初から再開する必要があります。ユーザーが API を呼び出すときにセッション文字列を使用すると、そのセッションを再び使用することはできません。

NotAuthorizedException: ユーザーのセッションが無効です。セッションは期限切れです

このエラーは、セッションの有効期限が切れると発生します。セッションの有効時間はデフォルトで 3 分です。このエラーを解決するには、アプリクライアントの認証フローセッション時間設定を変更して、セッションの有効時間を 15 分に増やします。

CodeMismatchException: ユーザーのコードまたは認証状態が無効です

このエラーは、ユーザーの TOTP コードが有効でない場合や、ユーザーの状態が API の呼び出しと互換性がない場合に発生します。たとえば、ユーザーが** MFA\ _SETUP** という名前のチャレンジでRespondToAuthChallenge API を呼び出したのに、TOTP MFA を設定しなかった場合、 CodeMismatchException エラーが発生します。このエラーを解決するには、MFA を設定するときに API 呼び出しが正しい順序で行われるようにしてください。

このエラーは、ユーザーの TOTP コードが古すぎて Amazon Cognito が受け付けることができない場合にも発生します。このエラーを解決するには、ユーザーデバイスが実際の時刻と同期していることを確認してください。

無効なパラメータ例外: ユーザーには SOFTWARE\ _TOKEN\ _MFA を有効にする配信設定が設定されていません

このエラーは、TOTP MFA を設定していないときに API を呼び出して TOTP MFA を適用しようとしたときに発生します。このエラーを解決するには、SetUserMFAPreference API または AdminSetUserMfapReference API を使用するユーザーに TOTP を強制する前に、ユーザーに TOTP MFA を設定してください。

NotAuthorizedException: ユーザーのセッションが無効です

このエラーは、ユーザーが API を呼び出して、想定していたセッション文字列とは異なるセッション文字列を指定した場合に発生します。このエラーは、ユーザーが正しい順序で API 呼び出しを行っていない場合にも発生します。このエラーを解決するには、API 呼び出しを適切な順序で設定します。たとえば、応答でセッション文字列を受け取るには、ユーザーは最初にInitiateAuth API を呼び出します。エラーを防ぐには、次の API 呼び出しで、返されたセッション文字列がリクエストパラメータで使用されていることを確認してください。

EnableSoftwareTokenMFAException: コードミスマッチ

このエラーは、ユーザーが TOTP MFA 設定中に Amazon Cognito が期待する TOTP コードを提供しなかった場合に発生します。このエラーを解決するには、Amazon Cognito から提供されたシークレットコードを AssociateSoftwareToken API で検索し、オーセンティケータアプリケーションに保存します。また、ユーザーは認証アプリケーションから最新のTOTPコードを提供する必要があります。

SoftwareTokenMFANotFoundException: ソフトウェアトークン MFA がユーザープールによって有効化されていません

このエラーは、ユーザープールの TOTP MFA を有効にしなかった場合に発生します。このエラーを解決するには、Amazon Cognito で強制する前に TOTP MFA を設定してください。

関連情報

ユーザープールへの MFA の追加

SMS テキストメッセージ MFA

Amazon Cognito ネイティブ API でのユーザーの MFA の設定

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

関連するコンテンツ