Amazon Cognito로 최종 사용자 인증하기
AWS에서 애플리케이션 배포하기
Dunieski Otano
Amazon Web Services Solutions Architect
로그인을 직접 구축해야 할까요?
새로운 앱에는 완전한 회원가입과 로그인 기능이 필요합니다
팀은 인증 기능을 처음부터 직접 구축하려 합니다
Cognito는 이미 이를 안전하게 처리합니다
사용자 풀 vs 자격 증명 풀
사용자 풀(User pool)
: 최종 사용자를 관리하는 디렉터리
회원가입과 로그인을 처리하고
토큰
을 발급합니다
자격 증명 풀(Identity pool)
: 로그인을
AWS 자격 증명
으로 교환합니다
두 가지를 함께 사용: 먼저 인증하고 AWS 액세스를 권한 부여합니다
Cognito의 세 가지 토큰
ID 토큰
: 사용자가 누구인지 나타냅니다(ID 클레임)
액세스 토큰
: 사용자가 호출할 수 있는 작업을 나타냅니다
리프레시 토큰
: 재로그인 없이 새 토큰을 발급받습니다
세 가지 모두 디코딩하고 검증할 수 있는
JWT
입니다
페더레이션 ID
페더레이션(Federation)
: 외부 ID 공급자로 로그인합니다
소셜: Google, Facebook, Apple
엔터프라이즈:
SAML
,
OIDC
공급자
Cognito가 신뢰 관계를 중개하고 자체 토큰을 발급합니다
API Gateway 권한 부여자로서의 Cognito
API Gateway는
Cognito 권한 부여자
를 사용할 수 있습니다
클라이언트는 토큰을
Authorization 헤더
에 담아 전송합니다
API Gateway는 백엔드 실행 전에 토큰을 검증합니다
유효하지 않거나 만료된 토큰은
에지에서 거부
됩니다
일반적인 로그인-API 호출 흐름
사용자가
사용자 풀
에 로그인합니다
ID, 액세스, 리프레시 토큰을 받습니다
클라이언트가
액세스 토큰
으로 API Gateway를 호출합니다
Cognito 권한 부여자가 검증한 후 백엔드가 실행됩니다
흔한 Cognito 실수
액세스 토큰이 필요한 곳에
ID 토큰
을 전송
사용자 풀과 자격 증명 풀을 혼동
사용자 풀만으로
AWS 액세스
를 권한 부여하려는 시도
클라이언트에 토큰을 안전하지 않게 저장
연습해 봅시다!
AWS에서 애플리케이션 배포하기
Preparing Video For Download...