사용자 풀을 모두 생성했다면, 이제 백엔드에서는 Cognito의 관련 API를 호출할 수 있도록 설정해보자. 예를 들어 AWS SDK 또는 Cognito API를 사용하여 사용자 인증, 등록, 그룹 관리 등을 처리할 수 있다. 이때, 가장 먼저 클라이언트 보안키가 필요하다. 사용자 풀을 생성하는 법과 보안키를 확인하는 법은 지난 번 TIL에 정리되어 있다.
AWS Cognito 사용자 풀 생성, 앱클라이언트 보안키 확인_(2)Cognito + Spring Security 연동
이 과정은 지난 번에 미리 해두었다. 지난 번 TIL 내용에 보충 설명을 더해 아래 작성한다.
AWS Cognito+Spring Security 통합 설정_(1)- build.gradle에 아래 코드 추가
- 버전을 꼭 붙이자,,,,! 나는 버전을 안붙였다가 인식이 안되는 문제가 있어 한참 해맸다.
- application.yml에 아래 코드 추가
clientId,clientSecret,clientName은 풀을 생성하며 만든 앱클라이언트 정보를 의미한다. 콘솔창에서 앱클라이언트 정보를 확인해 입력하자.issuerUri는 Cognito ID 풀(Cognito Identity Pool)의 발행자 URI를 나타냅니다.- 콘솔에서 "사용자 풀" 섹션으로 이동하고 해당하는 풀을 선택한 후, 사용자 풀 개요를 보면
풀 ID를 찾을 수 있다. region은 Cognito ID 풀이 있는 AWS 리전을 나타낸다. arn에 나와있으니 그걸 참고해도 좋다.user-name-attribute는 Cognito 사용자 풀(Cognito User Pool)의 사용자 이름 속성을 지정한다. 일반적으로 기본값인 "cognito:username"을 사용하며, 이는 Cognito 사용자 풀의 사용자 이름 속성을 나타낸다. Cognito 사용자 풀의 사용자 특성 설정에서 확인할 수 있다. AWS Cognito 콘솔에서사용자 풀섹션으로 이동하고 해당하는 풀을 선택한 후,속성탭으로 이동하면사용자 이름 속성을 확인할 수 있다.
- Security 구성 클래스 추가
Cognito+Spring Security 이용한 회원가입 구현
- MemberSaveRequestDto
- MemberSaveResponseDto
- MemberController
참고
amazon-cognito-developer-authentication-sample
aws-samples • Updated Mar 31, 2024
cognitoAuthentication
ihuaylupo • Updated Jun 5, 2024

![[보안/인증] Amazon Cognito를 이용한 백엔드 API 권한 관리 | 배진수, 당근마켓](https://www.notion.so/image/https%3A%2F%2Fi.ytimg.com%2Fvi%2FBqgCJzSOT2k%2Fmaxresdefault.jpg?table=block&id=69d1e5a4-91a5-44cd-8221-d2de8447093f&cache=v2)


