inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

API Gateway - Route 처리

안녕하세요 jwt 토큰 인증 관련 질문드립니다.

939

백엔드

작성한 질문수 17

0

안녕하세요 강의 잘 듣고 있습니다.

다름이 아니라 궁금한 것이 있습니다.

Spring Security 를 이용해

로그인을 성공하면 JWT 토큰까지 반환 됩니다.

그 이후부터는 이제 서비스를 이용하기 위해 인증을 받기

위해 JWT토큰을 요청시마다 header에 넣어 서비스를 요청하는데

그 api gateway에서는 jwt 토큰을 확인하긴 하는데

api gateway를 거쳐 직접 호출 되는 유저 서비스에서는 

인증이 된 것인지 확인하는 필터(로직)가 없는 것 같은데

어떻게 서비스가 이뤄지는 것 인가요??

api gateway에서 AuthrizationHeaderFilter를 통해 이미

인증을 확인 한 후 여서 

실제 연결되는 유저 서비스에서는 확인 필요없이 서비스가 이뤄지는 것 인가요??

spring-boot architecture spring-cloud JPA msa Kafka

답변 2

0

tree

1. 강사분이 대답해주신 내용이고

2. 현재 상황은 토큰 검증에 대한 책임을 api gateway가 하고 있으므로 user service에서는 토큰 검증을 하지 않는데요. 만약 필요하다면 api gateway 에서 한 것 처럼 해야겠죠.

3. 토큰 방식을 사용하는 목적이 클라이언트에서 로그인을 관리하는 거니까 클라이언트에서 처리해야 돼요. 클라이언트단에서 로그인 시 어딘가에 토큰을 저장하고 권한이 필요한 요청에는 Authorization 헤더에 해당 토큰을 포함시키는 흐름이죠. 따라서 유저가 로그아웃을 했다면 클라이언트단에서 관리한는 토큰을 지워버리면 로그아웃된다고 생각해요.

0

Dowon Lee

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

말씀하신 것 처럼 user service에서는 JWT에 대한 검증을 추가로 하지 않습니다. 클라이언트로 부터의 모든 요청은 api-gateway 통해서만 받고 있다고 가정하였기 때문에, api-gateway로부터 전달된 정보가 맞는지를 추가하셔도 좋을 것 같습니다. user service와 같은 마이크로서비스는 random port로 기동하였다고 가정하고, 외부에서 직접 요청 받을 수 없도록 차단하면, 굳이 user service에서 JWT를 확인할 필요는 없습니다. api-gateway에서 사용하고 있는 JWT이 user service에서 발급되었고, 같은 secret key를 사용하였다면, 인증이 된 것으로 간주하였습니다. 

감사합니다. 

0

백엔드

JWT 검증을 추가로 하지 않은게 맞군요 감사합니다!

추가로 그럼 궁금해지는 것이 

1. api-gateway로 부터 전달 될 때는 이미 인증이 되어있는 상태로 간주되어

user service에서 따로 인증이 필요없이 사용이 가능해지는 것 인건가요??

2. user service에서 jwt 토큰을 검증할 수 있는 방법이 무엇이 있을까요??

3. jwt 토큰 방식에서 로그아웃을 할 경우에는 어떻게 토큰을 만료시키나요??

kafka 업데이트 강의 듣고 시포요

0

83

1

강의 교안

0

71

1

마이크로서비스간 통신 시, 인증 처리

0

79

1

api gateway 에서 인증 처리

0

64

1

섹션 19 질문드립니다

0

51

1

강의 자료 업데이트

0

81

1

부하분산 강의 섹션

0

56

1

강의자료는 어디에서?

0

69

1

강의 자료는 어디서 다운 받을 수 있나요?

0

109

1

전체 사용자 조회시 오류

0

57

1

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

0

108

2

학습 방향

0

94

2

카프카 커넥터 사용 목적 문의

0

85

2

kafka 강의

0

106

2

서비스 디스커버리 종류

0

86

2

강의 자료에 대해서 궁금해요

0

115

2

GlobalFilter, LoggingFilter가 동작하지 않습니다.

0

89

2

Kafka Source Connect 버전 에러

0

83

2

소스커넥터는 사용안한 거 맞죠?

0

81

2

강의자료 업데이트 문의

0

94

2

강의에서 BCryptPasswordEncoder 에 역할(5-2)

0

56

1

강의 업데이트 계획이 궁금합니다.

0

111

2

MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)

0

160

2

어떤 것이 업데이트 된 건가요?

0

162

2