Amazon Cognito 사용자 풀에 대한 TOTP 다중 인증을 활성화하려면 어떻게 해야 합니까?

3분 분량
0

앱 사용자에 대해 다중 인증(MFA)을 활성화하려고 합니다. Amazon Cognito 사용자 풀을 사용하는 시간 기반 일회용 암호(TOTP) 토큰으로 이 작업을 수행하려고 합니다.

간략한 설명

앱 사용자에 대한 TOTP MFA를 활성화하려면 사용자 풀에서 TOTP 소프트웨어 토큰 MFA를 설정하십시오.

중요: TOTP 토큰을 구성하기 전에 다음 요구 사항을 검토하십시오.

  • 사용자 풀에 MFA를 추가해야 합니다.
  • TOTP 토큰은 사용자가 앱에 로그인하려고 시도하거나 이미 인증되지 않은 한 사용자와 연결될 수 없습니다.
  • MFA는 사용자 풀의 페더레이션 사용자를 지원하지 않습니다.

다음은 AWS Command Line Interface(AWS CLI)와 Google Authenticator를 사용하여 TOTP MFA를 설정하는 방법을 보여주는 예시입니다.

해결 방법

참고: AWS CLI 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

  1. MFA 토큰 생성기 설정을 시작하려면 다음 associate-software-token AWS CLI 명령을 실행합니다.

    aws cognito-idp associate-software-token --access-token eyJraWQiO........ua5Pq3NaA
    {
        "SecretCode":
        "AETQ6XXMDFYMEPFQQ7FD4HKXXXXAOY3MBXIVRBLRXX3SXLSHHWOA"
    }
  2. Google Authenticator 홈페이지를 열고 Get started를 선택합니다.

  3. Enter a setup key를 선택합니다.

  4. Account name에 계정 이름을 입력합니다.
    참고: 계정 이름은 임의의 문자열 식별자일 수 있습니다.

  5. Your key 텍스트 입력의 경우 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 ExampleName
    {
        "Status": "SUCCESS"
    }
  8. 사용자의 MFA 구성을 TOTP MFA로 구성하려면 set-user-mfa-preference 또는 admin-set-user-mfa-preference AWS CLI 명령을 실행합니다.
    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 구성을 설정할 수 있습니다.

  9. 사용자 풀 앱 클라이언트에 대해 ALLOW_ADMIN_USER_PASSWORD_AUTH 흐름을 활성화하려면 Amazon Cognito 콘솔을 엽니다.

  10. 사용자 풀 관리를 선택합니다.

  11. 앱 클라이언트를 선택하고 세부 정보 보기를 선택합니다.

  12. **인증을 위해 관리자 API의 사용자 이름 암호 인증 활성화(ALLOW_ADMIN_USER_PASSWORD_AUTH)**를 선택합니다.

  13. 앱 클라이언트 변경 사항 저장을 선택합니다.

  14. 설정을 테스트하기 위해 다음 방법 중 하나로 사용자를 인증합니다.
    Amazon Cognito 호스팅 UI.
    AWS CLI의 InitiateAuth, AdminInitiateAuth 또는 RespondToAuthChallenge API 호출.
    참고: 두 방법 중 하나로 사용자를 인증하려면 사용자의 암호, 사용자 이름 및 소프트웨어 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, usernamepassword 변수를 사용자의 정보로 바꾸십시오.

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, usernamesoftware_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": {}
}

관련 정보

Amazon Cognito 사용자 풀 인증

AWS 공식
AWS 공식업데이트됨 한 달 전