AWS ALB 와 Cognito를 활용한 사용자 인증 기능 구현

김대유·2023년 4월 11일
2

AWS

목록 보기
3/3
post-thumbnail

운영 중인 웹 및 모바일에 사용자 인증 기능을 제공하기 위해서는 사용자에대한 User DataBase 관리, 사용자 인증, 권한 부여 등 여러가지 복잡하고 번거로운 작업등을 진행 해줘야합니다.

이러한 복잡한 일련의 작업을 쉽게 구현 할 수 있도록 AWS에서는 Cognito서비스를 제공하고 있습니다.

이번 포스팅에서는 ALB 와 Cognito를 활용하여 별도의 인증 기능을 구현하지않고도 운영중인 사이트에 user/password 기반의 사용자 인증 기능을 적용하는 방법에 대해서 알아 보도록 하겠습니다.

1. 사용자 풀 생성

1) 로그인 환경 구성

  • 사용자 이름(ID) 또는 E-mail로 로그인을 허용하기 위해서 사용자 이름과 이메일 항목을 선택 합니다.

2) 보안 요구 사항 구성

  • MFA 인증 비활성화를 하고(필요시 활성화) 관리자가 직접 계정 관리를 해주기 위하여 셀프 서비스 계정 복구 비활성화를 해줍니다.
  • 사용자가 직접 패스워드를 찾고 변경하게 하려면 셀프 서비스 계정 복구를 활성화 해줍니다.

3) 가입환경 구성

  • 관리자만 사용자 계정을 생성하기 위해서 셀프 등록을 비활성화 합니다.
  • Cognito를 통해서 별도의 사용자 계정 검증할 필요가 없으므로 해당 항목을 비활성화 힙니다.

4) 메시지 전송 구성

  • Cognito가 SES를 통해서 메일을 전송할 수 있게 설정합니다.

5) 앱 통합 구성

  • Cognito 호스팅 UI를 사용 합니다.
  • 사용자 이름(ID)와 이메일(선택사항)을 입력합니다.
  • 사용자 인증 후 콜백 될 URL 도메인(Custom or ALB) + /oauth2/idpresponse 입력합니다.

2. 사용자 생성

1) 사용자 계정 생성

  • 로그인 시 사용할 계정을 생성합니다.

3. ALB 설정

1) 인증 작업 추가

  • ALB의 리스너 설정에서 인증 작업을 추가 합니다.

2) 사용자 풀 정보 입력

  • Cognito 사용자 풀 정보를 입력합니다.

4. 로그인 인증 확인

1) 사용자 도메인 또는 ALB 주소로 접속

  • 사용자 도메인(https://www.example.com) 또는 ALB의 주소로 접속하여 인증 기능이 정상적으로 작동 하는지 확인 합니다.

# 적용 사례

  • kibana 로그인 구성

ELK의 구성 요소 중 하나인 Kibana를 EC2에 설치 해서 사용해서 사용하는 경우 별도의 라이센스(X-pack)를 구매하지 않으면 로그인 기능을 구현하지 못 하였습니다.
하지만 위 아키텍처를 활용하면 별도의 라이센스 구매 없이 kibana의 로그인 기능을 손 쉽게 구현 할 수 있습니다.

0개의 댓글