OAuth 2.0 Resource Server(jwt()) - JWT API

SecurityFilterChain타입의 빈을 생성해서 보안 필터를 구성HttpSecurity 에 있는
oauth2ResourceServer().jwt()API를 정의하고 빌드

검증 프로세스

프로퍼티를 설정하면 JWT로 인코딩한 Bearer 토큰을 검증하는 리소스 서버가 자동으로 설정된다.
Open ID Connect ProvideR 설정 엔드포인트 또는 인가 서버 메타데이터 엔드포인트를 검색해서
jwk-set-uri엔드포인트를 찾아 검증을 진행한다.두 가지 검증 전략을 설정한다.
리소스 서버는 인가 서버의
jwk-set-uri엔드포인트로 유효한 공개키를 질의하기 위한 검증 전략을 설정한다.issuer-uri에 대한 각 JWT 클레임을 검증할 전략을 설정한다.
검증 순서
클라이언트가
Authorization헤더에Bearer+Access Token을 담아서 요청한다.리소스 서버는 요청한 토큰이
Bearer토큰 사양에 부합하는지 검사한다.인가 서버에서 JWT에 서명한 개인키와 매칭하는 공개키를
jwk-set-uri엔드포인트 요청으로 가져와서 첫 번째 검증을 진행한다.JWT에 있는
exp,nbf,iss클레임의 정보가 기준에 부합하는지 두 번째 검증을 진행한다.검증에 성공하면 Jwt 객체를 생성하고
claims정보에 있는scope를 추출해서 시큐리티의 권한에 매핑한다.(SCOPE_email,SCOPE_profile등)Authentication 객체를 생성하고 Jwt 객체를
principal속성에 저장한다.Authentication을
SecurityContext에 저장하고 인증을 완료한다.

Last updated