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