TOTP소프트웨어 토큰 MFA - Amazon Cognito

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

TOTP소프트웨어 토큰 MFA

사용자 MFA 풀에 TOTP 소프트웨어 토큰을 설정하면 사용자가 사용자 이름과 암호로 로그인한 다음 a를 사용하여 인증을 완료합니다. TOTP 사용자가 사용자 이름과 암호를 설정하고 확인한 후 에 대한 TOTP MFA 소프트웨어 토큰을 활성화할 수 있습니다. 앱이 Amazon Cognito 호스팅 UI를 사용하여 사용자를 로그인하는 경우 사용자는 사용자 이름과 비밀번호를 제출한 다음 추가 로그인 페이지에 TOTP 비밀번호를 제출합니다.

Amazon Cognito 콘솔에서 사용자 풀을 TOTP MFA 활성화하거나 Amazon Cognito 작업을 사용할 수 있습니다. API 사용자 풀 수준에서 SetUserPoolMfaConfig호출하여 구성 MFA 및 활성화할 수 있습니다. TOTP MFA

참고

사용자 MFA 풀에 대한 TOTP 소프트웨어 토큰을 활성화하지 않은 경우 Amazon Cognito는 토큰을 사용하여 사용자를 연결하거나 확인할 수 없습니다. 이 경우 사용자는 SoftwareTokenMFANotFoundException 설명과 함께 Software Token MFA has not been enabled by the userPool 예외를 수신합니다. 나중에 사용자 MFA 풀용 소프트웨어 토큰을 비활성화하는 경우 이전에 토큰을 연결하고 확인한 사용자가 계속해서 해당 TOTP 토큰을 사용할 수 있습니다. MFA

사용자 구성은 TOTP 사용자가 일회용 암호를 입력하여 유효성을 검사하는 비밀 코드를 받는 다단계 프로세스입니다. 다음으로, 사용자를 TOTP MFA 위해 활성화하거나 사용자가 선호하는 TOTP MFA 방법으로 설정할 수 있습니다.

TOTPMFA요구하도록 사용자 풀을 구성하고 사용자가 호스팅된 UI에서 앱에 가입하면 Amazon Cognito는 사용자 프로세스를 자동화합니다. Amazon Cognito는 사용자에게 MFA 방법을 선택하라는 메시지를 표시하고 인증 앱을 설정하기 위한 QR 코드를 표시하고 등록을 확인합니다. MFA 사용자가 SMS 및 TOTP MFA 중에서 선택할 수 있도록 허용한 사용자 풀에서 Amazon Cognito는 사용자에게 방법 선택권도 제공합니다. 호스팅 UI 가입 경험에 대한 자세한 내용은 Amazon Cognito 호스팅 UI에서 새 계정에 가입하는 방법 단원을 참조하세요.

중요

사용자 ACL 풀과 연결된 AWS WAF 웹이 있고 ACL 웹의 규칙에 a가 표시되면 호스팅된 CAPTCHA UI 등록에서 복구할 수 없는 오류가 발생할 수 있습니다. TOTP CAPTCHA작업이 있고 호스팅된 TOTP UI에는 영향을 주지 않는 규칙을 만들려면 을 참조하십시오. 호스팅된 AWS WAF UI를 ACL 위한 웹 구성 TOTP MFA AWS WAF 웹 ACLs 및 Amazon Cognito에 대한 자세한 내용은 을 참조하십시오. AWS WAF ACL웹을 사용자 풀과 연결

Amazon Cognito를 사용하는 사용자 지정 TOTP MFA UI에서 API 구현하려면 을 참조하십시오. Amazon Cognito 사용자 풀에서 사용자를 MFA 위한 구성 API

사용자 MFA 풀에 추가하려면 을 참조하십시오사용자 MFA 풀에 추가.

