logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

Spring Security 3/e

Spring Security 3/e

(스프링 시큐리티를 이용한 애플리케이션 보안)

믹 넛슨, 로버트 윈치, 피터 뮬라리엔 (지은이), 김지연 (옮긴이)
에이콘출판
40,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
36,000원 -10% 0원
2,000원
34,000원 >
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

Spring Security 3/e
eBook 미리보기

책 정보

· 제목 : Spring Security 3/e (스프링 시큐리티를 이용한 애플리케이션 보안)
· 분류 : 국내도서 > 컴퓨터/모바일 > OS/Networking > 네트워크 보안/해킹
· ISBN : 9791161752488
· 쪽수 : 624쪽
· 출판일 : 2019-01-29

책 소개

보안의 기본 개념 설명과 함께 보안에 취약한 애플리케이션을 스프링 시큐리티 프레임워크를 이용해 견고하고 안전하게 구현하는 과정을 단계적으로 다룬다. 애플리케이션에 인증 및 접근 제어 메커니즘 연동, 동시성 제어, 세션 관리 등 스프링 시큐리티 4.2의 기초부터 활용까지 상세한 가이드를 제시한다.

목차

1장. 취약한 애플리케이션의 구조
__보안 감사
____샘플 애플리케이션 소개
____JBCP 달력 애플리케이션의 구조
__애플리케이션 테크놀로지
____보안 감사 결과 리뷰
__인증
__권한 부여
____데이터베이스 내 인증 정보 보안
__요약


2장. 스프링 시큐리티 시작하기
__스프링 시큐리티 기본 설정
____샘플 애플리케이션 가져오기
____의존성 업데이트
____스프링 시큐리티 XML 설정 파일 구현
____web.xml 파일 업데이트
____안전한 애플리케이션 실행
____자주 발생하는 문제점
__약간의 기능 추가
____사용자 정의 로그인 페이지
__요약


3장. 사용자 정의 인증
__JBCP 달력의 구조
____CalendarUser 객체
____Event 객체
____CalendarService 인터페이스
____UserContext 인터페이스
____SpringSecurityUserContext 인터페이스
__SecurityContextHolder를 사용한 새로운 사용자 로그인
____스프링 시큐리티에서의 사용자 관리
____새로운 사용자로 로그인
____SignupController 업데이트
__사용자 정의 UserDetailsService 객체 생성
____CalendarUserDetailsService 클래스
____UserDetailsService 설정
____UserDetailsManager에 대한 참조 제거
____CalendarUserDetails 객체
____SpringSecurityUserContext 단순화
__사용자 정의 AuthenticationProvider 객체 생성
____CalendarUserAuthenticationProvider
____CalendarUserAuthenticationProvider 객체
____다른 매개변수를 이용한 인증
__인증 메서드 선택
__요약


4장. JDBC 기반 인증
__필수 의존성
__H2 데이터베이스 사용
____제공된 JDBC 스크립트
____H2 임베디드 데이터베이스 설정
____JDBC UserDetailsManager 구현체 설정
__스프링 시큐리티의 기본 사용자 스키마
____사용자 정의
____사용자 권한 정의
__UserDetailsManager 인터페이스
____그룹 기반 접근 제어 그룹 기반 접근 제어 설정
__사용자 정의 스키마 지원
____올바른 JDBC SQL 쿼리 판단
____로드된 SQL 스크립트 업데이트
____CalendarUser 권한 SQL
____사용자 정의 권한 삽입
____사용자 정의 SQL 쿼리 사용을 위한 JdbcUserDetailsManager 설정
__보안 패스워드 설정
__PasswordEncoder 메서드
____패스워드 인코딩 설정
____PasswordEncoder 메서드 설정
____스프링 시큐리티에 PasswordEncoder 메서드 적용
__스프링 시큐리티에 솔트 적용
____스프링 시큐리티 설정 업데이트
____기존 패스워드 마이그레이션
____DefaultCalendarUserService 업데이트
__솔트를 적용한 패스워드 사용
__요약


