호스트된 UI에 고유한 도메인 사용 - Amazon Cognito

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

호스트된 UI에 고유한 도메인 사용

앱 클라이언트를 설정한 후 Amazon Cognito 호스팅 UI 및 인증 API 엔드포인트에 대한 사용자 지정 도메인으로 사용자 풀을 구성할 수 있습니다. 사용자 지정 도메인을 사용하면 사용자가 자체 웹 주소를 사용하여 애플리케이션에 로그인할 수 있습니다.

사용자 풀에 사용자 정의 도메인 추가

사용자 풀에 사용자 지정 도메인을 추가하려면 Amazon Cognito 콘솔에서 도메인 이름을 지정하고 AWS Certificate Manager(ACM)을 사용하여 관리하는 인증서를 제공합니다. 도메인을 추가하고 나면 Amazon Cognito는 사용자가 DNS 구성에 추가할 별칭 대상을 제공합니다.

필수 조건

시작하려면 다음이 필요합니다.

  • 앱 클라이언트가 포함된 사용자 풀. 자세한 내용은 사용자 풀 시작하기 섹션을 참조하세요.

  • 자신이 소유한 웹 도메인. 상위 도메인에 유효한 DNS A 레코드가 있어야 합니다. 이 레코드에 어떤 값이든 할당할 수 있습니다. 상위 도메인은 도메인의 루트 도메인이거나 도메인 계층 구조에서 한 단계 높은 자식 도메인일 수 있습니다. 예를 들어 사용자 지정 도메인이 auth.xyz.example.com인 경우 Amazon Cognito는 xyz.example.com을 IP 주소로 확인할 수 있어야 합니다. 고객 인프라에 대한 우발적인 영향을 방지하기 위해 Amazon Cognito는 사용자 지정 도메인에 대한 최상위 도메인(TLD) 사용을 지원하지 않습니다. 자세한 내용은 도메인 이름을 참조하세요.

  • 사용자 지정 도메인의 하위 도메인을 생성하는 기능 auth를 하위 도메인으로 사용하는 것이 좋습니다. 예: auth.example.com.

    참고

    와일드카드 인증서가 없는 경우 사용자 지정 도메인의 하위 도메인에 대한 새 인증서를 받아야 할 수 있습니다.

  • ACM에서 관리하는 보안 소켓 계층(SSL) 인증서.

    참고

    인증서를 요청하거나 가져오기 전에 ACM 콘솔에서 AWS 지역을 미국 동부 (버지니아 북부) 로 변경해야 합니다.

  • 사용자 풀 인증 서버가 사용자 세션에 쿠키를 추가할 수 있도록 허용하는 애플리케이션입니다. Amazon Cognito는 호스팅된 UI에 필요한 몇 가지 쿠키를 설정합니다. cognito, cognito-flXSRF-TOKEN가 포함됩니다. 각 개별 쿠키는 브라우저 크기 제한을 준수하지만 사용자 풀 구성을 변경하면 호스팅된 UI 쿠키의 크기가 커질 수 있습니다. 사용자 지정 도메인 앞에 있는 Application Load Balancer (ALB) 와 같은 중간 서비스는 최대 헤더 크기 또는 전체 쿠키 크기를 적용할 수 있습니다. 애플리케이션이 자체 쿠키도 설정하는 경우 사용자 세션이 이러한 제한을 초과할 수 있습니다. 크기 제한 충돌을 방지하려면 애플리케이션에서 호스팅된 UI 하위 도메인에 쿠키를 설정하지 않는 것이 좋습니다.

  • Amazon CloudFront 배포판을 업데이트할 수 있는 권한. 다음 IAM 정책 문을 AWS 계정의 IAM 사용자, 그룹 또는 역할에 연결하면 이 작업을 할 수 있습니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontUpdateDistribution", "Effect": "Allow", "Action": [ "cloudfront:updateDistribution" ], "Resource": [ "*" ] } ] }

    에서 CloudFront 작업을 승인하는 방법에 대한 자세한 내용은 ID 기반 정책 (IAM 정책) 사용을 참조하십시오. CloudFront

    Amazon Cognito는 처음에 IAM 권한을 사용하여 배포를 구성하지만 CloudFront 배포는 에서 관리합니다. AWS Amazon Cognito가 사용자 풀에 연결한 CloudFront 배포의 구성은 변경할 수 없습니다. 예를 들어 보안 정책에서 지원되는 TLS 버전을 업데이트할 수 없습니다.

1단계: 사용자 정의 도메인 이름 입력

Amazon Cognito 콘솔 또는 API를 사용하여 도메인을 사용자 풀에 추가할 수 있습니다.

