Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
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": {} }
関連情報
- 言語
- 日本語

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