Amazon Cognito 사용자 풀로 API 게이트웨이 보호
## 목적 : Cognito 사용자만 API게이트웨이 접속 가능
## 사용자 풀 생성




- 기본값으로 사용자 풀 생성

- APP Clients 생성



- APP Client id 생성

## App integration --> App client settings
- Save changes 클릭


- 먼저 도메인네임 설정 필요

## App integration --> Domain Name 지정 필요
- Save changes 클릭

- 사용자 이름과 비밀번호 묻는 로그인 페이지 생성

## App integration --> App client settings
- Launch Hosted UI 클릭

- 기본 로그인 페이지 생성

- 필요시 UI Customization 활용

## 사용자 가입 화면


## 사용자 로그인 성공시 화면


- Cognito --> API게이트웨이 요청을 승인하는 Json 웹 토큰 역할을 함 (JWT)

---------------------- Cognito 설정 완료 ----------------------------------------------------
====================================================================================
======== 람다와 API 게이트웨이 설정 필요 ===========================
## API 게이트웨이 생성
- Rest API 선택


- DemoApi 생성

- Transactions 리소스 생성

- Create Method 클릭


- 람다 Function 연동 필요

## 람다 생성 (기본값 생성)


- Create Functions



## 다시 API 게이트웨이로 이동 (람다 선택)



- Test 클릭시 정상 확인

- 배포를 위해 Deploy API 클릭



## API 게이트웨이 호출 성공 (웹 접속 테스트)


=======================================================================================

## API (DemoApi) --> Authorizers 클릭



## Cognito 로 이동
- Launch Hosted UI 클릭


- code ==> token 으로 변경 (웹페이지 정상 리다이렉트)




- Access 토큰을 API게이트웨이에서 활용 (실패)

- ID 토큰을 API게이트웨이에서 활용

## API게이트웨이로 이동
- Test 클릭 (ID토큰으로 조회 성공)



## API게이트웨이 Stage 선택
1) 아직까지 Cognito 사용자 풀만 사용하도록 제한 안함


2) Cognito 사용자 풀만 사용하도록 제한


: Authorization 설정
: OAuth Scopes 설정

- 배포를 위해 Deploy API 클릭


- 제한 정책 적용완료

## Postman 으로 검증

- 토큰 제공 필요 (ID 토큰 사용으로 성공)


https://www.youtube.com/watch?v=oFSU6rhFETk
'[AWS-SM] > Cognito' 카테고리의 다른 글
[중요][AWS] Authenticate users using an AWS ALB and Cognito to access API deployed (0) | 2023.02.15 |
---|---|
OAuth2란? (0) | 2023.02.05 |
[AWS] Cognito 회원 가입 및 로그인 기능 구현하기(feat. amazon-cognito-identity-js, TypeScript) (1) | 2023.02.04 |
[AWS] Cognito User Pool 생성하기 (0) | 2023.02.04 |
[AWS] Cognito란? (0) | 2023.02.04 |