인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

신동훈님의 프로필 이미지

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Users Microservice - 테스트

apigateway-service에서 인증한 후 해당 인증 정보를 user-service에 전달하는 방법이 없을까요?

작성

·

365

0

기존 MSA 방식이 아닌 설계에서는 JWT를 직접 검증하여 해당 JWT에 들어있는 정보를 가지고 유저정보를 가져와 SecurityContextHolder에 넣어서 사용했었습니다.

그러나 이번 강의에서처럼 apigateway-service에서 토큰의 유효성을 검증한다면 토큰에 들어있는 유저정보에 대한 값을 사용하기 위해서는 user-service에서 다시 한번 토큰에서 값을 추출하는 과정을 거쳐야 할 것 같습니다.

위와같은 상황에서는 gateway에서 1번, user-service에서 1번씩 총 두번의 JWT 검증을 하게 되는데, 이 방법 말고는 다른 방법이 없을까요?

답변 1

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

user-service가 외부에서의 직접적인 접속을 막고, gateway를 통해서만, 서비스가 가능하도록 구축하셨다면, gateway에서 사용자 인증을 하고, user-service에서 다시 인증을 거치지 않아도 되지 않을까 싶습니다. 사용자 인증을 거치지 않으면, user-service를 사용할 수 없다는 의미이기 때문에, 인증처리는 한번으로 될 것 같습니다.

추가로, gateway, user-service에서의 인증 처리 외에, 별도의 인증처리 서비스를 두고 처리하는 방법이 있습니다. 인증을 위한 별도의 서비스를 추가하는 방법으로, 흔히 말하는 SNS 로그인 서비스(OAuth 인증)를 사용하여 구현하면 어떨까 싶습니다.

감사합니다.