jwt token의 토큰 검증
885
작성한 질문수 30
안녕하세요
강의에서는 resource 서버가 받은 토큰 검증 과정에서 opaqueToken을 사용하고 있는데요.
JWT 경우로 질문을 드리고 싶습니다.
JWT토큰도 opaqueToken과 마찬가지로 oauth2/revoke api를 호출하면 정상적으로 meta.invalidated 필드가 true로 변경되는 것을 확인했습니다.
해당 필드가 true로 변경되었음에도 불과하고 resource 서버에 동일한 토큰으로 요청을 보내도 정상적으로 동작하고 있는 것을 확인했는데요.
jwtToken 방식의 경우에는 토큰 검증시 최초에만 jwkSet을 가져오기 위해 한번만 authorization server를 호출하고 이후에는 내부적으로 jwtDecoder를 사용해 검증하는 것으로 보입니다.
결론적으로 jwtToken을 사용할때는 oauth2/revoke를 통해 meta.invalidated 값과 무관하게 토큰 만료 전까지는 지속적으로 접근이 가능한 것으로 보이는데요.
제가 이해한 흐름이 맞을까요?
답변 1
1
음
revoke 된 토큰은 인가서버에서는 더 이상 사용할 수 없을 것입니다.
즉 revoke 된 토큰을 다시 인가서버에 접근해서 어떤 자원을 가지고 오고자 할 때는 분명 오류가 발생할 것입니다.
질문하신 경우는 인가서버가 아니라 리소스 서버인데 리소스 서버는 revoke 토큰에 대해 알지 못합니다. 해당 토큰이 meta.invalidated 가 true 인지는 알 방법이 없고 단지 인가서버로 부터 키를 받아서 유효성 검사를 통해서 토큰의 사용여부를 판단할 뿐입니다.
그래서 토큰을 revoke 하게 되면 인가서버에서는 아무런 쓸모없는 무용지물이므로 공격자가 탈취하더라도 상관없게 됩니다.
이 흐름을 리소스 서버에도 적용하기 위해서는 revoke 된 토큰인지 아닌지를 요청시마다 opaque 토큰 검사를 통해 알아낸 다음 후속처리를 하는 식으로 구현해야 합니다.
authorization-server 라이브러리 질문이 있습니다.
0
76
1
loadUser 중 Missing attribute 'preferred_username' in attributes 에러 발생
0
77
2
JWT 조회 에 대한 질문
0
71
1
password grant 방식 에러 응답
0
89
3
FormLoginConfigure에서 생성하는 필터
0
78
2
현업에서 springboot를 3.5.5 를 사용해서 공부중인데...
0
283
2
Jdbc 관련 강의 및 깃헙 문의
0
77
1
OAuth2AuthorizedClient 이해 및 활용 강의 내용 질문
0
208
1
UserInfo 엔드포인트 요청 실습
0
74
1
RFC 문서에서의 AccessToken 발급 방식 궁금한점
0
150
1
강의자료.zip 를 다운로드 받았는데 압축이 풀리지 않습니다. 확인 부탁드려요
0
139
2
OIDC SSO 관련 질문 입니다.
0
130
1
AuthenticationEntryPoint 강의 누락 문의
0
122
1
cors설정방법
0
115
1
jwt decoder 토큰 검증 시 질문
0
221
1
클라이언트에서 userinfo 엔드포인트 호출 시 질문
0
185
2
JOSE 구성요소의 api에 관한 질문
0
140
2
스프링 부트 3버전으로 따라가시는 분들 참고하세요
1
529
1
CustomOAuth2AuthenticationFilter 구현 중 질문
0
145
2
AuthenticationManager 생성시점
0
117
1
FormLogin과 Oauth2Client 둘 중 사용하는 시점
0
127
1
postman userinfo 엔드포인트 질문
0
135
2
강의 수강신청하고 듣기 전입니다 질문있습니다.
0
114
1
인증 코드를 통해 발급 받은 토큰의 관리
0
198
1





