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

4분 분량
0

사용자 인증을 위해 Application Load Balancer를 Amazon Cognito 사용자 풀과 통합하려고 합니다.

간략한 설명

사용자 관리 및 인증을 위해 Application Load BalancerAmazon Cognito 사용자 풀과 통합할 수 있습니다. Application Load Balancer와 Amazon Cognito 사용자 풀로 사용자 인증을 설정하려면 다음 단계를 완료하세요.

1.    Application Load Balancer를 생성하고 해당 DNS 이름을 가져옵니다.

2.    Amazon Cognito 사용자 풀을 생성하고 구성합니다.

3.    Application Load Balancer를 구성합니다.

4.    설정을 테스트합니다.

해결 방법

애플리케이션 사용자를 인증하도록 Application Load Balancer와 Amazon Cognito 사용자 풀을 구성하려면 다음 단계를 완료하세요.

Application Load Balancer 생성

참고: Application Load Balancer를 이미 구성한 경우 다음 섹션으로 진행하세요.

1.    인터넷 경계 Application Load Balancer를 생성합니다.

2.    Application Load Balancer에 대한 HTTPS 리스너를 생성합니다.

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

Application Load Balancer의 DNS 이름 가져오기

1.    Amazon Elastic Compute Cloud(Amazon EC2) 콘솔을 엽니다.

2.    탐색 창의 Load Balancing(로드 밸런싱)에서 Load Balancers(로드 밸런서)를 선택합니다.

3.    Application Load Balancer를 선택합니다.

4.    Description(설명) 탭에서 로드 밸런서의 DNS 이름을 복사하고 저장합니다. 이 DNS 이름은 테스트를 위해 Application Load Balancer의 엔드포인트 URL에 액세스하는 데 사용합니다.

Amazon Cognito 사용자 풀 생성 및 구성

1.    앱 클라이언트를 사용하여 Amazon Cognito 사용자 풀을 생성합니다. 앱 클라이언트를 구성할 때 Generate a client secret(클라이언트 보안키 생성) 라디오 단추를 선택합니다.

자세한 내용은 Amazon Cognito 사용 준비를 참조하세요.

참고: 사용자 풀을 생성할 때 프로덕션에 대해 원하는 설정을 구성하세요. 사용자 풀을 생성한 후에는 일부 사용자 풀 설정을 변경할 수 없습니다. 예를 들어 사용자 등록에 필요한 표준 속성을 변경할 수 없습니다.

2.    Amazon Cognito 콘솔을 엽니다.

3.    탐색 창에서 User pools(사용자 풀)를 선택하고 사용자 풀을 선택합니다. User pool ID(사용자 풀 ID)를 복사하고 저장합니다. 이 ID를 사용하여 사용자 인증을 위해 Application Load Balancer를 구성합니다.

4.    사용자 풀에 대한 App integration(앱 통합) 탭을 선택하고 사용자 풀에 대한 도메인을 추가합니다.

5.    사용자 풀의 App integration(앱 통합) 탭에서 App clients and analytics(앱 클라이언트 및 분석) 섹션으로 이동합니다. 그런 다음 앱 클라이언트를 선택합니다.

6.    앱 클라이언트 페이지의 App client information(앱 클라이언트 정보)에서 Client ID(클라이언트 ID)를 복사하고 저장합니다. 이 ID를 사용하여 사용자 인증을 위해 Application Load Balancer를 구성합니다.

7.    Hosted UI(호스팅 UI) 섹션에서 Edit(편집)를 선택합니다.

8.    Add callback URL(콜백 URL 추가)을 선택하고 https://loadBalancerDNSName/oauth2/idpresponse를 입력합니다.

또는

CNAME 레코드를 사용하여 Application Load Balancer에 사용자 지정 도메인을 매핑한 경우 https://CNAME/oauth2/idpresponse를 입력합니다.

참고: loadBalancerDNSName을 Amazon EC2 콘솔에서 복사한 DNS 이름으로 바꿉니다. CNAME 레코드를 사용하는 경우 CNAME을 사용자 지정 도메인으로 바꿉니다.

