이 책을 읽게 된 동기

 

팀 프로젝트에 참여하면서 User를 담당하고 있는데, 
Spring Security 관련 코드를 주먹구구식으로 작성했던 것 같아

정확한 의미를 알고, 리펙토링을 하기 위해 이 책을 읽기로 했다. 

 

무엇보다 소셜로그인을 당장 개발해야 하는 만큼 Oauth2.0 관련 내용을 집중적으로 다룰 예정이다. 

 

 

 

로드맵

총 20개의 장

  1. 소프트웨어 애플리케이션에서 보안의 중요성과 보안 및 취약성을 어떻게 생각해야 하는지 논의하고 스프링 시큐리티로 이러한 문제를 방지하는 방법을 배운다. (책의 나머지 부분을 위한 준비 과정이다.)
  2.  스프링 시큐리티를 이용해 간단한 스프링 부트 프로젝트를 만드는 방법을 배우고 스프링 시큐리티 인증과 권한 부여 아키텍처, 그리고 해당 구성 요소를 살펴본다. (이 책 전체에서 꾸준히 이러한 구성 요소를 세부적으로 맞춤 구성하는 방법을 배운다.)
  3. 사용자 관리에 관한 스프링 시큐리티 구성 요소를 이용하는 방법을 배운다. 
  4. 스프링 시큐리티로 사용자의 암호를 관리하는 방법을 배우고, 암호화와 해싱을 주제로 논의하며 암호 검증과 관련한 스프링 시큐리티 구성 요소를 살펴본다.
  5. 스프링 시큐리티 구성 요소로 애플리케이션의 인증 논리를 맞춤 구성하는 방법을 배운다. (2장 바탕으로)
  6. 실전 예제로 2~5장에서 배운 모든 내용을 바탕으로 완전하게 작동하는 하나의 앱을 만든다.
  7. 권한 부여 구성에 관한 논의를 시작하여 권한 부여 제약 조건을 구성하는 방법을 배운다. 
    2~6장까지는 인증을 관리하는 방법을 배운것이고, 인증된 사용자에게 특정한 작업을 실행할 수 있는 이용 권리를 부여할 차례다. 이를 위해 요청을 위한 접근을 거부하거나 허용하는 방법을 배운다.
  8. 권한 부여에 관한 논의를 계속하며 특정 HTTP 요청에 권한 부여 제약 조건을 적용하는 방법을 배운다. 
  9. 필터 체인의 맞춤 구성을 주제로 논의하고, 필터 체인이 인증과 권한 부여 구성을 적용하기 위해 HTTP 요청을 가로채는 책임 체인이라는 점을 배운다.
  10. 사이트 간 요청 위조 방지 기능에 관해 설명하고, 스프링 시큐리티로 맞춤 구성하는 방법을 알아본다. 
    CORS 정책을 구성하는 방법에 대해서도 배운다.
  11. 두 번째 실전 예제로 맞춤 구성된 인증과 권한 부여가 구현된 애플리케이션을 작성한다. 
    + 토큰이 무엇이고 권한 부여에서도 어떤 역할을 하는지 배운다
  12. 12~15장에서는 OAuth2를 다룬다. 클라이언트가 백엔드 애플리케이션에서 노출한 엔드포인트를 호출하기 위해 액세스 토큰을 얻는 흐름을 설명한다.
  13. 스프링 시큐리티를 이용해 맞춤형 OAuth 2 권한 부여 서버를 구축하는 방법을 배운다.
  14. 스프링 시큐리티를 이용해 OAuth 2 시스템에 리소스 서버를 구축하는 방법과 권한 부여 서버에서 발급한 토큰을 리소스 서버가 검증하는 방법을 배운다.
  15. 시스템이 JSON 웹 토큰을 권한 부여에 이용하는 방법을 설명하면서 OAuth 2 주제를 마무리한다.
  16. 메서드 수준에 권한 부여 구성을 적용하는 방법을 설명한다.
  17. 메서드의 입출력을 나타내는 필터 값에 권한 부여 구성을 적용하는 방법을 배운다.
  18. 12~17장까지 배운 내용을 적용한 세 번째 실전 예제를 진행하며 부가적으로 OAuth 2 시스템에서 타사 툴 KeyCloak을 권한 부여 서버로 이용하는 방법을 배운다.
  19. 스프링 프레임워크로 개발한 리액티브 애플리케이션에 보안 구성을 적용하는 방법을 배운다.
  20. 보안 구성을 위한 통합 테스트를 작성하는 방법을 배운다.

+ Recent posts