스프링 시큐리티 인 액션 (보안 기초부터 OAuth 2까지 | 스프링 시큐리티를 활용한 안전한 앱 설계와 구현)

스프링 시큐리티 인 액션 (보안 기초부터 OAuth 2까지 | 스프링 시큐리티를 활용한 안전한 앱 설계와 구현)

$36.87
Description
모든 스프링 개발자에게 권장하는 스프링 시큐리티 필수 가이드!
보안은 타협할 수 없는 중요한 요소다. 스프링 시큐리티로 안전하게 데이터를 전송하고 자격 증명을 검증하며 공격을 방지하는 애플리케이션을 개발할 수 있다. ‘설계에 의한 보안’ 원칙을 따르면 데이터 도난과 무단 침입으로부터 네트워크를 보호할 수 있다.

《스프링 시큐리티 인 액션》에서는 피해가 발생하기 전에 사이트 간 스크립팅과 요청 위조 공격을 방지하는 방법을 배운다. 암호 업그레이드 시뮬레이션과 여러 유형의 권한 부여를 추가하는 것과 같은 기본적인 내용으로 시작해, 스프링 시큐리티를 새 아키텍처에 적용하고 고급 OAuth2 구성을 작성하는 방법과 같은 심화된 내용으로 마무리한다. 이 책을 모두 공부하면 일반적인 위협은 물론 심각한 위협에도 대비하는 맞춤 구성된 스프링 시큐리티 구성을 만들 수 있게 된다.

★ 이 책에서 다루는 내용 ★

◎ 암호 인코딩 및 사용자 인증
◎ 엔드포인트 보호
◎ 보안 테스트 자동화
◎ 독립 실행형 권한 부여 서버 설정
저자

로렌티우스필카