TOTPMFA고려 사항 및 제한

  1. Amazon Cognito는 코드를 생성하는 인증 앱을 MFA 통해 소프트웨어 토큰을 지원합니다. TOTP Amazon Cognito는 하드웨어 기반을 지원하지 않습니다. MFA

  2. 사용자 풀에서 아직 구성하지 않은 사용자를 TOTP 요구하는 경우, 사용자는 앱이 사용자를 대신하여 활성화하는 데 사용할 수 있는 일회용 액세스 토큰을 받습니다. TOTP MFA 사용자가 추가 TOTP 로그인 요소를 등록할 때까지 이후의 로그인 시도는 실패합니다.

    • SignUpAPI오퍼레이션을 사용하거나 호스팅된 UI를 통해 사용자 풀에 가입한 사용자는 가입을 완료할 때 일회용 토큰을 받습니다.

    • 사용자를 생성하고 해당 사용자가 자신의 초기 암호를 설정하면 Amazon Cognito가 호스팅 UI에서 해당 사용자에게 일회성 토큰을 발행합니다. 사용자에 대한 영구 암호를 설정하면 사용자가 처음 로그인할 때 Amazon Cognito가 일회성 토큰을 발급합니다.

    • Amazon Cognito는 또는 작업으로 로그인한 관리자 생성 사용자에게 일회용 토큰을 발행하지 않습니다. InitiateAuthAdminInitiateAuthAPI 사용자가 초기 암호 설정 챌린지에 성공하거나 사용자에 대한 영구 암호를 설정한 경우 Amazon Cognito는 즉시 사용자에게 설정을 요청합니다. MFA

  3. 필요한 사용자 풀의 사용자가 MFA 이미 일회용 액세스 토큰을 받았지만 TOTP MFA 설정하지 않은 경우 사용자는 설정을 마칠 때까지 호스팅된 UI로 로그인할 수 없습니다. MFA 액세스 토큰 대신 MFA_SETUP 챌린지 InitiateAuth또는 AdminInitiateAuthAssociateSoftwareToken요청에 session 대한 응답 값을 사용할 수 있습니다.

  4. 사용자가 TOTP 설정해 놓으면 나중에 사용자 풀에 TOTP 대해 MFA 비활성화하더라도 이를 사용할 수 있습니다.

  5. Amazon Cognito는 - 해시 함수를 사용하여 코드를 생성하는 인증 TOTPs 앱으로부터만 수락합니다HMAC. SHA1 SHA-256 해싱으로 생성된 코드는 오류를 반환합니다. Code mismatch

Amazon Cognito 사용자 풀에서 사용자를 MFA 위한 구성 API

사용자가 처음 로그인하면 앱은 일회용 액세스 토큰을 사용하여 TOTP 개인 키를 생성하고 텍스트 또는 QR 코드 형식으로 사용자에게 제공합니다. 사용자가 인증 앱을 구성하고 후속 로그인 시도를 위한 정보를 제공합니다. TOTP 앱 또는 호스팅된 UI는 MFA 챌린지 TOTP 응답으로 Amazon Cognito에 이를 제공합니다.

TOTP소프트웨어 토큰을 연결합니다.

TOTP토큰을 연결하려면 사용자에게 일회용 비밀번호로 확인해야 하는 비밀 코드를 보내십시오. 토큰 연결에는 세 가지 단계가 필요합니다.

  1. 사용자가 TOTP 소프트웨어 토큰을 MFA 선택하면 해당 사용자 계정에 대해 고유하게 생성된 공유 암호 키 코드를 AssociateSoftwareToken반환하도록 호출하십시오. 액세스 토큰 또는 세션 AssociateSoftwareToken 문자열을 사용하여 권한을 부여할 수 있습니다.

  2. 앱은 사용자에게 프라이빗 키 또는 프라이빗 키에서 생성한 QR 코드를 제공합니다. 사용자는 Google Authenticator와 같은 TOTP 생성 앱에 키를 입력해야 합니다. libqrencode를 사용하여 QR 코드를 생성할 수 있습니다.

  3. 사용자가 키를 입력하거나 Google Authenticator와 같은 인증자 앱에 QR 코드를 스캔하면 앱에서 코드 생성을 시작합니다.

토큰을 확인하세요. TOTP

다음으로 TOTP 토큰을 확인합니다. 다음과 같이 사용자에게 샘플 코드를 요청하고 Amazon Cognito 서비스에 제공하여 사용자가 TOTP 코드를 성공적으로 생성하고 있는지 확인합니다.

  1. 앱에서 사용자에게 인증자 앱을 올바르게 설정했음을 보여주는 코드를 입력하라는 메시지를 표시합니다.

  2. 사용자의 인증자 앱에서 임시 암호를 표시합니다. 인증자 앱은 이 암호를 사용자에게 제공된 비밀 키를 기반으로 생성합니다.

  3. 사용자가 자신의 임시 암호를 입력합니다. 앱은 요청을 통해 Amazon Cognito에 임시 비밀번호를 전달합니다. VerifySoftwareToken API

  4. Amazon Cognito는 사용자와 관련된 비밀 키를 보관하고 있으며, 이를 생성하여 사용자가 제공한 키와 비교합니다. TOTP 일치하는 경우 VerifySoftwareToken에서 SUCCESS 응답을 반환합니다.

  5. Amazon Cognito는 TOTP 팩터를 사용자와 연결합니다.

  6. VerifySoftwareToken 작업에서 ERROR 응답을 반환하는 경우 사용자의 클록이 정확하고 최대 재시도 횟수를 초과하지 않았는지 확인합니다. Amazon Cognito는 약간의 클럭 스큐를 감안하여 시도 전후 30초 이내의 TOTP 토큰을 수락합니다. 문제를 해결했으면 VerifySoftwareToken 작업을 다시 시도해 보십시오.

