Spring boot와 Kotlin 언어를 이용한 OAuth2 인증서버 구현에 관한 내용을 기록합니다.
Authorization Server와 Resource Server 구현 및 Resource Server의 모듈화(maven 모듈)를 통해
Resource Server를 따로 두지 않고 서비스 내에 포함시키는 방법까지 알아봅니다.
본 시리즈에서 구현하는 인증 서버는 구글 firebase의 social login을 이용하여 로그인한다고 가정하였습니다.
또한 Spring boot 2.5.0와 Kotlin 1.5.X, JDK 8을 기본 환경으로 사용합니다.
OAuth2는 인증 방법의 한 종류로 HTTP를 통해 특정 자원에 접근할 수 있는 방법을 제공합니다. 또한 써드파티 애플리케이션에 제한된 접근을 제공합니다.
본 시리즈는 구현이 우선이 되기 때문에 OAuth2에 대한 자세한 설명은 생략합니다.
자세한 설명은 해당 링크를 참조바랍니다.
사용자가 누구인지를 인증하고 Authorization Token을 발급하는 서버입니다.
사용자는 해당 Token과 함께 Resource Server로 받고자 하는 데이터를 요청합니다.
사용자에게 전달받은 Token이 유효한지 확인하고 사용자에게 요청받은 자원(데이터)를 반환합니다.
위의 사진은 클라이언트(사용자)와 Authorization Server, Resource Server 간의 흐름을 나타냅니다.
위의 Authorization Server와 Resource Server의 흐름 처럼 해당 시리즈에서는 두 서버를 직접 구현하고 실제로 구글 로그인을 사용하여 사용자 인증을 해보도록 하겠습니다.
다음 내용은 구글 firebase를 설정하고 임시로 구글 로그인 페이지까지 만들어 보겠습니다.
참고