IT IT 인터넷 Spring Security

http://java21.net/blog/marco?post_id=2432

Spring Authorization Server - Client 인증 처리 구성요소 정리

Spring Authorization Server - OAuth2 Client 인증 구성 정리

구성 개요

OAuth2 Client 인증 처리는 여러 Converter와 Provider를 조합하여 유연하게 동작하도록 설계되어 있다.


인증 처리 구성요소

구성요소

역할

포함된 항목

AuthenticationConverter

HTTP 요청 → Authentication 객체로 변환

DelegatingAuthenticationConverter 사용

AuthenticationManager

Authentication 객체 검증 및 인증 처리

여러 Provider를 조합

AuthenticationSuccessHandler

인증 성공 처리

인증 정보를 SecurityContext에 저장

AuthenticationFailureHandler

인증 실패 처리

OAuth2 에러 응답 리턴


AuthenticationConverter 구성 목록

Converter

설명

JwtClientAssertionAuthenticationConverter

JWT 기반 Client 인증 처리

X509ClientCertificateAuthenticationConverter

X.509 인증서 기반 Client 인증 처리

ClientSecretBasicAuthenticationConverter

HTTP Basic 방식 Client 인증 처리

ClientSecretPostAuthenticationConverter

HTTP Body에 client_secret 포함 방식 처리

PublicClientAuthenticationConverter

Client Secret 없는 Public Client 인증 처리


AuthenticationManager 구성 Provider 목록

Provider

설명

JwtClientAssertionAuthenticationProvider

JWT 기반 인증 검증

X509ClientCertificateAuthenticationProvider

X.509 인증서 기반 검증

ClientSecretAuthenticationProvider

Client Secret 방식 검증

PublicClientAuthenticationProvider

Public Client 검증


인증 성공 처리

구성요소

동작

AuthenticationSuccessHandler

인증 성공 시 OAuth2ClientAuthenticationToken을 SecurityContext에 저장


인증 실패 처리

구성요소

동작

AuthenticationFailureHandler

OAuth2AuthenticationException 발생 시 OAuth2 표준 에러 응답 리턴