기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Cognito 문제 해결
이 장에서는 Amazon Cognito로 작업하는 동안 발생할 수 있는 일반적인 문제에 대한 솔루션을 제공합니다. Amazon Cognito 구현은 인증 흐름, 사용자 풀 구성 및 ID 페더레이션 설정 전반에 걸쳐 다양한 문제에 직면할 수 있습니다. 새 애플리케이션을 개발하든 기존 애플리케이션을 유지하든 이 문제 해결 안내서는 일반적인 문제를 신속하게 식별하고 해결하는 데 도움이 됩니다.
사용자 지정 도메인 구성 오류
Amazon Cognito에서 사용자 지정 도메인 이름을 구성할 때 오류 메시지가 표시될 수 있습니다. 일반적인 오류에는 검증 문제, 인증서 문제 또는 도메인 충돌이 포함됩니다.
Custom domain is not a valid
subdomain
이 오류는 상위 도메인의 DNS 확인 문제를 나타냅니다. Amazon Cognito는 최상위 도메인을 지원하지 않으며 검증을 위해 상위 도메인에 DNS A 레코드가 있어야 합니다.
- 문제
-
이 오류는 상위 도메인의 DNS 확인 문제를 나타냅니다. Amazon Cognito는 최상위 도메인을 지원하지 않으며 검증을 위해 상위 도메인에 DNS A 레코드가 있어야 합니다.
- Solution
-
-
상위 도메인에 대한 레코드 생성: 사용자 지정 도메인의 상위 도메인에 대한 DNS 구성에서 A 레코드를 생성해야 합니다.
-
예: 사용자 지정 도메인이
auth.xyz.yourdomain.com인 경우 상위 도메인은xyz.yourdomain.com입니다.xyz.yourdomain.com을 사용자 지정 도메인으로 구성하려는 경우 상위 항목은yourdomain.com입니다. -
상위 도메인은 유효한 IP 주소로 확인되어야 합니다. 실제 IP 주소를 가리키지 않는 경우
8.8.8.8과 같은 더미 IP 주소를 사용할 수 있습니다.
-
-
DNS 전파 확인(선택 사항이지만 권장됨): DNS 공급자가 변경 사항을 전파했는지 확인하려면
dig명령을 실행할 수 있습니다.-
auth.xyz.yourdomain.com을 사용자 지정 도메인으로 사용하는 경우:dig A xyz.yourdomain.com +short -
xyz.yourdomain.com을 사용자 지정 도메인으로 사용하는 경우:dig A yourdomain.com +short -
명령은 구성한 IP 주소를 반환해야 합니다. 그렇지 않으면 변경 사항이 완전히 전파될 때까지 기다립니다.
-
-
상위 도메인 A 레코드 제거: Amazon Cognito에서 사용자 지정 도메인을 성공적으로 생성한 후 더미 도메인인 경우 상위 도메인에 대해 생성한 A 레코드를 제거할 수 있습니다.
-
자세한 내용은 호스팅 UI에 자체 도메인 사용을 참조하세요.
Domain already associated
with another user pool
사용자 지정 도메인 이름은 모든 AWS 계정 및 리전에서 고유해야 합니다.
- 문제
-
사용자 지정 도메인 이름은 모든 AWS 계정 및 리전에서 고유해야 합니다.
- Solution
-
-
새 사용자 풀에 도메인 이름을 사용하려면 현재 연결된 사용자 풀에서 사용자 지정 도메인을 삭제해야 합니다.
-
삭제 후 대기: 사용자 지정 도메인이 첫 번째 사용자 풀에서 완전히 삭제되는 데 시간이 걸립니다. 삭제 직후 동일한 이름으로 새 사용자 지정 도메인을 생성해도 여전히 이 오류가 발생할 수 있습니다. 몇 분 기다렸다가 다시 시도합니다.
-
One or more of the CNAMEs that
you provided are already associated with a different resource
사용자 지정 도메인을 생성하면 Amazon Cognito가 AWS관리형 Amazon CloudFront 배포를 생성합니다. 도메인 이름은 하나의 Amazon CloudFront 배포에만 사용할 수 있습니다. 이 오류는 도메인 이름이 이미 다른 Amazon CloudFront 배포의 대체 도메인으로 사용 중인 경우에 발생합니다.
- 문제
-
사용자 지정 도메인을 생성하면 Amazon Cognito가 AWS관리형 Amazon CloudFront 배포를 생성합니다. 도메인 이름은 하나의 Amazon CloudFront 배포에만 사용할 수 있습니다. 이 오류는 도메인 이름이 이미 다른 Amazon CloudFront 배포의 대체 도메인으로 사용 중인 경우에 발생합니다.
- Solution
-
-
옵션 1: Amazon Cognito 사용자 지정 도메인에 다른 도메인 이름을 사용합니다.
-
옵션 2: Amazon Cognito의 도메인 이름을 사용하는 경우 다른 Amazon CloudFront 배포판과 함께 사용하지 마세요.
-
The specified SSL certificate
doesn't exist
Amazon Cognito는 사용자 풀의 리전에 AWS 리전관계없이 AWS Certificate Manager (ACM) 인증서가 us-east-1 (버지니아 북부)에 있어야 하는 Amazon CloudFront를 사용합니다.
- 문제
-
Amazon Cognito는 사용자 풀의 리전에 AWS 리전관계없이 AWS Certificate Manager (ACM) 인증서가
us-east-1(버지니아 북부)에 있어야 하는 Amazon CloudFront를 사용합니다. - Solution
-
-
인증서 리전 확인: ACM 인증서가
us-east-1리전에 있는지 확인합니다. -
인증서 유효성 확인: 선택한 인증서가 만료되지 않았는지 확인합니다.
-
가져온 인증서: 인증서를 ACM으로 가져온 경우 다음을 확인합니다.
-
공인 인증 기관에서 발급한 것입니다.
-
여기에는 올바른 인증서 체인이 포함됩니다.
-
-
AWS KMS 정책 확인: 도메인을 생성하는 IAM 사용자 또는 역할에 대한 AWS Key Management Service (AWS KMS) 정책의 명시적
deny문으로 인해이 오류가 발생할 수 있습니다. 특히kms:DescribeKey,kms:CreateGrant또는kms:*작업에 대한 명시적 거부가 있는지 확인합니다.
-
Invalid refresh token 오류
- 문제
-
새로 고침 토큰을 사용하여
AdminInitiateAuth또는InitiateAuthAPI 작업을 사용하여 Amazon Cognito 사용자 풀에서 새 액세스 및 ID 토큰을 가져오려고 할 때Invalid refresh token오류가 발생합니다. - Solution
-
사용자 풀 구성 및 API 사용량에 따라 다음 문제 해결 단계를 구현합니다.
-
일관된 앱 클라이언트 ID 보장: 토큰 새로 고침을 위해
AdminInitiateAuth또는InitiateAuthAPI를 호출할 때 새로 고침 토큰을 생성한 초기 인증 중에 사용된 것과 정확히 동일한 앱 클라이언트 ID를 사용해야 합니다. -
디바이스 확인: 사용자 풀에서 디바이스 추적이 활성화되었지만 사용자의 디바이스가 확인되지 않은 경우 먼저 ConfirmDevice API를 호출해야 합니다. 사용자가 디바이스를 확인한 후 새로 고침 토큰을 교환할 수 있습니다.
-
새로 고침 요청에 디바이스 키 포함: 디바이스 추적이 활성화된 경우
REFRESH_TOKEN_AUTH흐름을 사용할 때 고유한 디바이스 키를AuthParameter로 포함합니다.{ "AuthFlow": "REFRESH_TOKEN_AUTH", "AuthParameters": { "REFRESH_TOKEN": "example_refresh_token", "SECRET_HASH": "example_secret_hash", // Required if your app client uses a client secret "DEVICE_KEY": "example_device_key" } } -
디바이스 추적에
USER_SRP_AUTH사용: 디바이스 추적을 사용하는 경우 초기 인증 흐름은USER_SRP_AUTH여야 합니다.
-
자세한 내용은 사용자 풀의 사용자 디바이스 작업 단원을 참조하십시오.
페더레이션의 잘못된 SAML 응답 오류
SAML 2.0을 사용하여 Amazon Cognito에 페더레이션하려고 하면 사용자에게 다양한 Invalid SAML response 및 유사한 오류가 발생합니다. 이러한 오류는 속성 매핑 문제, 인증서 문제 또는 구성 불일치로 인해 발생할 수 있습니다.
Invalid user attributes:
Required attribute
- 문제
-
사용자가 사용자 풀에 필요한 속성 값을 누락했거나 IdP가 변경 불가능한 속성을 제거하거나 업데이트하려고 합니다.
- Solution
-
-
사용자 풀 구성에 정의된 필수 속성을 확인합니다.
-
브라우저에서 네트워크 캡처 도구를 사용하여 SAML 응답을 검색합니다. URL 및 base64 디코딩을 수행해야 할 수 있습니다. 속성이 SAML 어설션에 있는지 확인합니다.
-
ID 제공업체에 로그인하고 Amazon Cognito로 보내는 속성을 검토합니다. IdP가 올바른 이름을 사용하여 필요한 속성을 전송하도록 구성되어 있는지 확인합니다.
-
변경할 수 없는 속성의 경우 AWS CLI 명령을 실행하여 식별합니다
aws cognito-idp describe-user-pool --user-pool-id USER-POOL-ID --query 'UserPool.SchemaAttributes[?Mutable==`false`].Name'. -
IdP의 SAML 속성 매핑에서 변경 불가능한 Amazon Cognito 속성을 대상으로 하는 매핑을 삭제합니다. 또는 대상 속성을 변경 가능한 다른 속성으로 업데이트합니다.
-
Invalid SAML response received:
SAML Response signature is invalid
- 문제
-
IdP가 SAML 서명 인증서를 업데이트하여 SAML 응답의 인증서와 Amazon Cognito에 저장된 메타데이터 파일이 일치하지 않습니다.
- Solution
-
-
IdP에서 최신 메타데이터 파일을 다운로드합니다.
-
Amazon Cognito 콘솔에서 사용자 풀의 소셜 및 외부 공급자로 이동하여 SAML 공급자를 편집하고 기존 메타데이터 파일을 새로 다운로드한 파일로 바꿉니다.
-
Audience restriction 또는 Application with identifier not found
- 문제
-
IdP에 잘못된 엔터티 ID가 구성되었거나 어설션이 다른 사용자 풀의 URN(Uniform Resource Name)을 사용합니다.
- Solution
-
-
콘솔의 개요 섹션에서 Amazon Cognito 사용자 풀 ID를 가져옵니다.
-
IdP의 관리 콘솔에서 사용자 풀의 SAML 애플리케이션에서 엔터티 ID를 업데이트합니다.
urn:amazon:cognito:sp:형식과 일치하도록 개체 ID를 구성합니다.USER_POOL_IDUSER_POOL_ID을 전 단계의 사용자 풀 ID로 바꿉니다.
-
An error was encountered with the
requested page
- 문제
-
IdP에 등록된 어설션 소비자 서비스(ACS) URL이 잘못 구성되었거나 IdP가 필요한 POST 바인딩을 사용하여 SAML 응답을 전송하지 않습니다.
- Solution
-
-
IdP의 관리 콘솔에서 올바른 ACS URL 형식으로 애플리케이션을 업데이트하여
HTTP POST바인딩을 사용하는지 확인합니다. -
기본 도메인 형식:
https://cognito-idp.Region.amazonaws.com/your user pool ID/saml2/idpresponse -
사용자 지정 도메인 형식:
https://auth.example.com/saml2/idpresponse
-
Invalid relayState from identity
provider
- 문제
-
RelayState파라미터가 누락되었거나 유효하지 않거나 IdP와 Amazon Cognito 간에 URL이 일치하지 않습니다. - Solution
-
-
서비스 공급자 시작(SP 시작) 흐름의 경우: 항상 사용자 풀
/oauth2/authorize엔드포인트에서 인증을 시작합니다. 사용자가 Amazon Cognito를 처음 방문할 때RelayState파라미터를 반환하지 않는 SAML 어설션은 유효한 SP 시작 요청이 아닙니다. -
ID 제공업체 시작(IdP 시작) 흐름의 경우: IdP에는 필수 형식
redirect_uri=REDIRECT_URI&state=STATE를 사용하여/saml2/idpresponse엔드포인트에 대한 SAML 어설션과 함께RelayState파라미터가 포함되어야 합니다.
-
자세한 내용은 사용자 풀에서 SAML ID 제공업체 사용 단원을 참조하십시오.
관리형 로그인 사용자는 MFA 요소를 선택할 수 없습니다.
- 문제
-
사용자는 관리형 로그인을 통해 로그인할 때 선호하는 MFA 방법을 선택할 수 없거나 예상한 MFA 방법을 입력하라는 메시지가 표시되지 않습니다.
- Solution
-
Amazon Cognito는 특정 로직을 따라 사용자 풀 설정, 사용자 속성 및 계정 복구 구성을 기반으로 사용자가 사용할 수 있는 MFA 요소를 결정합니다. 예를 들어 이메일이 기본 계정 복구 방법으로 구성된 경우 사용자는 이메일 MFA를 사용할 수 없습니다.
기본 MFA 팩터 선택을 재정의하려면 다음 방법 중 하나를 구현할 수 있습니다.
-
퍼블릭 애플리케이션의 경우: 유효한 액세스 토큰과 함께 SetUserMFAPreference를 사용하여 사용자가 자신의 MFA 기본 설정을 설정하도록 허용
-
관리자 관리형 애플리케이션의 경우: 자격 AWS 증명과 함께 AdminSetUserMFAPreference를 사용하여 사용자 MFA 기본 설정을 구성합니다.
두 작업을 모두 사용하면 개별 사용자에 대해 SMS, 이메일 및 TOTP MFA 메서드를 활성화 또는 비활성화하고 원하는 대로 하나의 메서드를 설정할 수 있습니다.
-
자세한 내용은 사용자 풀에 MFA 추가 단원을 참조하십시오.
암호 없는 사용자 및 패스키 사용자는 MFA를 사용할 수 없습니다.
- 문제
-
암호 없는 인증 방법 또는 패스키로 로그인하는 사용자는 다중 인증을 추가하거나 사용할 수 없습니다.
- Solution
-
이는 의도한 제한 사항입니다. 사용자가 MFA를 사용하거나 암호 없는 요소로 로그인하도록 사용자 풀을 구성할 수 있지만 둘 다 구성할 수는 없습니다. MFA는 암호 기반 인증 흐름에만 사용할 수 있습니다.
자세한 내용은 사용자 풀로 인증을 참조하세요.
이메일/SMS를 통해 암호 재설정 코드를 수신할 수 없음
- 문제
-
사용자는 암호 찾기 워크플로 중에 이메일 또는 SMS를 통해 확인 코드를 받을 수 없습니다.
- Solution
-
확인 코드가 수신되지 않는 이유는 다양합니다. 문제를 해결하려면 다음 체크리스트를 따르십시오.
-
사용자의 이메일 스팸 및 정크 폴더를 확인합니다.
-
사용자가 사용자 풀에 있는지 확인합니다.
-
사용자의 상태가
FORCE_CHANGE_PASSWORD가 아닌지 확인합니다. 이 경우 관리자가 사용자를 생성했으며 Amazon Cognito는 임시 암호로 로그인할 때 암호를 설정하라는 메시지를 표시합니다. -
사용자에게 확인된 이메일 또는 전화 번호 속성이 있는지 확인합니다.
-
SMS 메시징에 대한 계정 사용 한도 확인
-
Amazon Simple Email Service(Amazon SES) 메시지 전송 할당량을 확인합니다.
-
SMS와 Amazon SES(사용자 풀이 Amazon SES로 이메일을 전송하도록 구성된 경우)가 모두 샌드박스에서 이동되었는지 확인하세요. 샌드박스에서 이동하지 않은 경우 Amazon SES에서 확인되지 않았거나 암호 재설정 코드를 수신할 수 없는 이메일 주소 또는 전화번호 AWS 최종 사용자 메시징 SMS 입니다.
-
사용자에게 활성 MFA 요소가 있는 경우 동일한 요소로 메시지를 생성하려고 하지 않는지 확인합니다. 예를 들어 이메일 MFA가 활성화된 사용자는 이메일로 암호 재설정 코드를 전송할 수 없습니다.
-
자세한 내용은 Amazon Cognito 사용자 풀에 대한 이메일 설정 및 Amazon Cognito 사용자 풀의 SMS 메시지 설정 섹션을 참조하세요.
확인되지 않은 복구 속성으로 암호 재설정이 실패합니다. Could not reset password for the account, please contact support or try again
- 문제
-
확인되지 않은 복구 방법 또는 MFA 구성 충돌로 인해 암호를 재설정하려고 하면 사용자에게이 오류가 발생합니다. 이 오류는 사용자의 이메일 또는 전화번호 속성이 확인되지 않거나 MFA 설정으로 인해 구성된 복구 방법을 사용할 수 없는 경우에 발생합니다.
- Solution
-
사용자 풀의 계정 복구 구성과 영향을 받는 사용자의 확인 상태를 검토합니다.
-
복구 설정 확인: 사용자 풀에서 로그인 > 사용자 계정 복구로 이동합니다. 셀프 서비스 계정 복구가 활성화되어 있는지 확인하고 복구 메시지 전송 방법 설정을 검토합니다.
-
사용자 속성 확인: 사용자에게 복구 방법 구성과 일치하는 확인된 이메일 주소 또는 전화번호가 있는지 확인합니다. 콘솔에서 사용자 프로필로 이동하여 사용자 속성 > 편집을 선택하고 적절한 속성을 확인된 것으로 표시합니다.
-
MFA 충돌 해결: 선호하는 MFA 메서드가 이메일인 사용자는 이메일로 암호 재설정 코드를 수신할 수 없으며 SMS MFA 사용자는 SMS로 코드를 수신할 수 없습니다. 복구 메시지 전송 방법을 업데이트하여 사용 가능한 경우 SMS, 사용 가능한 경우 이메일 또는 이메일, 사용 가능한 경우 SMS와 같은 대체 옵션을 제공합니다.
-
관리 확인: API 작업 AdminUpdateUserAttributes를 사용하여 콘솔 액세스를 사용할 수 없는 경우 사용자 속성을 프로그래밍 방식으로 확인합니다.
-
자세한 내용은 암호, 계정 복구 및 암호 정책 단원을 참조하십시오.
SECRET_HASH 오류
- 문제
-
클라이언트 보안 암호가 있는 앱 클라이언트에 대한 인증 API 요청은
An error occurred (NotAuthorizedException) when calling the ForgotPassword operation: Client 1example23456789 is configured with secret but SECRET_HASH was not received.와 같은 오류를 반환합니다. - Solution
-
애플리케이션은 현재 사용자, 앱 클라이언트 및 클라이언트 보안 암호에 대한
SECRET_HASH를 계산해야 합니다. 계산 방법은 다음과 같습니다.Base64 ( HMAC_SHA256 ( "client secret", "Username" + "Client Id" ) )클라이언트 보안 암호를 가져오려면 다음을 수행할 수 있습니다.
-
Amazon Cognito 콘솔을 열고 앱 클라이언트 메뉴에서 앱 클라이언트로 이동합니다. 앱 클라이언트 정보 섹션에서 클라이언트 보안 암호를 찾습니다. 클라이언트 보안 암호 표시를 선택하면 앱 클라이언트 보안 암호가 나타납니다.
-
DescribeUserPoolClient 요청을 생성합니다. 클라이언트 보안 암호가 응답에 포함됩니다.
-
자세한 내용은 보안 암호 해시 값 컴퓨팅 단원을 참조하십시오.
Amazon Cognito 콘솔에서 새 사용자 풀에 대한 기본 구성 선택
- 문제
-
콘솔에서 새 사용자 풀을 설정하면 Amazon Cognito가 몇 가지 기본 설정을 자동으로 선택합니다. 일부 설정은 사용자 풀이 생성된 후에는 변경할 수 없습니다. 정보에 입각한 선택을 하고 Amazon Cognito가 자동으로 선택한 항목을 이해하려면 어떻게 해야 하나요?
- Solution
-
Amazon Cognito 콘솔의 새로운 사용자 풀 설정은 신속한 테스트 및 프로토타이핑을 위해 설계되었습니다. 콘솔은 사용자 풀 생성 후 변경할 수 없는 가장 중요한 구성 선택 사항만 제공합니다. Amazon Cognito가 자동으로 구성하는 다른 모든 설정은 나중에 수정할 수 있습니다.
다음과 같이 하는 것이 좋습니다.
-
구현을 구체화하는 동안 콘솔을 사용하여 테스트 사용자 풀을 생성합니다.
-
프로덕션 구성을 결정한 후 해당 설정을 테스트 사용자 풀에 적용합니다.
-
DescribeUserPool 및 DescribeUserPoolClient API 작업을 사용하여 테스트된 구성의 JSON 템플릿을 생성합니다.
-
이러한 템플릿을 AWS SDKs, CDK, REST API 또는와 같은 배포 도구와 함께 사용하여 프로덕션 리소스를 CloudFormation 생성합니다.
-
자세한 내용은 사용자 풀 시작하기 단원을 참조하십시오.
추가 문제 해결 리소스
추가 문제 해결 지침 및 커뮤니티 기여 솔루션을 보려면 다음 외부 리소스를 탐색할 수도 있습니다.
-
AWS re:Post Amazon Cognito 커뮤니티
- 커뮤니티 질문 및 솔루션 찾아보기 -
AWS 지식 센터 Amazon Cognito 문서
- 선별된 문제 해결 문서