Amazon Cognito 사용자 풀의 연동 기능을 지원하는 AD FS를 Amazon EC2 Windows 인스턴스에 설치하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 8월 31일

Amazon Cognito 사용자 풀에서 SAML 2.0(Security Assertion Markup Language 2.0) IdP(자격 증명 공급자)로 AD FS(Active Directory Federation Services)를 사용하고 싶습니다. Amazon Elastic Compute Cloud(Amazon EC2) Windows 인스턴스에서 AD FS를 설정하려면 어떻게 해야 합니까?

간략한 설명

EC2 Windows 인스턴스에서 서버 관리자를 사용하여 AD FS 서버 및 도메인 컨트롤러를 설정합니다.

해결 방법

시작하기 전에 AD FS를 Amazon Cognito 사용자 풀의 SAML 자격 증명 공급자로 설정하려면 어떻게 해야 합니까?의 지침을 참조하십시오. 이 문서의 설정을 완료하려면 앱 클라이언트가 포함된 Amazon Cognito 사용자 풀이 필요합니다.

또한 자신이 소유한 도메인 이름이 필요합니다. 도메인을 소유하지 않은 경우 Amazon Route 53 또는 다른 DNS(Domain Name System) 서비스를 통해 새 도메인을 등록할 수 있습니다.

EC2 Windows 인스턴스 구성 및 시작

  1. Amazon EC2 콘솔을 엽니다.
  2. 콘솔 대시보드에서 [인스턴스 시작(Launch Instance)]을 선택하여 [인스턴스 시작(Launch Instance)] 마법사를 시작합니다.
  3. [Amazon Machine Image(AMI) 선택하기(Choose an Amazon Machine Image (AMI))] 페이지에서 Windows Server용 AMI(예: Microsoft Windows Server 2016 Base AMI)를 선택합니다. 자세한 내용은 Windows AMI 찾기를 참조하십시오.
  4. [보안 그룹 구성(Configure Security Group)] 페이지에서 인스턴스에 대한 보안 그룹을 생성하고 보안 그룹에 다음 규칙을 추가합니다.
    유형: RDP
    소스: CIDR 표기법의 IP 주소(a.b.c.d/z) 또는 CIDR 블록
    참고: [소스(Source)]에 지정하는 IP 주소 또는 블록의 경우 허용되는 것으로 알려진 IP 주소 세트를 사용하는 것이 모범 사례입니다.
    유형: HTTP
    소스: Anywhere
    유형: HTTPS
    소스: Anywhere
    자세한 내용은 Windows 인스턴스용 Amazon EC2 보안 그룹보안 그룹에 규칙 추가를 참조하십시오.
  5. [인스턴스 시작 검토(Review Instance Launch)] 페이지에서 [시작(Launch)]을 선택합니다.
  6. [기존 키 페어 선택 또는 새 키 페어 생성(Select an existing key pair or create a new key pair)] 대화 상자에서 지침에 따라 기존 키 페어를 선택하거나 새 키 페어를 생성합니다. 자세한 내용은 Amazon EC2 키 페어 및 Linux 인스턴스를 참조하십시오.
    중요: 키 페어에 대한 프라이빗 키 .pem 파일을 저장합니다. EC2 Windows 인스턴스에 연결할 때 이 파일을 사용해야 합니다.
  7. [Launch Instances]를 선택합니다.

EC2 Windows 인스턴스에 탄력적 IP 주소 연결

  1. 아직 수행하지 않은 경우 AWS 계정에 탄력적 IP 주소를 할당합니다.
  2. 탄력적 IP 주소를 EC2 Windows 인스턴스에 연결하여 인스턴스에 대한 영구적인 퍼블릭 IP 주소가 유지되도록 합니다.

탄력적 IP 주소를 사용하여 도메인에 대한 레코드 생성

Active Directory Domain Services(AD DS)에 사용되는 도메인에는 탄력적 IP 주소를 값으로 사용하는 단일의 IPv4 주소 레코드가 있어야 합니다. 도메인에 대한 이 레코드는 EC2 Windows 인스턴스에 연결된 탄력적 IP 주소를 사용하여 생성됩니다.

자세한 내용은 Amazon Route 53 콘솔을 사용하여 레코드 생성을 참조하십시오.

EC2 Windows 인스턴스에 AD DS, 웹 서버(IIS) 및 AD FS 설치

  1. EC2 Windows 인스턴스에 연결합니다.
  2. Windows에서 [서버 관리자(Server Manager)]를 열고 [역할 및 기능 추가 마법사(Add Roles and Features Wizard)]를 사용하여 다음 역할을 설치합니다.
    Active Directory Domain Services
    Active Directory Federation Services
    웹 서버(IIS)

