Amazon Cognito 사용자 풀에 대한 TOTP 다중 요소 인증을 사용하려면 어떻게 해야 합니까?
내 앱 사용자에 대해 다중 인증(MFA)을 활성화하려고 합니다. Amazon Cognito 사용자 풀을 사용하여 시간 기반 일회성 암호(TOTP) 토큰으로 이를 수행하려면 어떻게 해야 하나요?
간략한 설명
앱 사용자에 대해 TOTP MFA를 활성화하려면 사용자 풀에 대해 TOTP 소프트웨어 토큰 MFA를 설정합니다.
중요: TOTP 토큰을 구성하기 전에 다음 사항에 유의하세요.
- TOTP 토큰을 구성하기 전에 사용자 풀에 MFA를 추가해야 합니다.
- TOTP 토큰은 앱에 로그인을 시도할 때까지 또는 이미 인증되지 않은 경우 사용자와 연결할 수 없습니다.
- MFA는 사용자 풀의 페더레이션 사용자를 지원하지 않습니다.
다음은 AWS Command Line Interface(AWS CLI)와 Google Authenticator를 사용하여 TOTP MFA를 설정하는 방법의 예입니다.
해결 방법
참고: AWS CLI 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.
1. AWS CLI에서 다음 AssociateSoftwareToken 명령을 실행하여 MFA 토큰 생성기 설정을 시작합니다.
aws cognito-idp associate-software-token --access-token eyJraWQiO........ua5Pq3NaA { "SecretCode": "AETQ6XXMDFYMEPFQQ7FD4HKXXXXAOY3MBXIVRBLRXX3SXLSHHWOA" }
2. Google Authenticator 홈페이지를 열고 시작하기를 선택합니다.
3. [설정 키 입력(Enter a setup key)]을 선택합니다.
4. [계정 이름(Account name)]에 계정 이름을 입력합니다. 예를 들어, BobPhone이라고 입력합니다.
참고: 계정 이름은 임의의 문자열 식별자일 수 있습니다.
5. 1단계에서 실행 한 AssociateSoftwareToken 명령에서 생성된 비밀 코드를 복사하여 키 텍스트 입력에 붙여넣습니다.
6. [키 유형(Type of key)] 드롭다운 목록을 선택한 다음 [시간 기반(Time based)]을 선택합니다.
7. 화면 및 다음 코드에 나타나는 시간 기반 암호를 사용하여 소프트웨어 토큰을 확인합니다.
aws cognito-idp verify-software-token --access-token eyJraWQiO........ua5Pq3NaA --user-code 269194 --friendly-device-name BobPhone { "Status": "SUCCESS" }
8. AWS CLI에서 다음 명령 중 하나를 사용하여 사용자의 MFA 구성을 TOTP MFA로 구성합니다.
이 명령을 사용하면 사용자가 자신의 MFA 구성을 설정할 수 있습니다.
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 Bob --user-pool-id us-east-1_123456789
9. 다음 방법 중 하나로 사용자를 인증하여 설정을 테스트합니다.
AWS CLI의 InitiateAuth 또는 AdminInitiateAuth API 호출
참고: 두 방법 중 하나를 사용하여 사용자를 인증하려면 사용자의 암호, 사용자 이름 및 소프트웨어 MFA 코드를 반드시 가지고 있어야 합니다.
다음 예에서는 adminInitiateAuth 명령을 사용하여 사용자 인증을 테스트하는 방법을 보여줍니다.
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=Bob,PASSWORD=P@ssw0rd
중요: user-pool-id, client-id, username 및 password 변수를 사용자 자신의 정보로 바꾸세요. 또한 다음을 수행하여 사용자 풀 앱 클라이언트에 대해 ALLOW_ADMIN_USER_PASSWORD_AUTH 흐름을 활성화하도록 설정해야 합니다.
1. Amazon Cognito 콘솔을 엽니다.
2. [사용자 풀 관리]를 선택합니다.
3. 앱 클라이언트를 선택하고 [세부 정보 표시(Show details)]를 선택합니다.
4. [인증을 위해 관리자 API에 사용자 이름 암호 인증 사용(ALLOW_ADMIN_USER_PASSWORD_AUTH)(Enable username password auth for admin APIs for authentication (ALLOW_ADMIN_USER_PASSWORD_AUTH))]을 선택합니다.
5. **앱 클라이언트 변경 사항 저장(Save app client changes)**을 선택합니다.
자세한 내용은 관리자 인증 흐름을 참조하세요.
admin-initiate-auth 명령의 출력 예
{ "ChallengeName": "SOFTWARE_TOKEN_MFA", "ChallengeParameters": { "FRIENDLY_DEVICE_NAME": "BobPhone", "USER_ID_FOR_SRP": "Bob" }, "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=Bob,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": {} }
관련 콘텐츠
- 질문됨 6년 전lg...
- 질문됨 6년 전lg...
- 질문됨 13일 전lg...
- 질문됨 6년 전lg...
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 5달 전