9.    Add sign-out URL(로그아웃 URL 추가)을 선택한 다음 사용자가 로그아웃한 후 사용자를 리디렉션할 URL을 입력합니다. **https://example.com/**과 같은 유효한 URL을 입력하여 테스트할 수 있습니다.

10.    Identity providers(자격 증명 공급자)에서 Cognito user pool(Cognito 사용자 풀) 확인란을 선택합니다.

11.    OAuth 2.0 grant types(OAuth 2.0 권한 부여 유형)에서 Authorization code grant(권한 부여 코드 부여) 확인란을 선택합니다. 요구 사항에 따라 추가 OAuth 권한 부여 유형을 선택합니다.

12.    OpenID Connect scopes(OpenID Connect 범위)에서 OpenID 확인란을 선택합니다. OpenID 범위는 ID 토큰을 반환합니다. 요구 사항에 따라 추가적인 OpenID Connect(OIDC) 범위를 선택합니다.

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

자세한 내용은 사용자 풀 앱 클라이언트 구성타사를 통한 사용자 풀 로그인 추가를 참조하세요.

Application Load Balancer를 구성합니다.

1.    Amazon EC2 콘솔을 엽니다.

2.    탐색 창의 Load Balancing(로드 밸런싱)에서 Load Balancers(로드 밸런서)를 선택합니다.

3.    Application Load Balancer를 선택합니다.

4.    Listeners(리스너) 탭에서 업데이트할 HTTPS 리스너 기본 규칙을 선택한 다음 Actions(작업), Manage rules(규칙 관리)를 선택합니다.

5.    다음 설정으로 HTTPS 리스너 기본 규칙을 편집합니다.

  • THEN에서 Add action(작업 추가)을 선택합니다.
  • Authenticate(인증)를 선택합니다.
  • Authenticate(인증)에서 Amazon Cognito를 선택합니다.
  • 사용자 풀의 경우 Amazon Cognito 콘솔에서 복사한 User pool ID(사용자 풀 ID)를 입력합니다.
  • 앱 클라이언트의 경우 Amazon Cognito 콘솔에서 복사한 Client ID(클라이언트 ID)를 입력합니다.
  • Advanced settings(고급 설정)를 확장합니다.
  • Scope(범위)에 사용자 풀 앱 클라이언트에 대해 구성한 범위를 공백으로 구분하여 입력합니다. 사용자 풀의 OIDC 구성에서 범위를 확인할 수 있습니다. 예를 들어 구성의 scopes_supported 값이 **["openid","email","phone","profile"]**이면 openid email phone profile을 입력합니다.
  • 확인 표시 아이콘을 선택합니다.

6.    다음 설정으로 HTTPS 리스너 기본 규칙을 계속 편집합니다.

  • THEN에서 Add action(작업 추가)을 선택합니다.
    참고: Add action(작업 추가)을 선택할 수 없는 경우 휴지통 아이콘을 사용하여 Redirect to(리디렉션 대상)와 같은 기존 라우팅 작업을 삭제합니다. 그리고 다시 시도합니다.
  • Forward to(다음으로 전달)를 선택합니다.
  • [전달 대상]에 하나 이상의 대상 그룹을 선택합니다.
  • (선택 사항) 그룹 수준 고정성을 구성합니다.
  • 확인 표시 아이콘을 선택합니다.

7.    Update(업데이트)를 선택하여 HTTPS 리스너 기본 규칙을 업데이트합니다.

설정 테스트

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

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

참고: loadBalancerDNSName을 Amazon EC2 콘솔에서 복사한 DNS 이름으로 바꿉니다. 또는 CNAME을 사용자 지정 도메인으로 바꿉니다. 사용자 풀의 Amazon Cognito 호스팅 웹 UI로 리디렉션됩니다. 사용자가 로그인하고 사용자 풀에서 사용자를 인증하면 사용자가 대상으로 리디렉션됩니다.


관련 정보

Application Load Balancer 시작하기

Simplify login with Application Load Balancer built-in authentication

Application Load Balancer를 위한 리스너 규칙

OIDC 사용자 풀 IdP 인증 흐름

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