Amazon Cognito console
Amazon Cognito 콘솔에서 사용자 풀에 도메인을 추가하려면
  1. Amazon Cognito 콘솔에 로그인합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다.

  2. [사용자 풀(User pools)]을 선택합니다.

  3. 도메인을 추가할 사용자 풀을 선택합니다.

  4. [앱 통합(App integration)] 탭을 선택합니다.

  5. [도메인(Domain)] 옆의 [작업(Actions)]을 선택한 다음, [사용자 정의 도메인 생성(Create custom domain)]을 선택합니다.

    참고

    사용자 풀 도메인을 이미 구성한 경우 새 사용자 정의 도메인을 생성하기 전에 [Cognito 도메인 삭제(Delete Cognito domain)] 또는 [사용자 정의 도메인 삭제(Delete custom domain)]를 선택하여 기존 도메인을 삭제합니다.

  6. [사용자 정의 도메인(Custom domain)]에 Amazon Cognito에서 사용할 도메인의 URL을 입력합니다. 도메인 이름에는 소문자, 숫자, 하이픈(-)만 사용할 수 있습니다. 첫 번째나 마지막 자리에 하이픈을 사용해서는 안 됩니다. 마침표로 하위 도메인 이름을 구분하세요.

  7. [ACM 인증서(ACM certificate)]에서 도메인에 사용할 SSL 인증서를 선택합니다. 사용자 풀과 상관없이 미국 동부 (버지니아 북부) 의 AWS 리전 ACM 인증서만 Amazon Cognito 사용자 지정 도메인과 함께 사용할 수 있습니다.

    사용 가능한 인증서가 없는 경우 ACM을 사용하여 미국 동부(버지니아 북부)에서 인증서를 프로비저닝할 수 있습니다. 자세한 내용은 AWS Certificate Manager 사용 설명서에서 시작하기를 참조하세요.

  8. 생성을 선택하세요.

  9. Amazon Cognito가 [앱 통합(App integration)] 탭으로 돌아갑니다. [도메인의 DNS에 별칭 레코드 생성(Create an alias record in your domain's DNS)]이라는 제목의 메시지가 표시됩니다. 콘솔에 표시된 [도메인(Domain)]과 [별칭 대상(Alias target)]을 적어 둡니다. 이 정보는 다음 단계에서 트래픽을 사용자 정의 도메인으로 보내는 데 사용됩니다.

API
Amazon Cognito API를 사용하여 사용자 풀에 도메인을 추가하려면

2단계: 별칭 대상 및 하위 도메인 추가

이 단계에서는 도메인 이름 서버(DNS) 서비스 공급자를 통해, 이전 단계의 별칭 대상을 다시 가리키는 별칭을 설정합니다. DNS 주소 확인에 Amazon Route 53을 사용하는 경우 Route 53을 사용하여 별칭 대상 및 하위 도메인을 추가하려면 섹션을 선택하세요.

  • DNS 주소 확인에 Route 53을 사용하지 않는 경우 DNS 서비스 공급자의 구성 도구를 사용하여 이전 단계의 별칭 대상을 도메인의 DNS 레코드에 추가해야 합니다. 또한 DNS 공급자가 사용자 지정 도메인에 대한 하위 도메인을 설정해야 합니다.

  1. Route 53 콘솔에 로그인합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다.

  2. Route 53에 호스팅 영역이 없는 경우, 사용자 지정 도메인의 상위인 루트를 사용하여 호스팅 영역을 생성하십시오. 자세한 내용을 알아보려면 다음 섹션을 참조하세요.

    1. Create Hosted Zone(호스팅 영역 생성)을 선택합니다.

    2. [도메인 이름(Domain Name)] 목록에서 사용자 정의 도메인(예: myapp.auth.example.com)의 상위 도메인(예: auth.example.com)을 입력합니다.

    3. 호스팅 영역에 대한 설명을 입력합니다.

    4. 퍼블릭 클라이언트가 사용자 정의 도메인을 확인할 수 있도록 호스팅 영역 [유형(Type)]으로 [퍼블릭 호스팅 영역(Public hosted zone)]을 선택합니다. [프라이빗 호스팅 영역(Private hosted zone)]은 선택할 수 없습니다.

    5. 원하는 대로 [태그(Tags)]를 적용합니다.

    6. 호스팅 영역 생성(Create hosted zone)을 선택합니다.

      참고

      사용자 정의 도메인에 대한 새 호스팅 영역을 생성할 수도 있으며, 상위 호스팅 영역에 쿼리를 하위 도메인 호스팅 영역으로 보내는 위임 집합을 생성할 수 있습니다. 그렇지 않으면 A 레코드를 생성하십시오. 이 방법을 사용하면 호스팅 영역의 유연성과 보안이 강화됩니다. 자세한 내용은 Amazon Route 53을 통해 호스트되는 도메인의 하위 도메인 생성을 참조하세요.

  3. 호스팅 영역(Hosted Zones) 페이지에서 호스팅 영역의 이름을 선택합니다.

  4. 사용자 지정 도메인의 상위 도메인이 아직 없는 경우 해당 도메인의 상위 도메인에 대한 DNS 레코드를 추가하세요. 상위 도메인의 DNS A 레코드를 추가하고 레코드 생성을 선택합니다. 다음은 auth.example.com 도메인에 대한 예제 레코드입니다.

    auth.example.com. 60 IN A 198.51.100.1

    참고

    Amazon Cognito는 프로덕션 도메인이 실수로 하이재킹되지 않도록 보호하기 위해 사용자 정의 도메인의 상위 도메인에 대한 DNS 레코드가 있는지 확인합니다. 상위 도메인에 대한 DNS 레코드가 없는 경우 사용자 정의 도메인을 설정하려고 하면 Amazon Cognito에서 오류를 반환합니다. SOA (권한 시작) 레코드는 부모 도메인 확인을 위한 충분한 DNS 레코드가 아닙니다.

  5. 커스텀 도메인용 DNS 레코드를 추가하세요. 예를 123example.cloudfront.net 들어 레코드는 사용자 지정 도메인 별칭 대상을 가리켜야 합니다. [레코드 생성(Create record)]을 다시 선택합니다.

  6. 사용자 정의 도메인과 일치하는 [레코드 이름(Record name)](예: myapp)을 입력하여 myapp.auth.example.com에 대한 레코드를 생성합니다.

  7. [별칭(Alias)] 옵션을 사용하도록 설정합니다.

  8. [다음으로 트래픽 라우팅(Route traffic to)]에서 [CloudFront 배포에 대한 별칭(Alias to Cloudfront distribution)]을 선택합니다. 사용자 정의 도메인을 생성할 때 Amazon Cognito에서 제공한 [별칭 대상(Alias target)]을 입력합니다.

  9. [레코드 생성(Create Records)]을 선택합니다.

    참고

    새 레코드가 모든 Route 53 DNS 서버에 전파되는 데 약 60초가 걸릴 수 있습니다. Route 53 GetChangeAPI 방법을 사용하여 변경 내용이 전파되었는지 확인할 수 있습니다.

3단계: 로그인 페이지 확인

  • 사용자 지정 도메인에서 로그인 페이지를 사용할 수 있는지 확인합니다.

    브라우저에 이 주소를 입력하여 사용자 지정 도메인과 하위 도메인으로 로그인합니다. 다음은 사용자 지정 도메인이 example.com이고 하위 도메인이 auth인 URL의 예입니다.

    https://myapp.auth.example.com/login?response_type=code&client_id=<your_app_client_id>&redirect_uri=<your_callback_url>

사용자 정의 도메인의 SSL 인증서 변경

필요한 경우 Amazon Cognito를 사용하여 사용자 지정 도메인에 적용한 인증서를 변경할 수 있습니다.

일반적으로 ACM을 사용한 일상적인 인증서 갱신 후에는 이 작업이 필요하지 않습니다. ACM에서 기존 인증서를 갱신할 때 인증서의 ARN은 동일하게 유지되며 사용자 지정 도메인은 새 인증서를 자동으로 사용합니다.

그러나 기존 인증서를 새 인증서로 교체하는 경우에는 ACM이 새 인증서에 새 ARN을 할당합니다. 사용자 지정 도메인에 새 인증서를 적용하려면 Amazon Cognito에 이 ARN을 제공해야 합니다.

새 인증서를 제공한 후, Amazon Cognito가 사용자 지정 도메인에 인증서를 배포하는 데 최대 1시간이 소요됩니다.

시작하기 전 준비 사항

Amazon Cognito에서 인증서를 변경하려면 먼저 ACM에 인증서를 추가해야 합니다. 자세한 내용은 AWS Certificate Manager 사용 설명서에서 시작하기를 참조하세요.

인증서를 ACM에 추가할 때 미국 동부(버지니아 북부)를 AWS 리전으로 선택해야 합니다.

Amazon Cognito 콘솔 또는 API를 사용하여 인증서를 변경할 수 있습니다.

AWS Management Console
Amazon Cognito 콘솔에서 인증서를 갱신하려면
  1. 에서 Amazon Cognito 콘솔에 AWS Management Console 로그인하고 엽니다. https://console.aws.amazon.com/cognito/home

  2. [사용자 풀(User Pools)]을 선택합니다.

  3. 인증서를 업데이트할 사용자 풀을 선택합니다.

  4. [앱 통합(App integration)] 탭을 선택합니다.

  5. [작업(Actions)], [ACM 인증서 편집(Edit ACM certificate)]을 차례로 선택합니다.

  6. 사용자 정의 도메인에 연결할 새 인증서를 선택합니다.

  7. 변경 사항 저장(Save changes)을 선택합니다.

API
인증서를 갱신하려면(Amazon Cognito API)