Share Your AWS re:Post Experience - Quick 3 Question Survey
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey.
Amazon Cognito ユーザープールで TOTP 多要素認証を有効にする方法を教えてください。
アプリのユーザーに対して多要素認証 (MFA) を有効にするために、Amazon Cognito ユーザープールを使用する時間ベースのワンタイムパスワード (TOTP) トークンを使用したいです。
簡単な説明
アプリユーザーに対し TOTP MFA を有効にするには、ユーザープールで TOTP ソフトウェアトークンの MFA を設定します。
重要: TOTP トークンを設定する前に、次の要件を確認してください。
- MFA をユーザープールに追加する必要があります。
- TOTP トークンは、ユーザーがアプリへのログインを試行済みではなく、ユーザーが認証済みではない場合はユーザーに関連付けることはできません。
- MFA はユーザープール内のフェデレーションユーザーをサポートしていません。
TOTP MFA の設定に、AWS コマンドラインインターフェイス (AWS CLI) および Google Authenticator を使用する方法の例を次に示します。
解決策
注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI でのエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
-
MFA トークンジェネレーターのセットアップを開始するには、次の AWS CLI コマンド associate-software-token を実行します。
aws cognito-idp associate-software-token --access-token eyJraWQiO........ua5Pq3NaA { "SecretCode": "AETQ6XXMDFYMEPFQQ7FD4HKXXXXAOY3MBXIVRBLRXX3SXLSHHWOA" }
-
Google Authenticator のホームページを開き、[始める] を選択します。
-
[セットアップキーを入力] を選択します。
-
[アカウント名] にアカウント名を入力します。
注: アカウント名には、任意の文字列識別子を使用できます。 -
[キー] のテキスト入力には、ステップ 1 で実行した AssociateSoftwareToken コマンドから生成されたシークレットコードをコピーして貼り付けます。
-
[キーのタイプ] を選択し、[時間ベース] を選択します。
-
画面と次のコードに表示される、時間ベースのパスワードを使用するソフトウェアトークンを確認します。
aws cognito-idp verify-software-token --access-token eyJraWQiO........ua5Pq3NaA --user-code 269194 --friendly-device-name ExampleName { "Status": "SUCCESS" }
-
ユーザーの MFA 設定を TOTP MFA に設定するには、AWS CLI コマンド set-user-mfa-preference またはadmin-set-user-mfa-preference を実行します。
set-user-mfa-preference コマンドの例aws cognito-idp set-user-mfa-preference --software-token-mfa-settings Enabled=true,PreferredMfa=true --access-token eyJraWQiO........ua5Pq3NaA
注: このコマンドを実行すると、ユーザーが独自の MFA 設定を設定できます。
admin-set-user-mfa-preference コマンドの例aws cognito-idp admin-set-user-mfa-preference --software-token-mfa-settings Enabled=true,PreferredMfa=true --username ExampleName --user-pool-id us-east-1_123456789
注: このコマンドを実行すると、管理者がユーザーの MFA 設定を設定できます。
-
ユーザープールのアプリクライアントで ALLOW_ADMIN_USER_PASSWORD_AUTH フローを有効にするには、Amazon Cognito コンソールを開きます。
-
[ユーザープールの管理] を選択します。
-
アプリクライアントを選択し、[詳細を表示] を選択します。
-
[認証用に管理 API のユーザー名とパスワード認証を有効にする (ALLOW_ADMIN_USER_PASSWORD_AUTH)] を選択します。
-
[アプリクライアントの変更を保存] を選択します。
-
セットアップをテストするには、次のいずれかの方法でユーザーを認証します。
Amazon Cognito ホステッド UI
InitiateAuth、AdminInitiateAuth、RespondToAuthChallenge API コール (AWS CLI 使用)
注: いずれの方法でも、ユーザーの認証にはユーザーのパスワード、ユーザー名、ソフトウェア MFA コードが必要です。
admin-initiate-auth コマンドの例
aws cognito-idp admin-initiate-auth --user-pool-id us-east-1_123456789 --client-id 3n4b5urk1ft4fl3mg5e62d9ado --auth-flow ADMIN_USER_PASSWORD_AUTH --auth-parameters USERNAME=ExampleName,PASSWORD=P@ssw0rd
注: 変数 user-pool-id、client-id、username、password は、実際の情報に置き換えます。
admin-initiate-auth コマンドの出力例
{ "ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeParameters": { "FRIENDLY_DEVICE_NAME": "ExampleDevice", "USER_ID_FOR_SRP": "ExampleName" }, "Session": "Xxz6iadwuWJGN4Z7f4ul5p50IHUqITquoaNxxyDvep.......3A6GokZWKeQ6gkFW4Pgv" }
admin-respond-to-auth-challenge コマンドの例
aws cognito-idp admin-respond-to-auth-challenge --user-pool-id us-east-1_123456789 --client-id 3n4b5urk1ft4fl3mg5e62d9ado --challenge-name SOFTWARE_TOKEN_MFA --challenge-responses USERNAME=ExampleName,SOFTWARE_TOKEN_MFA_CODE=123456 --session Xxz6iadwuWJGN4Z7f4ul5p50IHUqITquoaNxxyDvep.......3A6GokZWKeQ6gkFW4Pgv
注: 変数 client-id、username、software_token_MFA_Code は、実際の情報に置き換えます。
admin-respond-to-auth-challenge コマンドの出力例
{ "AuthenticationResult": { "ExpiresIn": 3600, "RefreshToken": "eyJjdHkiOiJKV1QiLCJlbmMi.......dlbjrtyizlLzZZ5fjjCgL__AVHEzYycjJs_h3i-ly_KixDNtz9VEC", "TokenType": "Bearer", "NewDeviceMetadata": { "DeviceKey": "us-east-1_28abrd7-10f7-9fc6-a931-3ede1c8ckd75", "DeviceGroupKey": "-Gqkj3brS" }, "IdToken": "eyJraWQiOiIzcFFSV29Pb........mNMbE_vvPkQYBuA9ackoER1aSABFGaKK4BpgPjMn7la_A", "AccessToken": "eyJraWQiOi...........qwvQq4awt63TyWw" }, "ChallengeParameters": {} }
関連情報

関連するコンテンツ
- 質問済み 2ヶ月前lg...
- 質問済み 1年前lg...
- 質問済み 2ヶ月前lg...
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前