LaurentiuSpilca
로렌티우스필카는엔다바의헌신적인리더이자트레이너이며북유럽국가의금융시장을위한프로젝트개발을이끌고있다.9년간의실무경험을가지고있으며이전에는전세계에설치된가장큰규모의ERP(전사적자원관리)솔루션중하나를구축하는프로젝트에소프트웨어개발자로참여했다.그는고품질의소프트웨어를제공하는것도중요하지만지식을공유하고다른사람들이기술을향상하도록돕는것도중요하다고믿으며이런생각으로자바기술에관한교육과정을설계하고강의하며미국과유럽에서프레젠테이션과워크숍을제공하고있다.그의강연은복스드데이즈(VoxxedDays),테크플로우(TechFlow),부쿠레슈티테크놀로지위크(BucharestTechnologyWeek),자바스콥(JavaSkop),오라클코드익스플로어(OracleCodeExplore),오라일리소프트웨어아키텍처(O'ReillySoftwareArchitecture),오라클코드원(OracleCodeOne)등에서접할수있다.

목차

[01부]첫단계

▣01장:오늘날의보안
1.1스프링시큐리티:개념과장점
1.2소프트웨어보안이란?
1.3보안이중요한이유는무엇인가?
1.4웹애플리케이션의일반적인보안취약성
__1.4.1인증과권한부여의취약성
__1.4.2세션고정이란?
__1.4.3XSS(교차사이트스크립팅)란?
__1.4.4CSRF(사이트간요청위조)란?
__1.4.5웹애플리케이션의주입취약성이해
__1.4.6민감한데이터의노출처리하기
__1.4.7메서드접근제어부족이란?
__1.4.8알려진취약성이있는종속성이용
1.5다양한아키텍처에적용된보안
__1.5.1일체형웹애플리케이션설계
__1.5.2백엔드/프런트엔드분리를위한보안설계
__1.5.3OAuth2흐름이해
__1.5.4API키,암호화서명,IP검증을이용해요청보안
1.6이책에서배울내용
요약

▣02장:안녕!스프링시큐리티
2.1첫번째프로젝트시작
2.2기본구성이란?
2.3기본구성재정의
__2.3.1UserDetailsService구성요소재정의
__2.3.2엔드포인트권한부여구성재정의
__2.3.3다른방법으로구성설정
__2.3.4AuthenticationProvider구현재정의
__2.3.5프로젝트에여러구성클래스이용
요약

[02부]구현

▣03장:사용자관리
3.1스프링시큐리티의인증구현
3.2사용자기술하기
__3.2.1UserDetails계약의정의이해하기
__3.2.2GrantedAuthority계약살펴보기
__3.2.3최소한의UserDetails구현작성
__3.2.4빌더를이용해UserDetails형식의인스턴스만들기
__3.2.5사용자와연관된여러책임결합
3.3스프링시큐리티가사용자를관리하는방법지정
__3.3.1UserDetailsService계약의이해
__3.3.2UserDetailsService계약구현
__3.3.3UserDetailsManager계약구현
요약

▣04장:암호처리
4.1PasswordEncoder계약의이해
__4.1.1PasswordEncoder계약의정의
__4.1.2PasswordEncoder계약의구현
__4.1.3PasswordEncoder의제공된구현선택
__4.1.4DelegatingPasswordEncoder를이용한여러인코딩전략
4.2스프링시큐리티암호화모듈에관한추가정보
__4.2.1키생성기이용
__4.2.2암호화와복호화작업에암호기이용
요약

▣05장:인증구현
5.1AuthenticationProvider의이해
__5.1.1인증프로세스중요청나타내기
__5.1.2맞춤형인증논리구현
__5.1.3맞춤형인증논리적용
5.2SecurityContext이용
__5.2.1보안컨텍스트를위한보유전략이용
__5.2.2비동기호출을위한보유전략이용
__5.2.3독립형애플리케이션을위한보유전략이용
__5.2.4DelegatingSecurityContextRunnable로보안컨텍스트전달
__5.2.5DelegatingSecurityContextExecutorServi
보안컨텍스트전달
5.3HTTPBasic인증과양식기반로그인인증이해하기
__5.3.1HTTPBasic이용및구성
__5.3.2양식기반로그인으로인증구현
요약

▣06장:실전-작고안전한웹애플리케이션
6.1프로젝트요구사항과설정
6.2사용자관리구현
6.3맞춤형인증논리구현
6.4주페이지구현
6.5애플리케이션실행및테스트
요약

▣07장:권한부여구성-액세스제한
7.1권한과역할에따라접근제한
__7.1.1사용자권한을기준으로모든엔드포인트에접근제한
__7.1.2사용자역할을기준으로모든엔드포인트에대한접근을제한
__7.1.3모든엔드포인트에대한접근제한
요약

▣08장:권한부여구성-제한적용
8.1선택기메서드로엔드포인트선택
8.2MVC선택기로권한을부여할요청선택
8.3앤트선택기로권한을부여할요청선택
8.4정규식선택기로권한을부여할요청선택
요약

▣09장:필터구현
9.1스프링시큐리티아키텍처의필터구현
9.2체인에서기존필터앞에필터추가
9.3체인에서기존필터뒤에필터추가
9.4필터체인의다른필터위치에필터추가
9.5스프링시큐리티가제공하는필터구현
요약

▣10장:CSRF보호와CORS적용
10.1애플리케이션에CSRF(사이트간요청위조)보호적용
__10.1.1스프링시큐리티의CSRF보호가작동하는방식
__10.1.2실제시나리오에서CSRF보호사용
__10.1.3CSRF보호맞춤구성
10.2CORS(교차출처리소스공유)이용
__10.2.1CORS작동방식
__10.2.2@CrossOrigin어노테이션으로CORS정책적용
__10.2.3CorsConfigurer로CORS적용
요약

▣11장실전-책임의분리
11.1예제의시나리오와요구사항
11.2토큰의구현과이용
__11.2.1토큰이란?
__11.2.2JSON웹토큰이란?
11.3인증서버구현
11.4비즈니스논리서버구현
__11.4.1Authentication객체구현
__11.4.2인증서버에대한프락시구현
__11.4.3AuthenticationProvider인터페이스구현
__11.4.4필터구현
__11.4.5보안구성작성
__11.4.6전체시스템테스트
요약

▣12장:OAuth2가작동하는방법
12.1OAuth2프레임워크
12.2OAuth2인증아키텍처의구성요소
12.3OAuth2를구현하는방법선택
__12.3.1승인코드그랜트유형의구현
__12.3.2암호그랜트유형구현
__12.3.3클라이언트자격증명그랜트유형구현
__12.3.4갱신토큰으로새액세스토큰얻기
12.4OAuth2의허점
12.5간단한SSO(SingleSign-On)애플리케이션구현
__12.5.1권한부여서버관리
__12.5.2구현시작
__12.5.3ClientRegistration구현
__12.5.4ClientRegistrationRepository구현
__12.5.5스프링부트구성의순수한마법
__12.5.6인증된사용자의세부정보얻기
__12.5.7애플리케이션테스트
요약

▣13장:OAuth2-권한부여서버구현
13.1맞춤형권한부여서버구현작성
13.2사용자관리정의
13.3권한부여서버에클라이언트등록
13.4암호그랜트유형이용
13.5승인코드그랜트유형이용
13.6클라이언트자격증명그랜트유형이용
13.7갱신토큰그랜트유형이용
요약

▣14장:OAuth2-리소스서버구현
14.1리소스서버구현
14.2원격으로토큰확인
14.3JdbcTokenStore로데이터베이스참조구현
14.4방식의간단한비교
요약

▣15장OAuth2-JWT와암호화서명사용
15.1JWT의대칭키로서명된토큰이용
15.1.1JWT이용
__15.1.2JWT를발행하는권한부여서버구현
__15.1.3JWT를이용하는리소스서버구현
15.2JWT를이용한비대칭키로서명된토큰이용
__15.2.1키쌍생성
__15.2.2비밀키를이용하는권한부여서버구성
__15.2.3공개키를이용하는리소스서버구현
__15.2.4공개키를노출하는엔드포인트이용
15.3JWT에맞춤형세부정보추가
__15.3.1토큰에맞춤형세부정보를추가하도록권한부여서버구성
__15.3.2JWT의맞춤형세부정보를읽을수있게리소스서버구성
요약

▣16장:전역메서드보안-사전및사후권한부여
16.1전역메서드보안활성화
__16.1.1호출권한부여의이해
__16.1.2프로젝트에서전역메서드보안활성화
16.2권한과역할에사전권한부여적용
16.3사후권한부여적용
16.4메서드의사용권한구현
요약

▣17장:전역메서드보안-사전및사후필터링
17.1메서드권한부여를위한사전필터링적용
17.2메서드권한부여를위한사후필터링적용
17.3스프링데이터리포지토리에필터링이용
요약

▣18장실전-OAuth2애플리케이션
18.1애플리케이션시나리오
18.2Keycloak을권한부여서버로구성
__18.2.1시스템에클라이언트등록
__18.2.2클라이언트범위지정
__18.2.3사용자추가및액세스토큰얻기
__18.2.4사용자역할정의
18.3리소스서버구현
18.4애플리케이션테스트
__18.4.1사용자가자기레코드만추가할수있는지증명
__18.4.2사용자가자기레코드만가져올수있는지증명
__18.4.3관리자만레코드를삭제할수있는지증명
요약

▣19장:리액티브앱을위한스프링시큐리티
19.1리액티브앱이란?
19.2리액티브앱에서의사용자관리
19.3리액티브앱에서권한부여규칙구성
__19.3.1리액티브앱의엔드포인트계층에권한부여적용
__19.3.2리액티브앱에메서드보안적용
19.4리액티브앱과OAuth2
요약

▣20장:스프링시큐리티테스트
20.1모의사용자로테스트
20.2UserDetailsService의사용자로테스트
20.3맞춤형인증Authentication객체를이용한테스트
20.4메서드보안테스트
20.5인증테스트
20.6CSRF구성테스트
20.7CORS구성테스트
20.8리액티브스프링시큐리티구현테스트
요약

▣부록A:스프링부트프로젝트만들기
A.1start.spring.io로프로젝트만들기
A.2STS(스프링툴스위트)로프로젝트만들기