5장. 스프링 데이터를 이용한 인증
__스프링 데이터 JPA
____의존성 업데이트
____스프링 데이터 JPA 사용을 위한 JBCP 달력 업데이트
____데이터베이스 설정 재구성
____데이터베이스 초기화
__SQL에서 ORM으로 리팩토링
____JPA를 사용한 도메인 객체 매핑
____스프링 데이터 저장소
____데이터 액세스 객체
__애플리케이션 서비스
__UserDetailsService 객체
____RDBMS를 문서 데이터베이스로 리팩토링
__MongoDB를 사용한 문서 데이터베이스 구축
____의존성 업데이트
____MongoDB의 데이터베이스 설정 재구성
____MongoDB 데이터베이스 초기화
____MongoDB와 도메인 객체 매핑
____MongoDB의 데이터 액세스 객체
__요약


6장. LDAP 디렉터리 서비스
__LDAP 이해
____LDAP
____임베디드 LDAP 문제 해결
__스프링 LDAP 인증 방식 이해
____사용자 자격 증명 인증
____아파치 DS를 통한 인증 과정
__아파치 DS를 통한 역할 결정
____UserDetails의 추가 애트리뷰트 매핑
____고급 LDAP 설정
____LDAP 패스워드 인코딩과 저장
____패스워드 비교 인증의 단점
__UserDetailsContextMapper 객체 설정
____UserDetailsContextMapper의 암시적 설정
____사용자 추가 상세 정보 보기
LdapUserDetailsService 설정
__LdapUserDetailsService를 사용하기 위한 AccountController 업데이트
____외부 LDAP 서버와 스프링 시큐리티 연동
__명시적 LDAP 빈 설정
____외부 LDAP 서버 참조 설정
____LdapAuthenticationProvider 인터페이스 설정
____UserDetailsService에 대한 역할 검색 위임
__LDAP를 통한 마이크로소프트 AD 연동
____스프링 시큐리티 4.2의 AD 지원
__요약


7장. Remember-Me 서비스
__Remember-Me
____의존성
____토큰 기반 Remember-Me 기능
__MD5
____Remember-Me 시그니처
__Remember-Me의 안전성
____Remember-Me를 위한 권한 부여 규칙
__영구 토큰 기반 Remember-Me 설정
____영구 토큰 기반 Remember-Me 기능의 동작 원리
__JPA 기반 PersistentTokenRepository
____사용자 정의 Remember-Me 서비스
____만료된 Remember-Me 세션 정리
__Remember-Me 아키텍처
____Remember-Me와 사용자 라이프 사이클
____IP 주소를 통한 Remember-Me 기능 제한
__사용자 정의 쿠키 및 HTTP 매개변수명
__요약


8장. TLS를 사용한 클라이언트 인증서 인증
__클라이언트 인증서 인증의 동작 원리
____클라이언트 인증서 인증 인프라 설정
____웹 브라우저로 인증서 키 쌍 불러오기
____클라이언트 인증서 인증 문제 해결
____스프링 시큐리티에서 클라이언트 인증서 인증 설정
____security 네임스페이스를 사용한 클라이언트 인증서 인증 설정
__스프링 빈을 사용한 클라이언트 인증서 설정
____빈 기반 설정의 추가 기능
____클라이언트 인증서 인증 구현 시 고려 사항
__요약


9장. OAuth 2 적용하기
__OAuth 2의 가능성
____OAuth 2 애플리케이션 가입
____스프링 시큐리티에서 OAuth 인증 활성화
____추가 필수 의존성
__스프링 시큐리티에서의 OAuth 2 구성
____로컬 UserConnectionRepository
____프로바이더 정보에 대한 로컬 데이터베이스 엔트리 생성
____사용자 정의 UserConnectionRepository 인터페이스
____ConnectionSignup의 흐름
__OAuth 2 프로바이더 연결
____OAuth 2 사용자 추가
____OAuth 2 컨트롤러 로그인 절차
__추가 OAuth 2 프로바이더
____OAuth 2 사용자 등록 문제
____비표준 OAuth 2 프로바이더 등록
__OAuth 2의 안전성
__요약


