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

Users Microservice-part2

Users Microservice-part2

Users Microservice 기능 추가 – Login

  • AuthenticationFilter.java
  • AuthenticationFilter.java
    • img.png
    • img.png
  • WebSecurity.java
    • 사용자 요청에 대해 AuthenticationFilter를 거치도록 수정
    • img.png
    • img.png
  • UserDetailsService 등록
    • img.png
  • API Gateway Service 수정
    • User Service에 대한 Routes 정보수정
    • img.png
  • img.png
  • AuthenticationFilter.java의 successfulAuthentication() 수정
    • 인증 성공 시 사용자에게 Token 발생
    • img.png
  • AuthenticationFilter.java의 successfulAuthentication() 수정
    • 인증 성공 시 사용자에게 Token 발생
    • img.png
      • 위변조 판단을 위해서 token 과 userId 를 같이 전송
  • 전통적인 인증 시스템
    • img.png
    • 문제점
      • 세션과 쿠키는 모바일 애플리케이션에서 유효하게 사용할 수 없다 (공유 불가)
      • 렌더링된 HTML 페이지가 반환되지만, 모바일 애플리케이션에서는 JSON(or XML)과 같은 포멧 필요
  • Token 기반 인증 시스템
    • img.png
  • JWT (JSON Web Token)
    • https://jwt.io/
    • 인증 헤더 내에서 사용되는 토큰 포맷
    • 두 개의 시스템끼리 안전한 방법으로 통신 가능
    • JWT (JSON Web Token) 장점
      • 클라이언트 독립적인 서비스 (stateless)
      • CDN
      • No Cookie-Session (No CSRF, 사이트간 요청 위조)
      • 지속적인 토큰 저장
      • img.png
    • API Gateway service에 Spring Security와 JWT Token 사용 추가
      • img.png
    • AuthorizationHeaderFilter.java 추가
      • img.png
    • AuthorizationHeaderFilter.java
      • img.png
      • img.png
    • application.yml
      • img.png
    • Test: Authorization Type à “Bearer Token”
      • Bearer Authentication
        • API에 접속하기 위해서는 access token을 API 서버에 제출해서 인증 처리
        • OAuth를 위해서 고안된 방법, RFC 6750

© 2020. All rights reserved.

SIKSIK