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

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

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

앱 클라이언트를 설정한 후 Amazon Cognito 호스팅 UI 및 권한 부여 서버 엔드포인트에 대한 사용자 지정 도메인으로 사용자 풀을 구성할 수 있습니다. 사용자 지정 도메인을 사용하면 사용자는 기본 Amazon Cognito 도메인 대신 자체 웹 주소를 사용하여 애플리케이션에 로그인할 수 있습니다. 사용자 지정 도메인은 특히 루트 도메인이 애플리케이션을 호스팅하는 도메인과 일치하는 경우 익숙한 도메인 이름으로 애플리케이션의 사용자 신뢰를 개선합니다. 사용자 지정 도메인은 조직 보안 요구 사항을 준수할 수도 있습니다.

사용자 지정 도메인에는 사용자 풀, 앱 클라이언트, 소유한 웹 도메인을 비롯한 몇 가지 사전 요구 사항이 있습니다. 사용자 지정 도메인에는 미국 동부(버지니아 북부)의 AWS Certificate Manager (ACM)로 관리되는 사용자 지정 도메인에 대한 SSL 인증서도 필요합니다. Amazon Cognito는 사용자 지정 도메인 이름의 DNS별칭 대상이 되어야 하는 Amazon CloudFront 배포를 생성합니다. 이 배포는 ACM 인증서로 전송 중에 보호됩니다.

이러한 요소가 준비되면 Amazon Cognito 콘솔 또는 를 통해 사용자 풀에 사용자 지정 도메인을 추가할 수 있습니다API. 여기에는 도메인 이름과 SSL 인증서를 지정한 다음 제공된 별칭 대상으로 DNS 구성을 업데이트하는 작업이 포함됩니다. 이러한 변경 사항을 적용한 후 사용자 지정 도메인에서 로그인 페이지에 액세스할 수 있는지 확인할 수 있습니다.

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

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

사전 조건

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

  • 앱 클라이언트가 포함된 사용자 풀. 자세한 내용은 사용자 풀 시작하기 단원을 참조하십시오.

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

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

    참고

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

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

    참고

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

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

  • Amazon CloudFront 배포를 업데이트할 수 있는 권한입니다. 의 사용자에게 다음 IAM 정책 설명을 연결하여 연결할 수 있습니다 AWS 계정.

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

    의 작업 권한 부여에 대한 자세한 내용은 의 자격 증명 기반 정책( 정책) 사용을 CloudFront참조하세요. 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. 사용자 지정 도메인 에 Amazon Cognito 에 사용할 도메인URL의 를 입력합니다. Amazon Cognito 도메인 이름에는 소문자, 숫자, 하이픈(-)만 사용할 수 있습니다. 첫 번째나 마지막 자리에 하이픈을 사용해서는 안 됩니다. 마침표로 하위 도메인 이름을 구분하세요.

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

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

  8. 생성(Create)을 선택합니다.

  9. Amazon Cognito가 [앱 통합(App integration)] 탭으로 돌아갑니다. 도메인의 에 별칭 레코드 생성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에 퍼블릭 호스팅 영역이 없는 경우 루트가 사용자 지정 도메인의 상위인 퍼블릭 호스팅 영역을 생성합니다. 자세한 내용은 Amazon Route 53 개발자 안내서퍼블릭 호스팅 영역 생성을 참조하세요.

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

    2. 예를 들어 상위 도메인을 입력합니다.auth.example.com사용자 지정 도메인의 , 예: myapp.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.

    • 별칭 : 활성화하지 마세요.

    • : 선택한 대상을 입력합니다. 이 레코드는 로 확인되어야 하지만 레코드의 값은 Amazon Cognito 에 중요하지 않습니다.

    • TTL: 기본 설정으로 를 설정TTL하거나 기본값으로 그대로 둡니다.

    • 라우팅 정책 : 단순 라우팅을 선택합니다.

  5. 레코드 생성을 선택합니다. 다음은 도메인의 예제 레코드입니다.example.com:

    example.com. 60 IN A 198.51.100.1

    참고

    Amazon Cognito는 프로덕션 도메인의 우발적 하이재킹으로부터 보호하기 위해 사용자 지정 도메인의 상위 도메인에 대한 DNS 레코드가 있는지 확인합니다. 상위 도메인에 대한 DNS 레코드가 없는 경우 사용자 지정 도메인 설정을 시도할 때 Amazon Cognito가 오류를 반환합니다. 권한 시작(SOA) 레코드는 상위 도메인 검증을 위한 충분한 DNS 레코드가 아닙니다.

  6. 다음 속성을 사용하여 사용자 지정 도메인에 대한 다른 DNS 레코드를 추가합니다.

    • 레코드 이름 : 사용자 지정 도메인 접두사, 예를 들어 auth에 대한 레코드 생성auth.example.com.

    • 레코드 유형: A.

    • 별칭 : 활성화.

    • 트래픽을 로 라우팅: 별칭을 Cloudfront 배포로 선택합니다. 와 같이 이전에 기록한 별칭 대상을 입력합니다123example.cloudfront.net.

    • 라우팅 정책 : 단순 라우팅을 선택합니다.

  7. 레코드 생성을 선택합니다.

    참고

    새 레코드가 모든 Route 53 DNS 서버로 전파되는 데 약 60초가 걸릴 수 있습니다. Route 53 GetChange API 메서드를 사용하여 변경 사항이 전파되었는지 확인할 수 있습니다.

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

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

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

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

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

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

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

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

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

시작하기 전 준비 사항

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

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

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

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

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

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

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

  5. 작업 , ACM 인증서 편집 을 선택합니다.

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

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

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