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

4분 분량
0

Application Load Balancer에서 Amazon Cognito 인증을 사용하고 싶은데 사용자 풀이 다른 AWS 계정에 있습니다. 따라서 인증에 교차 계정 사용자 풀을 사용하고 싶습니다.

간략한 설명

사용자 인증을 위해 Application Load Balancer를 구성할 때는 기본적으로 동일한 계정의 Amazon Cognito 사용자 풀만 지원됩니다. 그러나 이 문제는 교차 계정 사용자 풀을 OpenID Connect(OIDC) ID 제공업체(idP)로 설정하여 해결할 수 있습니다.

다음 지침에 따라 한 계정(“계정 B”)의 Application Load Balancer를 다른 계정(“계정 A”)의 사용자 풀을 통해 인증하도록 구성하세요.

해결 방법

Application Load Balancer 생성

아직 생성하지 않은 경우 HTTPS 리스너를 사용하여 계정 B에서 Application Load Balancer를 생성합니다.
참고: 다음 authenticate-cognitoauthenticate-oidc 규칙 작업 유형은 HTTPS 리스너에서만 지원됩니다.

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

  1. 계정 B에서 Amazon Elastic Compute Cloud(Amazon EC2) 콘솔의 로드 밸런서 페이지를 엽니다.
  2. Application Load Balancer를 선택합니다.
  3. 설명 탭에서 로드 밸런서의 DNS 이름을 복사합니다. 나중에 로드 밸런서의 엔드포인트 URL에 액세스하고 테스트하는 데 이 정보가 필요합니다.

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

  1. 계정 A에서 앱 클라이언트를 사용하여 Amazon Cognito 사용자 풀을 생성합니다. 앱 클라이언트의 경우 클라이언트 보안키 생성 옵션을 선택해야 합니다. 자세한 내용은 Amazon Cognito 사용 준비를 참조하세요.
    참고: 사용자 풀을 생성하는 동안 프로덕션에 사용할 설정을 구성합니다. 사용자 풀을 생성한 후에는 일부 사용자 풀 설정을 변경할 수 없습니다. 예를 들어 사용자 등록에 필요한 표준 속성은 변경할 수 없습니다.

  2. Amazon Cognito 콘솔에서 사용자 풀의 사용자 풀 개요 섹션에서 사용자 풀 ID를 기록해 둡니다. 나중에 사용자 풀의 OIDC 구성 세부 정보를 수집하는 데 이 정보가 필요합니다.

  3. 앱 통합탭에서 도메인으로 이동합니다. 사용자 풀의 Amazon Cognito 도메인 이름을 추가합니다. 이는 Cognito 호스트 UI에 필요한 고유한 도메인 접두사입니다.

  4. 앱 통합 탭에서 앱 클라이언트 목록으로 이동합니다.

  5. 업데이트하려는 앱 클라이언트를 선택합니다. 앱 클라이언트 페이지에서 다음 단계를 완료합니다.
    클라이언트 보안키 표시를 켭니다.
    앱 클라이언트 ID앱 클라이언트 보안키를 복사합니다. 사용자 인증을 위해 Application Load Balancer를 구성하는 데 해당 값이 필요합니다.

  6. 앱 클라이언트 페이지에서 호스트 UI 섹션으로 이동한 후 편집을 클릭합니다.

  7. 호스트 UI 편집 페이지에서 다음 단계를 완료합니다.
    자격 증명 공급자에서 Cognito 사용자 풀을 선택합니다.
    콜백 URL 추가https://loadBalancerDNSName/oauth2/idpresponse를 입력합니다. CNAME 레코드를 사용하여 사용자 지정 도메인을 로드 밸런서에 매핑한 경우 https://CNAME/oauth2/idpresponse를 입력합니다.
    참고: loadBalancerDNSName을 Amazon EC2 콘솔에서 복사한 DNS 이름으로 바꾸세요. CNAME 레코드를 사용하는 경우 CNAME을 사용자 지정 도메인으로 바꾸세요. URL 값이 소문자인지 확인하세요. 그렇지 않으면 오류가 발생합니다.
    로그아웃 URL 추가에 로그아웃 후 사용자를 리디렉션할 URL을 입력합니다. 테스트를 위해 **https://example.com/**과 같은 유효한 URL을 입력하세요.

    OAuth 2.0 grant 유형에서 권한 부여 코드 부여를 선택합니다.
    OpenID Connect 범위에서 Openid를 선택합니다. openid 범위는 ID 토큰을 반환합니다.
    사용 사례에 따라 필요한 OAuth 범위를 추가로 입력합니다.

  8. 변경 사항 저장을 선택합니다.

