Facebook 및 Amazon Cognito를 자격 증명 공급자로 사용하여 Application Load Balancer 인증을 설정하려면 어떻게 해야 합니까?

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

Facebook 및 Amazon Cognito를 자격 증명 공급자(IdP)로 사용하여 Application Load Balancer 인증을 설정하려면 어떻게 해야 합니까?

간략한 설명

Application Load Balancer 인증을 사용하면 Application Load Balancer는 인증된 클라이언트인지 확인하거나 인증하라는 메시지를 클라이언트에 표시합니다. 백엔드 대상은 사용자 프로필 및 결제와 같은 다른 비즈니스 로직 또는 서비스만 실행하게 됩니다. Application Load Balancer는 클라이언트 액세스를 거부하거나 허용하는 게이트키퍼입니다. 하지만 Application Load Balancer는 클라이언트 로그인 자격 증명을 저장하지 않으므로, 사용자를 관리하고 인증하도록 Amazon Cognito 및 Facebook을 구성할 수 있습니다.

해결 방법

Facebook 애플리케이션 설정

  1. Facebook 사이트에서 Facebook for Developers로 이동합니다.
  2. 오른쪽 상단에서 [My Apps(내 앱)]를 선택한 다음 [Add New App(새 앱 추가)]을 선택합니다.
  3. [Display name(표시 이름)]을 지정한 다음 [Create App ID(앱 ID 생성)]를 선택합니다.
  4. [Facebook Login(Facebook 로그인)]을 선택합니다.
  5. [Web(www)(웹(www))]을 선택합니다.
  6. 사이트의 도메인 이름을 지정합니다. 이 이름은 Application Load Balancer의 DNS에 별칭을 지정하는 데 사용하는 이름과 동일합니다.
  7. [Next(다음)]를 선택합니다.
  8. JavaScript SDK를 건너뛰고 [Next(다음)]를 선택합니다.
  9. [Next(다음)]를 선택합니다.

마법사의 5단계까지 진행했으면 계속해서 Amazon Cognito를 설정합니다. Facebook 애플리케이션을 설정할 때 완료해야 할 마지막 단계가 하나 있지만 Amazon Cognito를 먼저 설정해야 합니다.

인증을 위해 Application Load Balancer를 설정한 다음, Amazon Cognito를 IdP/IdP 집계자로 설정

  1. Amazon Elastic Compute Cloud(Amazon EC2) 콘솔을 엽니다.
  2. Application Load Balancer를 생성합니다.
  3. 탐색 창의 [로드 밸런싱]에서 [로드 밸런서]를 선택합니다.
  4. 2단계에서 생성한 Application Load Balancer를 선택합니다.
  5. [리스너], [리스너 추가]를 차례로 선택합니다.
  6. [HTTPS: 443](또는 HTTPS 프로토콜이 구성된 포트)을 선택합니다.
  7. [작업]에서 [인증]을 선택합니다.
  8. [Amazon Cognito]가 선택된 상태로 둡니다.
  9. [Cognito 사용자 풀]에서 [새로 생성]을 선택합니다.
  10. [소셜 IDP]에서 [Facebook]을 선택합니다.
  11. Facebook 사이트에서 Facebook for Developers로 이동합니다.
  12. 이 절차의 Facebook 애플리케이션 설정 섹션에서 생성한 애플리케이션을 선택합니다.
  13. [설정]을 선택한 다음 [기본]을 선택합니다.
  14. [앱 ID]를 복사합니다.
  15. [표시]를 선택한 다음 Facebook 암호를 입력하여 앱 보안 암호를 선택합니다.
  16. Amazon EC2 콘솔에서 Amazon Cognito 설정 페이지로 돌아갑니다. 그런 다음 앱 ID를 붙여 넣고 앱 보안 암호를 입력합니다.
  17. 인증 범위public_profile을 입력합니다.
  18. [도메인 접두사]에서 Amazon Cognito 리전 DNS 서비스에 추가할 고유한 이름을 선택합니다. 예를 들어 도메인 접두사로 "abc"를 지정하면 FQDN(정규화된 도메인 이름)은 https://abc.auth.us-east-2.amazoncognito.com/입니다.
  19. [Cognito 사용자 풀 생성]을 선택합니다.
  20. 18단계에서 지정한 도메인 이름을 복사합니다.
  21. HTTPS 리스너에 다른 규칙을 추가합니다. [전달 대상:]을 선택한 다음 Application Load Balancer의 대상 그룹 이름을 지정합니다.
  22. [저장]을 선택합니다.

Facebook 애플리케이션 설정 완료

  1. Facebook 애플리케이션을 엽니다.
  2. [Facebook Login(Facebook 로그인)]을 선택한 다음 [Settings(설정)]를 선택합니다.
  3. Valid OAuth Redirect URIs(유효한 OAuth 리디렉션 URI)에 Amazon Cognito FQDN을 붙여 넣고 /oauth2/idpresponse 접미사를 추가합니다. 예를 들어 https://abc.auth.eu-west-1.amazoncognito.com/oauth2/idpresponse와 같습니다.
  4. [Save changes(변경 사항 저장)]를 선택합니다.
  5. [Settings(설정)], [Basics(기본)], [App domains(앱 도메인)]를 차례로 선택합니다.
  6. Application Load Balancer를 가리키는 도메인 이름을 추가합니다.
  7. [Save changes(변경 사항 저장)]를 선택합니다.

Amazon Cognito 설정 완료

  1. Amazon Cognito 콘솔을 엽니다.
  2. 구성한 사용자 풀을 선택합니다.
  3. [앱 클라이언트 설정]을 선택합니다.
  4. Route 53에서 Application Load Balancer를 가리키는 별칭 레코드를 생성한 도메인 이름을 [콜백 URL]에 지정한 다음, /oauth2/idpresponse 접미사를 추가합니다. 예를 들면 https://www.example.com/oauth2/idpresponse입니다.

중요: Facebook은 타사 애플리케이션입니다. 따라서 위의 구성 단계는 향후 변경될 수 있습니다. 최신 정보는 Facebook 사이트에서 Facebook 설명서를 참조하십시오.