OAuth 2.0 Resource Server(jwt()) - JwtDecoder 생성 방법

JwtDecoders.fromIssuerLocation()

img_8.png
  • JwtDecoders.fromIssuerLocation()을 호출하면 Provider 설정 또는 인가 서버 메타데이터 엔드포인트로 jwk-set-uri를 요청한다.

  • 애플리케이션에서 따로 정의한 JwtDecoder 빈이 없다면 스프링 부트가 위에 있는 디폴트 빈을 등록한다.

NimbusJwtDecoder.withJwkSetUri()

img.png
  • 기본적으로 스프링 부트에 의해 NimbusJwtDecoder가 자동 생성될 경우, 리소스 서버는 RS256 을 사용한 토큰만 신뢰하고 이 토큰만 검증할 수 있다.

  • JwtSetUri에 의한 검증 방식으로 NimbusJwtDecoder를 생성할 경우, 알고리즘의 종류를 변경할 수 있지만 RSA 알고리즘(비대칭)에 한해 변경이 가능하고 HMAC은 지원하지 않는다.


SecurityConfig

application.yml

  • JwtDecoder를 생성하는 방식에 따라서 application.yml과 값을 맞춰줘야 한다.

  • application.yml에도 jws-algorithms를 설정할 수 있고, 빈을 직접 등록할 경우 빈이 우선이다.

  • 직접 빈으로 등록하면서 jws-algorithms를 지정할 경우, 인가 서버에서도 해당 알고리즘을 지원 및 변경해야 한다.


이전 ↩️ - OAuth 2.0 Resource Server(jwt()) - JwtDecoder 세부 흐름arrow-up-right

메인 ⏫arrow-up-right

Last updated