반응형
[시나리오]
Cognito와 ELB를 연결하여 사용자 인증하는 실습입니다.
[다음 글에서 구현할 시나리오]
- 회사가 여러 사용자 그룹(일반 사용자, 관리자 등)을 대상으로 웹 애플리케이션을 운영하고 있습니다.
- 애플리케이션은 Elastic Load Balancer(ELB) 뒤에서 실행되는 EC2 인스턴스나 컨테이너 서비스로 구성됩니다.
- 사용자는 로그인 후 개인화된 서비스를 이용하며, 인증되지 않은 사용자는 접근이 차단됩니다.
1. 준비하기
- ELB
- Scheme: Internet Facing
- Listener 설정 : HTTPS - Target Group
- Target Groups : EC2 2개
- Port: 80 - EC2
- httpd.service 설치 및 실행
- Security Group: HTTP(80) 0.0.0.0/0 open
2. Cognito User Pool 생성
- 'AWS Console Login > Amazon Cognito > User pools > Create User Pool 클릭'을 진행한다.
- 이번 실습을 위해 Traditional web application으로 application 설정을 해준다.
- 로그인(sign-in)을 위한 옵션으로 email을 설정해준다.
- 그 외의 값은 이번 실습에서는 설정하지 않았다.
- Create를 클릭하면 User pool에 App Client도 같이 생성이 된다.
3. Cognito User Pool App Client > Login Pages 설정
- Edit 클릭 후Allowed callback URLs 부분을 아래 양식으로 수정한다.
https://<ELB URL>/oauth2/idpresponse - AWS ALB에서 Cognito와 OIDC 인증을 처리하기 위해 필수적으로 사용되는 엔드포인트입니다. 이는 ALB가 Cognito의 인증 응답을 처리하고 사용자 요청을 백엔드로 안전하게 전달하기 위해 필요한 구조적 요소입니다. [참고]
4. ELB > Listener Rule 설정
- Edit Action 클릭하여 편집창으로 이동한다.
- Authentication > Use OpenID or Amazon Cogniton 클릭한 후 Cognito User Pool을 등록해준다.
** HTTPS 프로토콜이 아니면 Use OpenID or Amazon Cogniton 옵션은 보이지 않는다. - Advanced authentication settings, Extra request parameters - optional 설정은 기본 값으로 뒀다.
- 그 외 설정은 ELB 관련 내용이라 자세하게 다루지 않았다. 기호에 맞게 설정하면 된다.
5. User 생성
- Amazon Cognito > User Pool > User Management > User 경로로 이동한다.
- Create User를 클릭한 후 아래와 같이 간단하게 User 생성을 한다.
6. 테스트
- ELB DNS로 웹 브라우저에서 접근을 하면 아래와 같이 정상적으로 Cognito Login Page가 뜨는 것을 확인 할 수 있다.
반응형
'AWS > Cognito' 카테고리의 다른 글
Flask AWS Cognito S3 파일 업로드 | 안전한 OAuth2 인증 및 보안 구축 방법 (0) | 2025.02.09 |
---|---|
Flask와 Amazon Cognito를 활용한 OAuth 2.0 로그인 인증 구현하기 (0) | 2025.01.27 |
Cognito & ELB 실습(2) : Amazon ELB와 Cognito로 안전하게 S3 연결하기 (2) | 2025.01.07 |
Cognito란? (1) | 2024.12.22 |