Spring Authorization Server의 기본 설정 정리
IT IT 인터넷 Spring Security springsecurity Authorization
http://java21.net/blog/marco?post_id=2430
Spring Authorization Server의 기본 설정 정리
pring Authorization Server는 OAuth2 기반의 인증 서버를 쉽게 구축할 수 있도록 도와주는 라이브러리입니다.
특히, Spring Boot와 함께 사용하면 복잡한 설정 없이도 OAuth2 인증 서버를 빠르게 만들 수 있도록 여러 기본 설정을 제공합니다.
이번 글에서는 그 중 OAuth2AuthorizationServerConfiguration 클래스가 어떤 역할을 하는지, 그리고 기본적으로 어떤 기능들이 자동으로 구성되는지 정리해보려고 합니다.
OAuth2AuthorizationServerConfiguration란?
OAuth2AuthorizationServerConfiguration은 Spring Authorization Server가 제공하는 @Configuration 클래스입니다.
쉽게 말하면 OAuth2 인증 서버를 동작시키기 위한 최소한의 기본 설정을 자동으로 구성해주는 역할을 합니다.
내부적으로는 OAuth2AuthorizationServerConfigurer를 사용해서 인증 서버에 필요한 여러가지 설정을 적용하고, 이를 통해 OAuth2 관련 필터 체인(SecurityFilterChain)을 생성해 Spring Security에 등록해줍니다.
자동으로 제공되는 Endpoint(프로토콜 경로)
Spring Authorization Server를 사용하면 OAuth2 프로토콜에 따라 다음과 같은 Endpoint들이 자동으로 등록됩니다.
Endpoint | 역할 | 기본 경로 |
|---|---|---|
Authorization Endpoint | 사용자에게 로그인 화면을 보여주고, 인가 코드 발급 |
|
Device Authorization Endpoint | 디바이스 인증 요청 처리 |
|
Device Verification Endpoint | 디바이스 코드 검증 처리 |
|
Token Endpoint | Access Token, Refresh Token 발급 |
|
Token Introspection Endpoint | 발급된 토큰 유효성 검사 |
|
Token Revocation Endpoint | 발급된 토큰 만료 처리 |
|
Authorization Server Metadata Endpoint | 인증 서버 관련 메타데이터 제공 |
|
JWK Set Endpoint | JWT 서명 검증을 위한 공개 키 제공 |
|
정리하자면
Spring Authorization Server는 OAuth2 인증 서버를 만들 때 필요한 대부분의 기능들을 기본적으로 제공하고 있습니다.
OAuth2AuthorizationServerConfiguration클래스를 통해 복잡한 설정 없이 OAuth2 인증 서버를 빠르게 구축할 수 있습니다.자동으로 구성되는 Endpoint들을 통해 OAuth2 표준 프로토콜 흐름을 바로 사용할 수 있습니다.
참고로
기본 제공되는 Endpoint 경로들은 필요에 따라 변경하거나 확장할 수도 있습니다.
Security 설정 클래스에서 직접
OAuth2AuthorizationServerConfigurer를 활용해 원하는 옵션을 설정할 수 있습니다.
마무리
Spring Authorization Server 덕분에 OAuth2 인증 서버를 개발할 때 많은 부분을 자동으로 해결할 수 있어 개발 생산성이 크게 올라갑니다.
하지만 기본 동작 원리와 구성되는 Endpoint들을 이해하고 있다면, 실무에서 더 유연하게 설정하거나 확장하는 데 큰 도움이 될 것입니다.