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

신동훈님의 프로필 이미지
신동훈

작성한 질문수

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

Users Microservice - 테스트

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

작성

·

325

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 인증)를 사용하여 구현하면 어떨까 싶습니다.

감사합니다. 

신동훈님의 프로필 이미지
신동훈

작성한 질문수

질문하기