• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

MSA @PreAuthorize

21.08.30 01:58 작성 조회수 292

1

안녕하세요. 선생님의 강의를 듣고 MSA에 JWT 기반 인증 인가 서비스를 구현 중입니다.
구현 중에 Auth Server를 분리하면서 다른 리소스 서버에서 @PreAuthorize로 메소드 단위 권한 인가를 구현하며 유추한 내용이 맞는지 확인차 질문 드립니다.
제가 생각한 @PreAuthorize의 동작 메커니즘은 아래와 같습니다.
JwtFilter 클래스에서 Override하여 구현한 doFilter는 매 서블릿 요청마다 작동됩니다.
그리고 doFilter에서 UsernamePasswordAuthentication 객체를 SecurityContextHolder에 저장합니다.
@PreAuthorize를 코멘트한 메소드에서는 SecurityContextHolder에 저장된 내용을 기반으로 권한을 체크합니다.
여기까지가 제가 유추한 내용인데요. 틀린 부분이 있으면 첨언 부탁드립니다.
그리고 위와 같은 방법 외에 MSA처럼 Auth Server를 분리한다던가 또는 ScaleOut된 서비스와 같이 분리된 아키텍처에서 권한인가하는 효율적인 방법이 또 있을까요?

답변 1

답변을 작성해보세요.

0

안녕하세요 민준님 답변이 늦어 죄송합니다.

틀린 부분은 없으신 것 같습니다.

MSA와 같은 환경에서 분리된 Auth Server를 Spring으로 구현하려 하시려면 아래 내용을 참고하시면 좋을 것 같습니다.

https://docs.spring.io/spring-security-oauth2-boot/docs/2.0.x/reference/htmlsingle/

Authorization Server, Resource Server에 대한 내용을 학습하시면 도움이 되실 것으로 생각됩니다.