본문 바로가기
[AWS-SM]/Cognito

[중요] Secure your API Gateway with Amazon Cognito User Pools

by SAMSUNG Metaverse-Cloud 2023. 2. 5.
728x90

 

 

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 

 

728x90

댓글