

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

# 사용자 풀 대/소문자 구분
<a name="user-pool-case-sensitivity"></a>

에서 생성하는 Amazon Cognito 사용자 풀 AWS Management Console 은 기본적으로 대/소문자를 구분하지 않습니다. 사용자 풀이 대/소문자를 구분하지 않는 경우 *user@example.com*과 *User@example.com*은 동일한 사용자를 지칭합니다. 사용자 풀의 사용자 이름이 대/소문자를 구분하지 않는 경우 `preferred_username` 및 `email` 속성도 대/소문자를 구분하지 않습니다.

대소문자 구분은 속성 입력뿐만 아니라 출력에도 적용됩니다. 대소문자를 구분하지 않는 사용자 풀의 대소문자가 혼합된 속성 값은 사용자 풀 텍스트 출력에서 ​​소문자로 변환됩니다. 사용자 풀 텍스트 출력의 예로는 [userInfo](userinfo-endpoint.md) 응답, [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html) 출력과 같은 사용자 쿼리 응답, [Lambda 트리거](cognito-user-pools-working-with-lambda-triggers.md)에 대한 입력 이벤트가 있습니다.

사용자 풀 대/소문자 구분 설정을 고려하여 앱 코드에서 대체 사용자 속성을 기반으로 사용자를 식별합니다. 사용자 이름, 기본 설정 사용자 이름 또는 이메일 주소 속성의 대/소문자는 사용자 프로필마다 다를 수 있으므로 `sub` 속성을 참조하세요. 사용자 풀에 변경 불가능한 사용자 지정 속성을 생성하고 각 새 사용자 프로필의 속성에 고유한 식별자 값을 할당할 수도 있습니다. 사용자를 처음 생성할 때 생성된 변경 불가능한 사용자 지정 속성에 값을 쓸 수 있습니다.

**참고**  
사용자 풀의 대/소문자 구분 설정에 관계없이 Amazon Cognito에서는 SAML 자격 증명 공급자(IdP)의 페더레이션 사용자가 고유하고 대/소문자를 구분하는 `NameId` 또는 `sub` 클레임을 전달해야 합니다. 고유 식별자 대/소문자 구분 및 SAML IdP에 대한 자세한 내용은 [SP 시작 SAML 로그인 구현](cognito-user-pools-SAML-session-initiation.md#cognito-user-pools-saml-idp-authentication) 섹션을 참조하세요.

대/소문자를 구분하는 사용자 풀 생성  
[CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)과 같은 API 작업 및 AWS Command Line Interface (AWS CLI)를 사용하여 리소스를 생성하는 경우 부울 `CaseSensitive` 파라미터를 로 설정해야 합니다`false`. 이 설정은 대/소문자를 구분하지 않는 사용자 풀을 생성합니다. 값을 지정하지 않으면 `CaseSensitive`가 `true`를 기본값으로 사용합니다. Amazon Cognito 콘솔에서 생성하는 사용자 풀은 대/소문자를 구분하지 않습니다. 대/소문자를 구분하는 사용자 풀을 생성하려면 `CreateUserPool` 작업을 사용해야 합니다. 2020년 2월 12일 이전에는 플랫폼과 관계없이 사용자 풀이 기본적으로 대/소문자를 구분하도록 설정되었습니다.  
 AWS Management Console 의 **로그인** 메뉴와 [DescribeUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserPoolType.html#CognitoUserPools-Type-UserPoolType-UsernameConfiguration)의 `UsernameConfiguration` 속성에서 계정의 각 사용자 풀에 대한 대소문자 구분 설정을 검토할 수 있습니다.

새 사용자 풀로 마이그레이션  
사용자 프로필 간에 충돌이 발생할 수 있으므로 Amazon Cognito 사용자 풀을 대/소문자 구분에서 대/소문자 구분 안 함으로 변경할 수 없습니다. 대신 사용자를 새 사용자 풀로 마이그레이션할 수 있습니다. 대/소문자 관련 충돌을 해결하려면 마이그레이션 코드를 작성해야 합니다. 이 코드는 충돌이 감지될 때 고유한 새 사용자를 반환하거나 로그인 시도를 거부해야 합니다. 대/소문자를 구분하지 않는 새 사용자 풀에서 [사용자 마이그레이션 Lambda 트리거](user-pool-lambda-migrate-user.md)를 할당합니다. AWS Lambda 함수는 대/소문자를 구분하지 않는 새 사용자 풀에서 사용자를 생성할 수 있습니다. 사용자가 대/소문자를 구분하지 않는 사용자 풀로 로그인에 실패하면 Lambda 함수가 대/소문자를 구분하는 사용자 풀에서 사용자를 찾아서 복제합니다. [ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html) 이벤트에 대해 사용자 마이그레이션 Lambda 트리거를 활성화할 수도 있습니다. Amazon Cognito는 로그인 또는 암호 복구 작업의 사용자 정보 및 이벤트 메타데이터를 Lambda 함수로 전달합니다. 함수가 대/소문자를 구분하지 않는 사용자 풀에서 새 사용자를 생성할 때 이벤트 데이터를 사용하여 사용자 이름과 이메일 주소 간의 충돌을 관리할 수 있습니다. 이러한 충돌은 대/소문자를 구분하는 사용자 풀에서는 고유하지만 대/소문자를 구분하지 않는 사용자 풀에서는 동일한 사용자 이름과 이메일 주소 간에 발생합니다.  
Amazon Cognito 사용자 풀 간에 사용자 Lambda 마이그레이션 트리거를 사용하는 방법에 대한 자세한 내용은 AWS 블로그의 [사용자에서 Amazon Cognito 사용자 풀로 마이그레이션](https://aws.amazon.com/blogs/mobile/migrating-users-to-amazon-cognito-user-pools/)을 참조하세요.