10장. CAS를 활용한 SSO
__CAS 소개
__고수준 CAS 인증 흐름
__스프링 시큐리티와 CAS
____의존성
____CAS 설치와 설정
__CAS 기본 연동 설정
____CAS ServiceProperties 객체 생성
____CasAuthenticationEntryPoint 객체 추가
____CAS 티켓 검증 사용CasAuthenticationProvider 객체를 이용한 진위성 증명
__단일 로그아웃
____단일 로그아웃 설정
__클러스터 환경
____Stateless 서비스에 대한 프록시 티켓 인증
____프록시 티켓 인증 설정
__프록시 티켓 사용
____프록시 티켓 인증
__CAS 서버 사용자 정의
____CAS WAR 오버레이
____CAS 내부 인증 작동 방식
____임베디드 LDAP 서버와 CAS 연결 설정
__CAS 단언으로부터 UserDetails 객체 생성
____CAS 응답에 LDAP 애트리뷰트 반환
____LDAP 애트리뷰트와 CAS 애트리뷰트 매핑
____사용자 정의 애트리뷰트에 접근하기 위한 CAS 서비스 권한 부여
____CAS로부터 UserDetails 획득
____GrantedAuthorityFromAssertionAttributesUser 객체
____SAML 1.1을 사용한 또 다른 티켓 인증
____애트리뷰트 조회의 유용성
__추가 CAS 기능
__요약


11장. 미세 접근 제어
__그레이들 의존성
____스프링 표현 언어 통합
__Thymeleaf 스프링 시큐리티 태그 라이브러리를 활용한 조건부 렌더링
____URL 접근 규칙을 기반으로 한 조건부 렌더링
____SpEL을 활용한 조건부 렌더링
____컨트롤러 로직을 사용한 조건부 컨텐츠 렌더링
____WebInvocationPrivilegeEvaluator 클래스
____페이지 내 권한 부여를 설정하는 최적의 방법
____메서드 레벨 보안
____다중 보안의 필요성
__인터페이스 기반 프록시
__JSR-250 호환 표준 규칙
____스프링의 @Secured 어노테이션을 사용한 메서드 보안
____메서드 매개변수를 포함하는 메서드 보안 규칙
____반환된 값을 통합하는 메서드 보안 규칙
____역할 기반 필터링을 통한 메서드 데이터 보호
____@PreFilter를 사용한 컬렉션 사전 필터링
____메서드 권한 부여 타입 비교
____어노테이션 기반 보안을 위한 고려 사항
__요약


12장. 접근 제어 목록
__ACL 개념 모듈
__스프링 시큐리티에서의 ACL
__스프링 시큐리티 ACL 지원을 위한 기본 설정
____그레이들 의존성
____예제 시나리오 설정
____H2 데이터베이스에 ACL 테이블 추가
____SecurityExpressionHandler 설정
____AclPermissionCacheOptimizer 객체
____간단한 ACL 엔트리 생성
____고급 ACL 주제
____사용자 정의 ACL 퍼미션 선언
____ACL 퍼미션 평가 활성화
____수정 가능 ACL과 권한 부여
____일반적인 ACL 적용 시 고려 사항
____스프링 시큐리티 ACL의 필요성
__요약


13장. 사용자 정의 권한 부여
__요청에 대한 권한 부여
____접근 결정의 취합 방식 설정
____UnanimousBased 접근 결정 관리자 설정
____요청에 대한 표현식 기반 권한 부여
__URL에 대한 접근 제어의 동적 정의
____RequestConfigMappingService 설정
____사용자 정의 SecurityMetadataSource 구현
____사용자 정의 SecurityMetadataSource 등록
____antMatchers() 메서드 제거
__사용자 정의 표현식 생성
____사용자 정의 SecurityExpressionRoot 설정
____사용자 정의 SecurityExpressionHandler 설정
____CustomWebSecurityExpressionHandler 설정과 사용
____CustomWebSecurityExpressionHandler에 대한 대안
__요약


