Spring OAuth2 인증서버 TokenStore 관련 문의
1195
작성한 질문수 21
1,인증서버 설정시 TokenStore를 In Memory 방식을 사용하는것은 권장되지 않는다고 하는데 이유가
1)인증서버와 리소스서버를 분리할 경우 인증 토큰이 공유 되지 않는 이슈
2)서버 재시작시 인증토큰이 모두 초기회 되여 클라이언트가 다시 인증을 받아야 하는 이슈
이외에 다른 이슈가 있는지 궁금합니다.
서비스 규모가 크지 않아서 인증서버와 리소스서버를 분리하지 않고 서비스 재시작시 토큰은 만료 시키고 재인증을 요구하는 해야 하는 상황이면 JDBC 로 DB에 저장시 OAuth2 인증을 관리 하기 위하여 사용하는 테이블이 6개정도 생성해야 하는것으로 기억하는데 오히려 인메모리가 유리하지 않을까요?
그리고 인중토큰은 Rdsis에서 관리하는 방법은 없는지요?
2.TokenStore를 JWT Tokenstore로 사용하려고 하는데 Spring 공식 문서는 OAuth2 에 관련된 레퍼런스가 많지 않고 OAuth2 라이브러리도 여러 프로젝트에서 별도로 관리되고 있어서 여러 싸이트의 문서를 보았는데 Spring Secury 에 대한 이야기 부족해서인지 연동이 잘되지 않고 있습니다.
Spring Security 강좌를 진행하실 계획이 있으신지요? 있다면 언제쯤 등록 되나요?
답변 3
0
Token Store를 JWT 설정시 stackoverflow 오류가 발생하는 문제는 Spring Security 버전 문제가 아니였습니다.
개발중인 프로젝트를 SpringBoot 2.0.x 도 다운그레이드 해도 동일한 오류가 발생하여 JPA를 사용하고 있어서 OAuth 관련 테이블을 엔터티에서 사용한 연관관계 설정에 문제가 있어 발생한 문제 였습니다.
Entity Class 를 삭제하고 OAuth 관련테이블을 Script 로 수동 생성후 해결되었습니다.
혼돈을 주어 죄송합니다.
그리고 JWT를 TokenStore로 사용하면 디버깅 해보니 oauth_client_details 만 생성하면 됩니다.
아마도 JWT Payload 에서 권한및 토큰의 만료기간등 가지고 있어서...
0
감사합니다.
1.Token Store를 JWT 로 설정하면 토큰에 만료시간, 권한등이 포함되어 있어 OAUTH Client 정보만 DB나 메모리에 저장하면되기 떄문에 JWT TokenStore를 사용하려고 합니다..
2.알려주신 https://www.baeldung.com/spring-security-oauth-jwt는 이미 봤던 문서인데 SpringBoot 2.1.1에서 토큰 발급시 stackoverflow 오류가 발생합니다.(로그보면 재귀 호출이 발생)
오늘 아침에 문서에는 SpringBoot가 2.0.2 버전을 사용하고 있어 2.0.2로 변경하면 stackoverflow 오류는 발생하지 않고 다른 문서도 이상없이 동작하는 걸로 봐서는 SpringBoot 2.0.x는 Spring Security 5.0.x을 사용하고 2.1.x는 Spring Security 5.1.x를 사용하고 있어 Spring Security 연동 방식이 변경ㄷ힌거 같아서 Spring Security 5.1 레퍼런스를 보고 있습니다.
https://tv.naver.com/v/4012597 를 보니 피보탈에서 여러 프로젝트에 흩어져 있는 OAuth2 API를 통합하면서 많은 변화가 있는거 같습니다.
0
운영 서버라면 메모리 스토어는 권장드리고 싶지 않습니다. 말씀하신대로 두가지 이유도 그렇고 테이블 6개 생성하고 서버와 토큰 스토어를 독립적으로 운영할 수 있다면 JDBC Store를 사용하는게 큰 장점이지 않을까요?
Redis를 Tokenstore로 사용하는 방법은 저도 해보진 않았지만 검색해보니까 누군가 해본듯 하네요. 한번 시도해 보시면 좋을 거 같습니다.
TokenStore만 JWT 토큰 스토어로 사용하는 방법은 아래 링크에서 확인해 보세요.
https://www.baeldung.com/spring-security-oauth-jwt
시큐리티 강좌는 구상 중이긴 한데 아직 구체적인 일정을 잡진 않았습니다. 좀 더 시간이 필요합니다.
감사합니다.
Spring 시큐리티 관련해서 WebSecurityConfigurationAdapter
0
73
1
junit5 사용하시는 분들
0
88
1
자바 빈 스펙을 준수하는지 체크하는 테스트
0
238
2
REST API 개발 중 비즈니스 로직 적용 부분의 JSON 에러
0
243
1
스프링 부트 3버전에서의 실습
0
190
1
java.lang.AssertionError: Status
0
532
2
spring doc 관련 파일 생성 관련 배포 관련 질문 드립니다.
0
287
1
섹션2 201응답받기 부분 테스트 404에러 질문입니다
0
741
1
강의 자료가 404입니다 확인 부탁 드려요!
0
477
1
연동 DB문의
0
358
1
이벤트 Repository강의 중 Event 클래스에 private Integer Id; 위치 질문
0
505
1
(Mac) postgressql 관련하여 port kill 해도 다시 살아나는 경우
0
380
0
maven으로 생성한 docs파일(index.html)에서의 not found 오류 질문
0
621
1
테스트 오류 질문드립니다.
0
512
1
docs 요청값이 반영이 안되네요... (해결)
-1
394
1
psql 적용 후 에러
0
819
2
mvn package 시 다음과 같은 에러가 나시면
0
765
2
Event에 Account manager를 추가했으면 문서화 필요
0
274
1
2년 훨씬 전 부터 Restlet-> Talend API 로 바뀌었습니다~
1
473
1
asciidoc 추가 스니펫 에러 해결법
0
400
1
_links 는 현재 fieldWithPath 를 해주지 않아도 됩니다.
0
424
3
깃랩 처음 사용자를 위한 index.adoc raw 보는 법
0
332
1
eclipse 쓰시는 분을 위한 maven-resources-plugin 팁
0
333
1
부트 + jupiter 인 경우 설정법
0
342
1





