내용으로 건너뛰기

다른 AWS 계정의 Amazon Cognito 사용자 풀을 통해 사용자를 인증하도록 Application Load Balancer를 설정하려면 어떻게 해야 합니까?

3분 분량
0

Amazon Cognito 사용자 풀을 통해 Application Load Balancer에 Amazon Cognito 인증을 사용하고 싶습니다. 하지만 사용자 풀이 다른 AWS 계정에 있습니다.

해결 방법

다음 해결 방법에서 계정 B는 Application Load Balancer를 소유한 계정이고 계정 A는 사용자 풀을 소유한 계정입니다.

Application Load Balancer 생성

Application Load Balancer가 이미 있는 경우에는 다음 섹션을 진행하십시오.

Application Load Balancer가 없는 경우에는 HTTPS 리스너를 사용하여 Application Load Balancer를 생성하십시오.

참고: HTTPS 리스너만 authenticate-cognitoauthenticate-oidc 규칙 작업 유형을 지원합니다.

계정 B에서 Application Load Balancer DNS 이름 가져오기

계정 B에서 다음 단계를 완료하십시오.

  1. Amazon Elastic Compute Cloud(Amazon EC2) 콘솔을 엽니다.
  2. 탐색 창에서 로드 밸런서를 선택합니다.
  3. Application Load Balancer를 선택합니다.
  4. 설명 탭에서 이후 단계에서 사용할 로드 밸런서의 DNS 이름을 기록해 둡니다.

계정 A에서 사용자 풀 생성 및 구성

다른 계정에 이미 사용자 풀이 있는 경우 다음 섹션을 진행하십시오.

사용자 풀이 없는 경우 계정 A에서 다음 단계를 완료하십시오.

  1. 앱 클라이언트를 사용하여 Amazon Cognito 사용자 풀을 생성합니다.
    참고: 앱 클라이언트를 생성할 때는 기존 웹 앱, 단일 페이지 앱, 모바일 앱, M2M 인증이라는 네 가지 옵션 중 하나를 선택할 수 있습니다. 기존 웹 앱 또는 M2M 인증을 선택하면 클라이언트 암호가 있는 앱 클라이언트가 생성됩니다.
  2. Amazon Cognito 콘솔을 엽니다.
  3. 사용자 풀의 사용자 풀 개요 섹션에서 이후 단계에서 사용할 사용자 풀 ID를 기록해 둡니다.
  4. 브랜딩 탭에서 도메인을 선택합니다. 사용자 풀의 Amazon Cognito 도메인 이름을 추가합니다. 도메인 이름은 Cognito 호스팅 UI에 필요한 고유한 도메인 접두사입니다.
  5. 애플리케이션에서 앱 클라이언트를 선택합니다.
  6. 업데이트하려는 앱 클라이언트를 선택합니다.
  7. 앱 클라이언트 페이지에서 다음 단계를 완료합니다.
    클라이언트 보안키 표시를 켭니다.
    이후 단계에서 사용할 앱 클라이언트 ID와 앱 클라이언트 암호를 기록해 둡니다.
  8. 호스팅 UI에서 https://load-balancer-dns-name/oauth2/idpresponsehttps://custom-domain-name/oauth2/idpresponse 콜백 URL을 추가합니다.
  9. OAuth 2.0 권한 부여 유형에서 권한 부여 코드 부여를 선택합니다.
  10. OAuth 2.0 범위에서 openid를 선택합니다.
  11. 변경 사항 저장을 선택합니다.

사용자 풀 OIDC 구성 세부 정보 가져오기

사용자 풀을 Application Load Balancer의 OpenID Connect(OIDC) ID 제공업체(IdP)로 설정하려면 OIDC 구성 엔드포인트 세부 정보를 가져와야 합니다.

구성 세부 정보를 가져오려면 다음 단계를 완료하십시오.

  1. 브라우저에 다음 URL을 입력합니다. https://cognito-idp.region.amazonaws.com/userPoolId/.well-known/openid-configuration
    참고: region을 사용자 풀의 AWS 리전(예: us-east-1)으로 바꾸고 userPoolId를 사용자 풀의 ID로 바꾸십시오.
  2. 브라우저에 표시되는 JSON 응답에서 다음 필드의 값을 기록해 둡니다.
    authorization_endpoint
    issuer
    scopes_supported
    token_endpoint
    userinfo_endpoint

계정 B에서 Application Load Balancer 구성

계정 B에서 다음 단계를 완료하십시오.

  1. Amazon EC2 콘솔을 엽니다.
  2. Application Load Balancer를 선택합니다.
  3. 리스너 및 규칙 탭에서 HTTPS:443 규칙을 선택합니다.
  4. 규칙 관리에서 규칙 편집을 선택합니다.
  5. 기본 규칙을 선택합니다.
  6. 작업에서 규칙 편집을 선택합니다.
  7. 기본 작업에서 사용자 인증을 선택합니다.
    참고:****OIDC ID 제공업체가 기본적으로 선택됩니다.
  8. 기록해 둔 값을 다음 필드에 입력합니다.
    발행자에 발행자 값을 입력합니다.
    인증 엔드포인트에 authorization_endpoint 값을 입력합니다.
    토큰 엔드포인트에 token_endpoint 값을 입력합니다.
    사용자 정보 엔드포인트에 userinfo_endpoint 값을 입력합니다.
    클라이언트 ID에 앱 클라이언트 ID를 입력합니다.
    클라이언트 암호에 앱 클라이언트 암호를 입력합니다.
  9. 저장을 선택합니다.

설정 테스트

다음 단계를 완료합니다.

  1. 브라우저에서 Application Load Balancer의 URL을 입력합니다.
  2. Cognito 호스팅 UI로 리디렉션되었는지 확인합니다.
  3. 유효한 사용자 자격 증명으로 로그인합니다.

참고: 오류를 피하려면 모든 URL에 소문자를 사용해야 합니다.

관련 정보

Simplify login with Application Load Balancer built-in authentication

Application Load Balancer를 사용하여 사용자 인증

Application Load Balancer의 리스너 규칙

OIDC 사용자 풀 IdP 인증 흐름

AWS 공식업데이트됨 5달 전