복붙노트

[SPRING] 봄 OAuth2와 JWT

SPRING

봄 OAuth2와 JWT

나는 Spring Authorization Server를 생성하여 JWT와 JWT, Authorization Server에 대한 권한 및 권한을 확인하는 Resource Server를 작성했다. 그렇게하기 위해 나는이 기사를 따라 갔다.

내 질문은 토큰 요청을 얻을 때 HTTP 기본 인증 및 Base64로 인코딩 된 사용자 이름 / 암호 (ClientId : ClientSecret)를 사용하여 Authorization 헤더를 보내야하는 이유입니다. 나는 사용자 이름과 암호 만 필요로하는 JWT 구현을 보았다.

해결법

  1. ==============================

    1.이것은 사양의 일부입니다 (RFC 6749 참조).

    이것은 사양의 일부입니다 (RFC 6749 참조).

    기본적으로 스프링 보안 OAuth 2.0은 토큰 엔드 포인트를 보호합니다. OAuth 2 개발자 가이드 :

    하지만 클라이언트 인증을 사용하지 않도록 설정할 수 있습니다.

  2. ==============================

    2.그것이 JWT 토큰의 구조입니다.

    그것이 JWT 토큰의 구조입니다.

    HMACSHA256(
          base64UrlEncode(header) + "." +
          base64UrlEncode(payload),
        secret
    
        )
    
    
    As you are doing a JWT implementation all the 3 parts must be there: header.payload.secret
    

    어쩌면 당신이 본 구현에서 - 서버가 Default Secret

  3. from https://stackoverflow.com/questions/43388546/jwt-with-spring-oauth2 by cc-by-sa and MIT license