마법사 사용에 대한 자세한 내용은 Microsoft 문서 웹 사이트의 역할, 역할 서비스, 기능 설치 또는 제거를 참조하십시오.

EC2 Windows 인스턴스에서 AD DS 구성

  1. [서버 관리자(Server Manager)]에서 [Active Directory Domain Services 구성 마법사(Active Directory Domain Services Configuration Wizard)]를 사용하여 AD DS를 구성합니다. 자세한 내용은 Microsoft Docs 웹 사이트에서 Installing AD DS by using Server Manager를 참조하십시오. 9단계를 시작으로 To install AD DS by using Server Manager의 지침을 따릅니다.
    참고: 마법사의 [배포 구성(Deployment Configuration)] 페이지에서 도메인(예: example.com)을 입력합니다.
  2. 구성 설치가 완료되면 Windows에서 로그아웃에 대한 알림이 표시됩니다. 이는 예상된 동작입니다. 서버가 다시 시작될 때까지 잠시 기다린 후 다시 EC2 Windows 인스턴스에 연결합니다.

IIS에서 http 사이트 바인딩 구성

[서버 관리자(Server Manager)]에서 IIS를 사용하여 웹 사이트에 대한 http 사이트 바인딩을 편집합니다. 자세한 내용은 Microsoft Docs 웹 사이트에서 How to add binding information to a site를 참조하십시오.

중요: IIS에서 http 바인딩을 편집할 때 [호스트 이름(Host name)]에 사용자의 도메인 이름(예: example.com)을 입력합니다. 그러나 [IP 주소(모두 할당되지 않음)(IP address(All Unassigned))] 또는 [포트 (80)]는 변경하지 마십시오.

파일 다운로드를 허용하도록 EC2 Windows 인스턴스 구성

자세한 내용은 Internet Explorer를 사용하여 파일을 다운로드할 수 있도록 EC2 Windows 인스턴스를 구성하려면 어떻게 해야 합니까?를 참조하십시오.

도메인에 대한 디지털 인증서 등록

IIS 웹 사이트에 대한 HTTPS 바인딩을 수행하려면 SSL 서버 인증서가 필요합니다. 신뢰할 수 있는 타사 인증서 생성 도구를 다운로드하고 사용하여 도메인에 대한 타사 인증서를 요청합니다.

자세한 내용은 Microsoft Docs 웹 사이트에서 Choosing a Certificate를 참조하십시오.

(선택 사항) IIS에서 HTTPS 사이트 바인딩 구성

사용한 인증서 생성 도구가 IIS의 https 사이트 바인딩을 자동으로 추가하지 않는 경우 이전에 http에 대해 수행한 것과 같은 방법으로 직접 사이트 바인딩을 추가합니다.

자세한 내용은 Microsoft Docs 웹 사이트에서 Create an SSL Binding을 참조하십시오.

EC2 Windows 인스턴스에서 AD FS 구성

서버 관리자에서 [AD FS 연동 서버 구성 마법사(AD FS Federation Server Configuration Wizard)]를 사용하여 EC2 Windows 인스턴스를 연동 서버로 구성합니다. 자세한 내용은 Microsoft Docs 웹 사이트에서 Windows Server 2008 또는 2008 R2 Domain Controllers를 참조하십시오.

참고: 마법사의 [서비스 계정 지정(Specify Service Account)] 페이지의 [사용자 또는 서비스 계정 선택(Select User or Service Account)] 대화 상자에서 이름이 Administrator인 사용자를 선택하고 원격 데스크톱에서 EC2 Windows 인스턴스에 연결할 때 사용한 암호를 입력합니다.

Active Directory 사용자 생성

Active Directory 사용자 및 컴퓨터 도구를 사용하여 Active Directory의 새 사용자를 생성합니다. 새 사용자를 [관리자(Administrators)] 그룹에 추가합니다.

자세한 내용은 Microsoft Docs 웹 사이트에서 Create a user and add to a group을 참조하십시오.

Active Directory 사용자의 이메일 주소 추가

  1. 새 사용자를 생성한 후 [Active Directory 사용자 및 컴퓨터(Active Directory Users and Computers)] 도구에서 [사용자(Users)]를 두 번 클릭하여 사용자 목록을 엽니다.
  2. 사용자 목록에서 생성한 사용자를 찾습니다. 마우스 오른쪽 버튼으로 사용자를 클릭하여 상황에 맞는 메뉴를 열고 [속성(Properties)]을 선택합니다.
  3. 사용자 이름에 대한 [속성(Properties)] 창에서 [이메일(E-mail)]에 사용자의 올바른 이메일 주소를 입력합니다. 이 이메일 주소는 나중에 SAML 어설션에 포함됩니다.

