Metadata
Spring Authorization Server - 엔드포인트 프로토콜
OAuth 2.0 Authorization Server Metadata Endpoint
OAuth2AuthorizationServerMetadataEndpointConfigurer
OAuth2 Authorization Server Metadata 엔드포인트를 사용자 정의 하는 기능을 제공한다.
OAuth2AuthorizationServerMetadataEndpointFilter를 구성하고 이를 OAuth2 인증 서버SecurityFilterChain빈에 등록한다.
OAuth2AuthorizationServerMetadataEndpointFilter
OAuth2 Authorization Server Metadata 요청을 처리하고 응답을 반환한다.

RequestMatcher
토큰 검사 요청 패턴
/.well-known/oauth-authorization-server, GET
동작 확인
1. 메타데이터 엔드포인트 요청

2. OAuth2AuthorizationServerMetadataEndpointFilter

3. 메타데이터 응답

OAuth2AuthorizationServerConfigurer
JWK Set 엔드포인트에 대한 지원을 제공한다.
NimbusJwkSetEndpointFilter를 구성하고 이를 OAuth2 인증 서버SecurityFilterChain빈에 등록한다.NimbusJwkSetEndpointFilter은 JWK Set을 반환하는 필터다.JWK Set 엔드포인트는
JWKSource<SecurityContext>빈이 등록된 경우에만 구성된다.
RequestMatcher
토큰 검사 요청 패턴
/oauth2/jwks, GET


리소스 서버 설정


인가 서버 설정

동작 확인
1. JwkSetEndpoint 요청

2. NimbusJwkSetEndpointFilter
이 필터는
jwkSet을 반환하기만 하는데, 반환하기 전에 한 과정을 거친다.


처음
JWKSet정보는 위와 같은데 아래의 과정을 거쳐PublicKey만 필터링하여 응답하게 된다.


3. JWKSet 응답

리소스 서버 연동
리소스 서버 - 컨트롤러

이 요청은 인증이 되어야 정상적인 응답이 가능하다.
토큰으로 인증을 시도하면 리소스 서버는 인가 서버로
jwkSet엔드포인트로 요청을 보내 공개키를 얻으려고 할 것이다.
1. 리소스 서버로 요청

2. 리소스 서버 - BearerTokenAuthenticationFilter -> JwtAuthenticationProvider
jwtDecoder.decode()의 내부 과정으로 인가 서버의 엔드 포인트로 요청한다.

3. 인가 서버 - NimbusJwkSetEndpointFilter
PublicKey만 필터링하여 응답하게 된다.

4. 리소스 서버 - MVC
인증 과정을 모두 거쳤으므로 리소스 서버는 정상적으로 응답할 수 있다.

이전 ↩️ - Spring Authorization Server(엔드포인트 프로토콜) - Token Revocation Endpoint
다음 ↪️ - Spring Authorization Server(엔드포인트 프로토콜) - OpenID Connect 1.0 Endpoint
Last updated