로 로그인하세요 TOTP MFA

이 시점에서 사용자는 시간 기반 일회용 암호를 사용하여 로그인합니다. 프로세스는 다음과 같습니다.

  1. 사용자는 사용자 이름과 암호를 입력하여 클라이언트 앱에 로그인합니다.

  2. TOTPMFA챌린지가 호출되고 앱에서 사용자에게 임시 비밀번호를 입력하라는 메시지가 표시됩니다.

  3. 사용자는 관련 TOTP 생성 앱을 통해 임시 비밀번호를 받습니다.

  4. 사용자가 클라이언트 앱에 TOTP 코드를 입력합니다. 앱이 이를 확인하라고 Amazon Cognito 서비스에 알립니다. 새 TOTP 인증 챌린지에 대한 응답을 받으려면 로그인할 때마다 를 RespondToAuthChallenge호출해야 합니다.

  5. Amazon Cognito에서 토큰을 확인하면 로그인이 성공하고 사용자가 인증 흐름을 계속합니다.

토큰을 제거합니다. TOTP

마지막으로, 앱은 사용자가 TOTP 구성을 비활성화할 수 있도록 허용해야 합니다. 현재는 사용자의 TOTP 소프트웨어 토큰을 삭제할 수 없습니다. 사용자의 소프트웨어 토큰을 교체하려면 새 소프트웨어 토큰을 연결하고 확인하세요. 사용자를 비활성화하려면 TOTP MFA 를 SetUserMFAPreference호출하여 사용자를 no MFA 또는 SMS MFA only로 수정하십시오.

  1. MFA재설정하려는 사용자를 위한 인터페이스를 앱에 만드세요. 이 인터페이스에서 사용자에게 암호를 입력하라는 메시지를 표시합니다.

  2. Amazon Cognito에서 TOTP MFA 챌린지를 반환하는 경우 사용자 MFA 기본 설정을 로 업데이트하십시오. SetUserMFAPreference

  3. 앱에서 사용자가 비활성화했음을 MFA 알리고 다시 로그인하라는 메시지를 표시합니다.

호스팅된 AWS WAF UI를 ACL 위한 웹 구성 TOTP MFA

사용자 ACL 풀과 연결된 AWS WAF 웹이 있고 ACL 웹의 규칙에 a가 표시되면 호스팅된 CAPTCHA UI 등록에서 복구할 수 없는 오류가 발생할 수 있습니다. TOTP AWS WAF CAPTCHA규칙은 TOTP MFA 이러한 방식으로 호스팅된 UI에만 영향을 줍니다. SMSMFA영향을 받지 않습니다.

Amazon Cognito는 CAPTCHA 규칙에서 사용자가 설정을 TOTP MFA 완료할 수 없는 경우 다음 오류를 표시합니다.

WAF보안 문자로 인해 요청이 허용되지 않습니다.

이 오류는 사용자 풀이 AWS WAF 백그라운드에서 CAPTCHA VerifySoftwareTokenAPI제출하는 AssociateSoftwareToken요청에 대한 응답 메시지를 표시할 때 발생합니다. CAPTCHA작업이 있고 호스팅된 TOTP UI에는 영향을 주지 않는 규칙을 만들려면 규칙의 AssociateSoftwareToken VerifySoftwareToken CAPTCHA 작업에서 x-amzn-cognito-operation-name 헤더 값을 제외하세요.

다음 스크린샷은 x-amzn-cognito-operation-name 헤더 값이 AssociateSoftwareToken 또는 이 아닌 모든 요청에 CAPTCHA 작업을 적용하는 예제 AWS WAF 규칙을 보여줍니다VerifySoftwareToken.

x-amzn-cognito-operation-name헤더 값이 AssociateSoftwareToken 또는 이 아닌 모든 요청에 CAPTCHA 작업을 적용하는 AWS WAF 규칙의 VerifySoftwareToken 스크린샷입니다.

AWS WAF 웹 ACLs 및 Amazon Cognito에 대한 자세한 내용은 을 참조하십시오. AWS WAF ACL웹을 사용자 풀과 연결