14장. 세션 관리
__세션 고정 보호 설정.
____세션 고정 공격에 대한 이해
____스프링 시큐리티를 사용한 세션 고정 공격 방어
____세션 고정 공격 시뮬레이션
____세션 고정 보호 옵션 비교
__사용자 당 동시 세션 수 제한
____동시 세션 제어 설정
__ㅍ동시 세션 제어 테스트
__만료 세션 리다이렉트 설정.
__동시성 제어의 일반적인 문제점
____강제 로그아웃 대신 인증 방지 설정
__동시 세션 제어의 장점
__사용자의 활성화된 세션 표시
____스프링 시큐리티가 HttpSession 메서드를 사용하는 방법
____HttpSessionSecurityContextRepository 인터페이스
____스프링 시큐리티에 HttpSession를 사용하도록 설정
____스프링 시큐리티의 DebugFilter를 이용한 디버깅
__요약


15장. 스프링 시큐리티의 추가 기능
__보안 취약점
__크로스 사이트 스크립팅
__사이트 간 요청 변조
____동기화 토큰
____CSRF 보호 사용 시점
____기본 CSRF 지원
____CSRF 보호 구현 시 주의사항
__보안 HTTP 응답 헤더
____기본 보안 헤더
____사용자 정의 헤더
__요약


16장. 스프링 시큐리티 4.2 마이그레이션
__소개
__샘플 마이그레이션
____스프링 시큐리티 4.2의 향상된 기능
____스프링 시큐리티 4.x의 기타 변경 사항
____스프링 시큐리티 4의 설정 변경
__삭제된 기능
____spring-security-core 삭제
____spring-security-web 삭제
____기본 필터 URL 마이그레이션
____JAAS
__요약


17장. OAuth 2 및 JSON 웹 토큰을 이용한 마이크로서비스 보안
__마이크로서비스의 개념
____단일체.
____마이크로서비스
__서비스 기반 아키텍처
__마이크로서비스 보안
____서비스 통신
____결합성
____기술적 복잡성
__OAuth 2 사양
____액세스 토큰
____권한 부여 방식
__JSON 웹 토큰(JWT)
____토큰 구조
__스프링 시큐리티에서의 OAuth 2 지원
____자원 소유자
____자원 서버
____권한 부여 서버
____RSA JWT 액세스 토큰 변환기 keypair
____OAuth 2 resource 속성 설정
____OAuth 2 Client 속성 설정
____JWT 액세스 토큰 변환기
____UserDetailsService 객체
____OAuth 2 서버 애플리케이션 실행
__마이크로서비스 클라이언트
____OAuth 2 클라이언트 설정
__요약
__JBCP 달력 샘플 코드 시작


부록. 참고 자료
__그레이들 빌드툴
__그레이들 IDE 플러그인
__새로운 작업 공간 생성
__샘플 코드의 구조
__샘플 코드 가져오기
__샘플 코드 실행
__톰캣 HTTPS 설정
__보충 자료

저자소개