자세한 내용은 사용자 풀 앱 클라이언트 구성사용자 풀에 OIDC 자격 증명 공급자 추가를 참조하세요.

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

사용자 풀의 OIDC 구성 엔드포인트에 액세스합니다. Application Load Balancer에서 사용자 풀을 OIDC IdP로 설정하려면 구성 세부 정보가 필요합니다.

  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 구성

  1. 계정 B의 Amazon EC2 콘솔 로드 밸런서 페이지에서 Application Load Balancer를 선택합니다.
  2. 리스너탭의 규칙에서 HTTPS 리스너의 규칙 보기/편집을 선택합니다.
  3. 메뉴 모음에서 연필 아이콘(규칙 편집)을 선택합니다.
  4. HTTPS 리스너의 기본 규칙 옆에 있는 연필 아이콘(규칙 편집)을 선택합니다.
  5. THEN에서 작업 추가를 선택한 후 다음 단계를 완료합니다.
    인증을 선택합니다.
    인증에서 OIDC를 선택합니다.
    발행자에 사용자 풀 OIDC 구성의 발행자 값을 입력합니다.
    인증 엔드포인트authorization_endpoint 값을 입력합니다.
    토큰 엔드포인트token_endpoint 값을 입력합니다.
    사용자 정보 엔드포인트userinfo_endpoint 값을 입력합니다.
    클라이언트 ID에 앞서 Amazon Cognito 콘솔에서 복사해 둔 앱 클라이언트 ID를 입력합니다.
    클라이언트 보안키에 앞서 복사해 둔 앱 클라이언트 보안키를 입력합니다.
    고급 설정을 펼칩니다.
    범위에 사용자 풀 앱 클라이언트에 대해 구성한 범위를 공백으로 구분하여 입력합니다. 사용자 풀 OIDC 구성에서 범위를 확인하세요. 예를 들어 구성의 scopes_supported 값이**["openid","email","phone","profile"]인 경우openid email phone profile**을 입력합니다.
    확인 표시 아이콘을 선택합니다.
  6. THEN에서 작업 추가를 선택한 후 다음 단계를 완료합니다.
    참고: 작업 추가를 선택할 수 없는 경우 현재 라우팅 작업(예: 다음으로 리디렉션)을 삭제하세요. 그런 다음 다시 시도해 보세요.
    다음으로 전달을 선택합니다.
    다음으로 전달에서 하나 이상의 대상 그룹을 선택합니다.
    (선택 사항) 그룹 수준 고정성을 구성합니다.
    확인 표시 아이콘을 선택합니다.
  7. 업데이트를 선택합니다. HTTPS 리스너 기본 규칙이 업데이트됩니다.

자세한 내용은 규칙 편집을 참조하세요.

설정 테스트

브라우저에 다음 URL 중 하나를 입력합니다.

  • https://loadBalancerDNSName/
  • https://CNAME/

참고: loadBalancerDNSName을 앞서 Amazon EC2 콘솔에서 복사해 둔 DNS 이름으로 바꾸세요. 또는 CNAME을 사용자 지정 도메인으로 바꾸세요.

사용자 풀의 Amazon Cognito 호스트 웹 UI로 리디렉션됩니다. 사용자가 여기에서 로그인한 후 사용자 풀의 인증을 받으면 대상으로 리디렉션됩니다.

관련 정보

Application Load Balancer 시작하기

Application Load Balancer에 내장된 인증으로 로그인 간소화

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

Application Load Balancer를 위한 리스너 규칙

OIDC 사용자 풀 IdP 인증 흐름

AWS 공식
AWS 공식업데이트됨 8달 전
댓글 없음

관련 콘텐츠