전체 보기
🍀

AWS Cognito+Spring Security 통합 설정_(1)

작성일자
2023/05/02
태그
DIARY_DEVELOP
프로젝트
NOI
책 종류
1 more property

개발

AWS Cognito + Spring Security 통합 설정

배경
기존 NOI 프로젝트에서 firebase authentication 기능을 이용해 인증/인가를 구현했었는데, AWS로 마이그레이션을 하면서 AWS Cognito 기능을 이용해 인증/인가를 구현하기로 하였다.
직적 JWT 토큰 서버를 구축하는 것도 하나의 방법이지만, 현재 프로젝트에서 중요한 부분은 데이터를 처리하는 API 쪽이라 인증/인가는 Cognito를 이용해 빠르게 구현하기로 하였다.
사실 JWT 토큰 서버를 직접 구축하는 건 이전에 두 번 정도 해본 반면, Cognito는 처음 사용해보는데 새로운 걸 배우는 거라 설렌다!
과정
build.gradle에 아래 코드 추가
dependencies { implementation 'org.springframework.boot:spring-boot-starter-security-oauth2-client' implementation 'org.springframework.security:spring-security-oauth2-jose' }
Java
복사
application.yml에 아래 코드 추가
spring: security: oauth2: client: registration: cognito: clientId: clientId clientSecret: clientSecret scope: openid redirect-uri: http://localhost:8080/login/oauth2/code/cognito clientName: clientName provider: cognito: issuerUri: https://cognito-idp.{region}.amazonaws.com/{poolId} user-name-attribute: cognito:username
Java
복사
Security 구성 클래스 추가
@Configuration public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf() .and() .authorizeRequests(authz -> authz.mvcMatchers("/") .permitAll() .anyRequest() .authenticated()) .oauth2Login() .and() .logout() .logoutSuccessUrl("/"); } }
Java
복사
안에 내용을 채우는 과정은 다음 TIL을 참조하자

하루 정리

TIL 작성하기
NOI
API 명세서 작성
Cognito + Spring security 연동