피터 뮬라리엔 (지은이)    정보 더보기
경험이 풍부한 소프트웨어 설계자이자 엔지니어며, 『스프링 시큐리티 3』(위키북스, 2010)의 저자기도 하다. 현재 대형 금융 회사에서 근무하고 있으며, 자바, 스프링, 오라클 및 기타 여러 엔터프라이즈 기술에 12년 이상의 컨설팅 및 제품 경험을 보유하고 있다. 또한 이 책의 기술 감수자기도 하다.
펼치기
믹 넛슨 (지은이)    정보 더보기
IT 산업 분야에서 25년 이상의 경력을 갖고 있다. 열정적이고 경험이 풍부한 엔터프라이즈 기술 컨설턴트이자 자바 설계자 및 소프트웨어 개발자로, 자신만의 특별하고 전문적인 경험을 바탕으로 학생들이 효과적이고, 실용적이며, 편리한 방법으로 소프트웨어 개발에 대해 학습할 수 있도록 노력하고 있다. 개인 및 대규모 기업체에 고급 소프트웨어 컨설팅과 교육을 제공하면서 실무 지식을 얻었다. VMware, Spring Source, FuseSource, Global Knowledge, Knowledge United를 포함해 유명 클라이언트 및 파트너와 협력했으며, OOA/OOD/OOP, 자바, 자바 EE, 스프링 시큐리티, 오라클, 기업 통합(Enterprise Integration), 메시지지향 미들웨어(Message-Oriented Middleware, MOM) 등의 전문 기술을 보유하고 있다. IT 업계의 배테랑으로서 가능한 한 많은 사람을 돕기로 결심하고, 누구나 소프트웨어 개발자가 될 수 있다는 것을 보여주기로 마음먹었다. 이를 위해 전 세계적으로 연구 세미나, 오찬 세미나, 서적 출판 계약 및 백서 계약을 진행하고 있다. 또한 스프링 시큐리티, 자바 EE 6, HTTP 및 VisualVM에 관한 여러 기술 서적을 저술하고 기사를 게재했고, DZone에서 블로거로 활동 중이며, MVB(Most Valuable Blogger) 그룹의 일원이다. 20년 넘게 소프트웨어 개발에 몰두한 경험을 바탕으로 복잡한 기술 개념을 다양한 사용자가 이해하기 쉬운 언어로 변환하는 것을 즐긴다. 따라서 숙련된 소프트웨어 전문가에게든 경험이 없는 초보자에게든 복잡한 IT 개념을 간소화해 설명해줄 수 있다. 노련한 전문가의 경험을 토대로 소프트웨어 개발에 대해 알고 싶어 하는 모든 사람을 돕는 것을 목표로 삼고 있다. 이를 위해 교육 과정을 최대한 풍부하고, 매끄러우며, 간편하게 만들어 학습자가 최단 시간 안에 소프트웨어를 마스터할 수 있도록 설계했다. 학습자가 돈과 시간을 최대한 효율적으로 활용해 소프트웨어 개발을 올바르게 배울 수 있도록 하기 위해 노력 중이다.
펼치기
로버트 윈치 (지은이)    정보 더보기
현재 VMware의 선임 소프트웨어 엔지니어며, 스프링 시큐리티 프레임워크의 프로젝트 팀장이다. 이전에는 미국의 가장 큰 전자 의료 시스템 제공 업체인 서너(Cerner)에서 소프트웨어 설계자로 근무하면서 의료 애플리케이션 보안을 담당했다. 경력 전반에 걸쳐 다양한 보안 표준(LDAP, SAML, CAS, OAuth 등)을 스프링 시큐리티에 적용시키며 실무 경험을 쌓았다. 서너에서 일하기 전에는 로욜라 대학(Loyola University Chicago)의 단백질학 연구소와 아르곤 국립 연구소(Argonne National Labortory)의 Globus Toolkit을 위한 프리랜서 웹 계약자로 일했다.
펼치기
김지연 (옮긴이)    정보 더보기
보안 컨설팅 전문 회사에서 모의 해킹 컨설턴트로 재직하고 있으며, 웹 및 모바일 애플리케이션 등의 다양한 영역에서 취약점 점검 업무를 수행하고 있다. 아직 국내에 잘 알려지지 않은 보안 지식을 다양한 독자에게 공유하고 이해시키고자 개인 블로그 및 해외 서적 번역을 통해 노력 중이다. 앞으로도 계속 보안 기술을 탐구하고 알리기 위해 노력할 것이다.
펼치기
이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책