기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
TOTP 소프트웨어 토큰 MFA
사용자 풀MFA에서 TOTP 소프트웨어 토큰을 설정하면 사용자가 사용자 이름과 암호로 로그인한 다음 TOTP를 사용하여 인증을 완료합니다. 사용자가 사용자 이름과 암호를 설정하고 확인한 후 에 대한 TOTP 소프트웨어 토큰을 활성화할 수 있습니다MFA. 앱이 Amazon Cognito 호스팅 UI를 사용하여 사용자에 로그인하는 경우 사용자는 사용자 이름과 암호를 제출한 다음 추가 로그인 페이지에 TOTP 암호를 제출합니다.
Amazon Cognito 콘솔에서 사용자 풀에 TOTP MFA 대해 를 활성화하거나 Amazon Cognito API 작업을 사용할 수 있습니다. 사용자 풀 수준에서 를 호출SetUserPoolMfaConfig하여 TOTP 를 구성MFA하고 활성화할 수 있습니다MFA.
참고
사용자 풀에 MFA 대해 TOTP 소프트웨어 토큰을 활성화하지 않은 경우 Amazon Cognito는 토큰을 사용하여 사용자를 연결하거나 확인할 수 없습니다. 이 경우 사용자는 SoftwareTokenMFANotFoundException
설명과 함께 Software Token MFA has not been enabled by the userPool
예외를 수신합니다. 나중에 사용자 풀에 MFA 대한 소프트웨어 토큰을 비활성화하면 이전에 TOTP 토큰을 연결하고 확인한 사용자가 에 계속 사용할 수 있습니다MFA.
사용자TOTP에 대한 의 구성은 사용자가 일회용 암호를 입력하여 검증하는 보안 암호 코드를 수신하는 다단계 프로세스입니다. 그런 다음 사용자에 TOTP MFA 대해 를 활성화하거나 사용자에게 선호하는 MFA 방법으로 TOTP를 설정할 수 있습니다.
가 요구하도록 사용자 풀을 구성TOTPMFA하고 사용자가 호스팅 UI에서 앱에 가입하면 Amazon Cognito가 사용자 프로세스를 자동화합니다. Amazon Cognito는 사용자에게 MFA 메서드를 선택하라는 메시지를 표시하고, 인증자 앱을 설정할 QR 코드를 표시하고, MFA 등록을 확인합니다. 사용자가 SMS 및 중에서 선택할 수 있도록 허용한 사용자 풀에서 TOTP MFA Amazon Cognito는 사용자에게 방법 선택도 제공합니다. 호스팅 UI 가입 경험에 대한 자세한 내용은 새 사용자 프로필에 가입하는 방법 단원을 참조하세요.
중요
사용자 풀과 ACL 연결된 AWS WAF 웹이 있고 웹의 규칙이 를 ACL 표시하면 호스팅 UI TOTP 등록에서 복구할 수 없는 오류가 발생할 CAPTCHA수 있습니다. CAPTCHA 작업이 있고 호스팅 UI에 영향을 주지 않는 규칙을 생성하려면 섹션을 TOTP참조하세요호스팅 UIACL용 AWS WAF 웹 구성 TOTP MFA. AWS WAF 웹 ACLs 및 Amazon Cognito 대한 자세한 내용은 섹션을 참조하세요AWS WAF 웹을 사용자 풀ACL과 연결.
Amazon CognitoAPI를 사용하는 사용자 지정 UITOTPMFA에서 를 구현하려면 섹션을 참조하세요Amazon Cognito 사용자 풀의 사용자에 MFA 대한 구성 API.
사용자 풀MFA에 를 추가하려면 섹션을 참조하세요사용자 풀MFA에 추가.
TOTP MFA 고려 사항 및 제한 사항
-
Amazon Cognito는 TOTP 코드를 생성하는 인증 앱을 MFA 통해 소프트웨어 토큰을 지원합니다. Amazon Cognito는 하드웨어 기반 를 지원하지 않습니다MFA.
-
사용자 풀TOTP에 구성하지 않은 사용자에게 가 필요한 경우 사용자는 앱이 사용자를 TOTP MFA 위해 활성화하는 데 사용할 수 있는 일회성 액세스 토큰을 받게 됩니다. 후속 로그인 시도는 사용자가 추가 로그인 TOTP 인수를 등록할 때까지 실패합니다.
-
SignUp
API 작업을 통해 또는 호스팅 UI를 통해 사용자 풀에 가입하는 사용자는 사용자가 가입을 완료하면 일회성 토큰을 받습니다. -
사용자를 생성하고 해당 사용자가 자신의 초기 암호를 설정하면 Amazon Cognito가 호스팅 UI에서 해당 사용자에게 일회성 토큰을 발행합니다. 사용자에 대한 영구 암호를 설정하면 사용자가 처음 로그인할 때 Amazon Cognito가 일회성 토큰을 발급합니다.
-
Amazon Cognito는 InitiateAuth 또는 AdminInitiateAuth API 작업으로 로그인하는 관리자 생성 사용자에게 일회성 토큰을 발급하지 않습니다. 사용자가 초기 암호를 설정하라는 챌린지에 성공하거나 사용자의 영구 암호를 설정한 경우 Amazon Cognito는 즉시 사용자에게 를 설정하도록 요청합니다MFA.
-
-
가 필요한 사용자 풀의 사용자가 MFA 이미 일회성 액세스 토큰을 받았지만 TOTP 를 설정하지 않은 경우 MFA사용자는 를 설정할 때까지 호스팅 UI로 로그인할 수 없습니다MFA. 액세스 토큰 대신
MFA_SETUP
챌린지에서 요청으로 InitiateAuth 또는 AssociateSoftwareToken 요청에 대한session
응답 값을 사용할 수 AdminInitiateAuth 있습니다. -
사용자가 를 설정한 경우 나중에 사용자 풀에 대해 비활성화MFA하더라도 에 TOTP 대해 사용할 TOTP수 있습니다.
-
Amazon Cognito는 HMAC-SHA1 해시 함수를 사용하여 코드를 생성하는 TOTPs 인증자 앱에서만 수락합니다. SHA-256 해싱으로 생성된 코드는
Code mismatch
오류를 반환합니다.
Amazon Cognito 사용자 풀의 사용자에 MFA 대한 구성 API
사용자가 처음 로그인하면 앱은 일회용 액세스 토큰을 사용하여 TOTP 프라이빗 키를 생성하고 텍스트 또는 QR 코드 형식으로 사용자에게 제공합니다. 사용자가 인증자 앱을 구성하고 후속 로그인 시도를 TOTP 위해 를 제공합니다. 앱 또는 호스팅 UI는 MFA 챌린지 응답TOTP에서 Amazon Cognito에 를 제공합니다.
TOTP 소프트웨어 토큰 연결
TOTP 토큰을 연결하려면 일회용 암호로 확인해야 하는 보안 암호 코드를 사용자에게 보냅니다. 토큰 연결에는 세 가지 단계가 필요합니다.
-
사용자가 TOTP 소프트웨어 토큰 을 선택하면 를 MFA호출AssociateSoftwareToken하여 사용자 계정에 대해 생성된 고유한 공유 보안 암호 키 코드를 반환합니다. 액세스 토큰 또는 세션 문자열을 AssociateSoftwareToken 사용하여 권한을 부여할 수 있습니다.
-
앱은 사용자에게 프라이빗 키 또는 프라이빗 키에서 생성한 QR 코드를 제공합니다. 사용자는 Google Authenticator와 같은 생성 TOTP앱에 키를 입력해야 합니다. libqrencode
를 사용하여 QR 코드를 생성할 수 있습니다. -
사용자가 키를 입력하거나 Google Authenticator와 같은 인증자 앱에 QR 코드를 스캔하면 앱에서 코드 생성을 시작합니다.
TOTP 토큰 확인
그런 다음 TOTP 토큰을 확인합니다. 다음과 같이 사용자에게 샘플 코드를 요청하고 Amazon Cognito 서비스에 제공하여 사용자가 TOTP 코드를 성공적으로 생성하고 있는지 확인합니다.
-
앱에서 사용자에게 인증자 앱을 올바르게 설정했음을 보여주는 코드를 입력하라는 메시지를 표시합니다.
-
사용자의 인증자 앱에서 임시 암호를 표시합니다. 인증자 앱은 이 암호를 사용자에게 제공된 비밀 키를 기반으로 생성합니다.
-
사용자가 자신의 임시 암호를 입력합니다. 앱은
VerifySoftwareToken
API 요청 시 Amazon Cognito에 임시 암호를 전달합니다. -
Amazon Cognito는 사용자와 연결된 보안 암호 키를 유지했으며, 를 생성하고 이를 사용자가 제공한 키TOTP와 비교합니다. 일치하는 경우
VerifySoftwareToken
에서SUCCESS
응답을 반환합니다. -
Amazon Cognito는 TOTP 팩터를 사용자와 연결합니다.
-
VerifySoftwareToken
작업에서ERROR
응답을 반환하는 경우 사용자의 클록이 정확하고 최대 재시도 횟수를 초과하지 않았는지 확인합니다. Amazon Cognito는 마이너 클럭 왜곡을 설명하기 위해 시도 전후 30초 이내에 있는 TOTP 토큰을 허용합니다. 문제가 해결되면 VerifySoftwareToken 작업을 다시 시도하세요.
로 로그인 TOTP MFA
이 시점에서 사용자는 시간 기반 일회용 암호를 사용하여 로그인합니다. 프로세스는 다음과 같습니다.
-
사용자는 사용자 이름과 암호를 입력하여 클라이언트 앱에 로그인합니다.
-
TOTP MFA 챌린지가 호출되고 앱에서 임시 암호를 입력하라는 메시지가 표시됩니다.
-
사용자는 연결된 TOTP생성 앱에서 임시 암호를 가져옵니다.
-
사용자가 클라이언트 앱에 TOTP 코드를 입력합니다. 앱이 이를 확인하라고 Amazon Cognito 서비스에 알립니다. 각 로그인에 대해 를 호출하여 새 TOTP 인증 챌린지에 대한 응답을 받아야 RespondToAuthChallenge 합니다.
-
Amazon Cognito에서 토큰을 확인하면 로그인이 성공하고 사용자가 인증 흐름을 계속합니다.
TOTP 토큰 제거
마지막으로 앱은 사용자가 TOTP 구성을 비활성화할 수 있도록 허용해야 합니다. 현재 사용자의 TOTP 소프트웨어 토큰은 삭제할 수 없습니다. 사용자의 소프트웨어 토큰을 교체하려면 새 소프트웨어 토큰을 연결하고 확인하세요. 사용자에 TOTP MFA 대해 비활성화하려면 를 호출SetUserMFAPreference하여 사용자를 수정하여 MFA를 사용하지 않거나 SMS 만 사용하도록 합니다MFA.
-
를 재설정하려는 사용자를 위해 앱에서 인터페이스를 생성합니다MFA. 이 인터페이스에서 사용자에게 암호를 입력하라는 메시지를 표시합니다.
-
Amazon Cognito가 TOTP MFA 챌린지를 반환하는 경우 사용자의 MFA 기본 설정을 로 업데이트합니다SetUserMFAPreference.
-
앱에서 사용자에게 비활성화되었음을 알리고 다시 로그인하라는 MFA 메시지를 표시합니다.
호스팅 UIACL용 AWS WAF 웹 구성 TOTP MFA
사용자 풀과 ACL 연결된 AWS WAF 웹이 있고 웹의 규칙이 를 ACL 표시하면 호스팅 UI TOTP 등록에서 복구할 수 없는 오류가 발생할 CAPTCHA수 있습니다. AWS WAF CAPTCHA 규칙은 이러한 방식으로 TOTP MFA 호스팅 UI에만 영향을 미칩니다. SMS MFA 는 영향을 받지 않습니다.
Amazon Cognito는 CAPTCHA 규칙으로 인해 사용자가 TOTP MFA 설정을 완료할 수 없는 경우 다음 오류를 표시합니다.
WAF captcha로 인해 요청이 허용되지 않습니다.
이 오류는 가 사용자 풀이 백그라운드에서 수행하는 AssociateSoftwareToken 및 VerifySoftwareToken API 요청에 대한 응답으로 CAPTCHA 를 AWS WAF 요청하는 경우 발생합니다. CAPTCHA 작업이 있고 호스팅 UI에 영향을 주지 않는 규칙을 생성하려면 규칙의 CAPTCHA 작업VerifySoftwareToken
에서 AssociateSoftwareToken
및 의 x-amzn-cognito-operation-name
헤더 값을 TOTP제외합니다.
다음 스크린샷은 AssociateSoftwareToken
또는 의 x-amzn-cognito-operation-name
헤더 값이 없는 모든 요청에 CAPTCHA 작업을 적용하는 예제 AWS WAF 규칙을 보여줍니다VerifySoftwareToken
.
AWS WAF 웹 ACLs 및 Amazon Cognito 대한 자세한 내용은 섹션을 참조하세요AWS WAF 웹을 사용자 풀ACL과 연결.