자세한 내용은 Microsoft Docs 웹 사이트에서 General Property Page를 참조하십시오.

AD FS에서 클레임 인식 신뢰 당사자 신뢰 추가

참고: 이 부분에서는 Amazon Cognito 콘솔에서 Amazon Cognito 사용자 풀의 정보를 확인해야 합니다. 자세한 내용은 사용자 풀에 SAML 자격 증명 공급자 추가를 참조하십시오.

[서버 관리자(Server Manager)]에서 [신뢰 당사자 신뢰 추가 마법사(Add Relying Party Trust Wizard)]를 사용하여 클레임 인식 신뢰 당사자 신뢰를 추가합니다.
마법사의 [URL 구성(Configure URL)] 페이지에서 [SAML 2.0 WebSSO 프로토콜 지원 활성화(Enable support for the SAML 2.0 WebSSO protocol)]을 선택합니다. [신뢰 당사자 SAML 2.0 SSO 서비스 URL(Relying party SAML 2.0 SSO service URL)]에 https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse 같은 형식의 어설션 소비자 엔드포인트 URL을 입력합니다.
참고: yourDomainPrefix를 Amazon Cognito 사용자 풀의 도메인 접두사로 바꿉니다. region을 사용자 풀의 AWS 리전(예: "us-east-1")으로 바꿉니다.

마법사의 [식별자 구성(Configure Identifiers)] 페이지에서 [신뢰 당사자 신뢰 식별자(Relying party trust identifier)]에 다음 URN을 입력합니다. urn:amazon:cognito:sp:yourUserPoolID
참고: yourUserPoolID를 Amazon Cognito 사용자 풀의 ID로 바꿉니다(예: "us-east-1_g2zxiEbac").

자세한 내용은 Microsoft Docs 웹 사이트에서 To create a claims aware Relying Party Trust manually를 참조하십시오.

AD FS에서 애플리케이션의 클레임 발행 정책 편집

생성한 신뢰에 LDAP 속성을 클레임으로 전송하는 규칙을 추가합니다. [Add Relying Party Trust Wizard] 마법사를 사용하여 규칙을 추가합니다. [Configure Rule] 페이지에서 다음을 수행합니다.

  • [Claim rule name]에 [Email]을 입력합니다.
  • [Attribute store]에 대해 [Active Directory]를 선택합니다.
  • [LDAP Attribute]에 대해 [E-Mail-Addresses]를 선택합니다.
  • [발신 클레임 유형(Outgoing Claim Type)]에 대해 [이메일 주소(E-Mail Address)]를 선택합니다.

자세한 내용은 Microsoft Docs 웹 사이트에서 To create a rule to send LDAP attributes as claims for a Relying Party Trust in Windows Server 2016을 참조하십시오.

참고: SAML 응답의 SAML 어셜션에서 Email ID 및 Name ID 클레임을 사용자의 이메일 주소로 표시하려면 Active Directory의 수신 이메일 주소를 발신 Name ID 클레임에 매핑합니다. 이 접근 방식을 사용하는 경우 LDAP 속성을 클레임으로 전송하는 규칙을 대신 생성합니다. 자세한 내용은 Microsoft Docs 웹 사이트에서 To create a rule to send LDAP attributes as claims for Windows Server 2012 R2를 참조하십시오.

서버의 SAML IdP 메타데이터 URL 테스트

브라우저에 다음 메타데이터 문서 엔드포인트 URL을 입력하려면 먼저 example.com을 사용자의 도메인으로 바꿉니다.

https://example.com/federationmetadata/2007-06/federationmetadata.xml

federationmetadata.xml 파일을 다운로드하라는 메시지가 표시되면 모든 항목이 올바르게 구성된 것입니다. 여기에서 사용한 URL을 기록하거나.xml 파일을 다운로드합니다. Amazon Cognito 콘솔에서 SAML을 구성하려면 URL 또는 파일이 필요합니다. 자세한 내용은 타사 SAML 자격 증명 공급자와 Amazon Cognito 사용자 풀 통합을 참조하십시오.

Amazon Cognito에서 AD FS를 SAML IdP로 구성

이 문서의 모든 단계를 완료한 후에는 Amazon Cognito 콘솔의 단계를 계속합니다. 자세한 내용은 AD FS를 Amazon Cognito 사용자 풀의 SAML 자격 증명 공급자로 설정하려면 어떻게 해야 합니까?를 참조하십시오.