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

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

스프링 시큐리티 3

스프링 시큐리티 3

(스프링 프레임워크 기반 표준 보안 솔루션)

피터 뮬라리엔 (지은이), 유윤선 (옮긴이)
위키북스
25,000원

일반도서

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

중고도서

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

eBook

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

책 이미지

스프링 시큐리티 3
eBook 미리보기

책 정보

· 제목 : 스프링 시큐리티 3 (스프링 프레임워크 기반 표준 보안 솔루션)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 웹 서비스/웹 프로그래밍
· ISBN : 9788992939645
· 쪽수 : 424쪽
· 출판일 : 2010-12-15

책 소개

스프링 시큐리티 프레임워크에 대해 전면을 할애해 설명한 최초의 기술 서적이다. 이 책은 크게 두 부분으로 구성된다. 전반부에서는 보안에 대한 기본 개념을 시작으로 인증, 권한부여, 미세 접근 제어, ACL 모듈 등 스프링 시큐리티 프레임워크와 관련한 주제에 대해 하나씩 설명하고 후반부에서는 OpenID, CAS, LDAP 등 외부 시스템과의 연동을 다룬다.

목차

01장 보안에 취약한 애플리케이션의 해부

보안 감사
예제 애플리케이션 소개
- JBCP 애완동물 상점 애플리케이션의 아키텍처
- 애플리케이션 개발도구
보안 감사 결과 검토
- 인증
- 권한부여
- 데이터베이스 크리덴셜 보안
- 민감한 정보
- 전송 레벨 보안
보안 문제 해결을 위한 스프링 시큐리티 3 사용
- 왜 스프링 시큐리티인가?
요약

02장 스프링 시큐리티 시작하기

핵심 보안 개념
- 인증
- 권한부여
간단한 절차를 통해 애플리케이션에 보안 적용하기
- 스프링 시큐리티 XML 설정 파일 구현하기
- web.xml 파일에 스프링 DelegatingFilterProxy 추가하기
- web.xml 파일에 스프링 시큐리티 XML 파일 레퍼런스 추가하기
- 부족한 부분들에 대한 고려사항!
보안은 복잡한 주제다?보호된 웹 요청의 아키텍처
- 요청은 어떻게 처리될까?
- auto-config가 내부적으로 하는 작업들
- 사용자들은 어떻게 인증받을까?
- 요청은 어떻게 권한부여를 받을까?
요약

03장 사용자 경험 개선

로그인 페이지 커스터마이징하기
- 커스텀 로그인 페이지 구현하기
로그아웃 기능 이해하기
- 사이트 헤더에 Log Out 링크 추가하기
- 로그아웃 동작 원리
remember me
- remember me 옵션 구현하기
- remember me 기능의 동작원리
- remember me 기능은 과연 안전할까?
비밀번호 수정 기능 구현하기
- 패스워드 변경 기능을 지원하도록 인 메모리 크리덴셜 스토어
- 확장하기
요약

04장 크리덴셜 안전하게 저장하기

스프링 시큐리티에서 데이터베이스를 사용한 인증 적용하기
- 데이터베이스 인증 스토어 설정하기
- 데이터베이스 기반 인증의 동작 원리
- 커스텀 JDBC UserDetailsService 구현하기
- 기본으로 제공되는 JDBC 기반 사용자 관리
JdbcDaoImpl에 대한 고급 설정
- 그룹 기반 권한부여 설정하기
- 데이터베이스 인증 시 레거시 또는 커스텀 스키마 사용하기
보안 패스워드 설정하기
- 패스워드 인코딩 설정하기
- 패스워드에 소금을 조금 치는 것은 어떨까?
솔트 패스워드 설정하기
- 패스워드 변경 기능 개선하기
- 커스텀 솔트 소스 설정하기
remember me 기능을 데이터베이스로 이전하기
- 데이터베이스에 상주하는 remember me 토큰 설정하기
- 데이터베이스에 저장된 토큰은 더 안전할까?
SSL을 사용한 사이트 보안
- SSL 사용을 위해 아파치 톰캣 설정하기
- 자동으로 사이트 영역 보호하기
요약

05장 미세 접근 제어

애플리케이션 기능과 보안에 대해 다시 생각하기
- 애플리케이션 보안에 대한 기획
- 사용자 역할 기획
- 페이지 레벨 보안 기획하기
다양한 미세 권한부여 방법
- 스프링 시큐리티의 태그 라이브러리를 사용해 조건에 따라 콘텐츠
- 렌더링하기
- 컨트롤러 로직을 사용해 조건적으로 콘텐츠 렌더링하기
- 페이지 내 권한부여를 설정하는 가장 좋은 방법은 무엇일까?
비즈니스 티어 보호하기
- 비즈니스 메서드 보안의 기본
- 메서드 보안의 여러가지 방식
- 메서드 보안의 동작 원리
고급 메서드 보안
- 빈 데코레이터를 사용한 메서드 보안 규칙
- 메서드 파라미터를 포함하는 메서드 보안 규칙
- 메서드 파라미터 바인딩의 동작 원리
역할 기반 필터링을 통해 메서드 데이터 보호하기
- 메서드 보안에 대한 합리적인 경고
요약

06장 고급 설정과 확장

커스텀 보안 필터 작성하기
- 서블릿 필터 레벨에서의 IP 필터링
커스텀 AuthenticationProvider 작성하기
- AuthenticationProvider를 사용해 간단한 싱글 사인 온 구현하기
- 여러 AuthenticationProvider 결합하기
- 요청 헤더를 사용해 싱글 사인 온 시뮬레이션하기
- 커스텀 AuthenticationProvider의 사용 시점에 대한 고려사항
세션 관리와 동시성
- 세션 고정 보호 설정하기
- 동시 세션 제어를 통해 사용자 보안 강화하기
- 동시 세션 제어의 다른 장점들
예외 처리 이해하고 설정하기
- 접근 거부 처리 설정하기
- AccessDeniedException을 일으키는 원인
- AuthenticationEntryPoint의 중요성
수동으로 스프링 시큐리티 인프라스트럭처 빈 설정하기
- Spring Security 빈 의존관계의 전체적인 설명
- 웹 애플리케이션 재설정하기
- 최소 스프링 시큐리티 환경 설정하기
고급 스프링 시큐리티 빈 기반 설정
- 세션 라이프사이클과 연관된 요소들 조정하기
- 다른 서비스들에 대한 수동 설정
- SpEL 표현식 핸들러와 Voter를 사용한 명시적 설정
- 메서드 보안에 대한 빈 기반 설정
- 명시적인 설정 마무리하기
- 어떤 방식의 설정을 택해야 할까?
인증 이벤트 처리
- 인증 이벤트 리스너 설정하기
- 수많은 애플리케이션 이벤트들
SpEL 표현식 핸들러의 커스텀 구현체 개발하기
요약

07장 접근 제어 목록

비즈니스 객체 보안에 접근 제어 목록 사용하기
- 스프링 시큐리티에서의 접근 제어 목록
스프링 시큐리티 ACL 지원 기능을 위한 기본 설정
- 간단한 대상 시나리오 가정하기
- HSQL 데이터베이스에 ACL 테이블 추가하기
- 접근 결정 관리자 설정하기
- ACL 지원 빈 설정하기
- 간단한 ACL 엔트리 생성하기
고급 ACL 주제들
- 퍼미션의 동작 원리
- 커스텀 ACL 퍼미션 선언
- 스프링 시큐리티 JSP 태그 라이브러리를 사용해 JSP에서
- ACL 활성화하기
- ACL을 지원하는 스프링 표현식 언어
- 뮤터블 ACL과 권한부여
- Ehcache ACL 캐싱
일반적인 ACL 디플로이에 대한 고려
- ACL 규모의 확장성과 성능 모델링
- 커스텀 개발에 들어가는 비용을 간과하지 말자
- 스프링 시큐리티 ACL을 꼭 사용해야 할까?
요약

08장 OpenID에 대한 개방

OpenID라는 약속의 땅
- OpenID 가입
스프링 시큐리티에서의 OpenID 인증 사용
- OpenID 로그인 폼 작성
- 스프링 시큐리티에서의 OpenID 지원 기능 설정
- OpenID 사용자 추가하기
OpenID 사용자 등록 문제
- OpenID 식별자가 해석되는 과정
- OpenID를 이용한 사용자 등록 구현
어트리뷰트 교환
- 스프링 시큐리티 OpenID에서의 AX 사용
- 현실에서의 AX 지원과 제약
- 구글 OpenID 지원
OpenID는 안전할까?
요약

09장 LDAP 디렉터리 서비스

LDAP 이해
- LDAP
- 일반 LDAP 어트리뷰트 이름
- 임베디드 LDAP 서버 실행
기본 LDAP 연동 설정
- LDAP 서버 레퍼런스 설정하기
- LDAP AuthenticationProvider 사용
- 임베디드 LDAP 문제 해결
스프링 LDAP 인증 방식 이해
- 사용자 크리덴셜 인증
- 사용자 역할 멤버십 판단
- UserDetails의 추가 어트리뷰트 매핑
고급 LDAP 설정
- 예제 JBCP LDAP 사용자
- 비밀번호 비교 vs. 바인딩 인증
- UserDetailsContextMapper 설정
- 또 다른 password 어트리뷰트 사용
- LDAP을 UserDetailsService로 사용
외부 LDAP 서버와의 연동
명시적 LDAP 빈 설정
- 외부 LDAP 서버 레퍼런스 설정
- LdapAuthenticationProvider 설정
- LDAP을 통한 마이크로소프트 액티브 디렉터리와의 연동
- UserDetailsService에 역할 검색 위임
요약

10장 CAS를 활용한 싱글 사인 온

CAS 소개
- 고수준 CAS 인증 흐름
- 스프링 시큐리티와 CAS
- CAS 설치와 설정
기본 CAS 연동 설정
- CasAuthenticationEntryPoint 추가
- CAS 티켓 검증 사용
- CasAuthenticationProvider를 활용한 진위성 증명
고급 CAS 설정
- CAS 단언으로부터의 어트리뷰트 조회
- 어트리뷰트 조회가 왜 유용할까?
- 추가적인 CAS의 기능들
요약

11장 클라이언트 인증서 인증

클라이언트 인증서 인증의 동작 원리
클라이언트 인증서 인증 인프라스트럭처 설정
- 공개 키 인프라스트럭처의 용도 이해
- 클라이언트 인증서 키 쌍 생성하기
- 톰캣 트러스트 스토어 설정
- 브라우저로 인증서 키 쌍 불러오기
- 테스트 마무리
- 클라이언트 인증서 인증 문제 해결
스프링 시큐리티에서의 클라이언트 인증서 인증 설정
- security 네임스페이스를 사용한 클라이언트 인증서 인증 설정
- 스프링 시큐리티가 인증서 정보를 사용하는 원리
- 스프링 시큐리티 인증서 인증의 동작 원리
- 나머지 부족한 부분들
- 듀얼 모드 인증 지원
스프링 빈을 사용한 클라이언트 인증서 설정
- 빈 기반 설정의 추가 기능
클라이언트 인증서 인증 구현 시 고려 사항-
요약

12장 스프링 시큐리티 확장 프로젝트

스프링 시큐리티 확장 프로젝트
커베로스와 SPNEGO 인증에 대한 기초 지식
스프링 시큐리티에서의 커베로스 인증
- 전체적인 커베로스 스프링 시큐리티 인증 흐름
- 준비 작업
- 커베로스 관련 스프링 빈 설정
- SPNEGO 빈을 security 네임스페이스에 연결하기
- 애플리케이션 서버 장비를 커베로스 영역에 추가
- 파이어폭스 사용자들에 대한 고려 사항
- 문제 해결
커베로스와의 연동을 위한 LDAP UserDetailsService 설정
커베로스와 함께 폼 로그인 사용하기-
요약

13장 스프링 시큐리티 3으로 마이그레이션하기

스프링 시큐리티 2에서 마이그레이션하기
스프링 시큐리티 3의 개선 사항
스프링 시큐리티 3에서의 설정 변화
- AuthenticationManager 설정 수정
- 세션 관리 옵션을 위한 새로운 설정 구문
- 커스텀 필터 설정에 대한 변경사항
- CustomAfterInvocationProvider에 대한 변경 사항
- 그 밖의 설정 변경 사항
패키지와 클래스 관련 변경 사항
요약

부록 추가 참고 자료

JBCP Pets 예제 코드 시작하기
사용 가능한 애플리케이션 이벤트
스프링 시큐리티 가상 URL
메서드 보안을 위한 명시적인 빈 설정
논리적인 필터명의 마이그레이션 참고 사항

저자소개

피터 뮬라리엔 (지은이)    정보 더보기
경험이 풍부한 소프트웨어 설계자이자 엔지니어며, 『스프링 시큐리티 3』(위키북스, 2010)의 저자기도 하다. 현재 대형 금융 회사에서 근무하고 있으며, 자바, 스프링, 오라클 및 기타 여러 엔터프라이즈 기술에 12년 이상의 컨설팅 및 제품 경험을 보유하고 있다. 또한 이 책의 기술 감수자기도 하다.
펼치기
유윤선 (옮긴이)    정보 더보기
인디 개발자이자 프리랜서 번역가로 활동 중이다. 역서로는 『단일 페이지 웹 애플리케이션』, 『전문가를 위한 안드로이드 프로그래밍』, 『하둡 인 프랙티스』, 『시작하세요! iOS 6프로그래밍』, 『프로페셔널 Node.js프로그래밍』, 『NoSQL프로그래밍』, 『프로 스프링 3』, 『라이프해커』, 『시작하세요! 아이폰 5 프로그래밍』, 『안드로이드 레시피』, 『시작하세요! Unity 3D 게임 프로그래밍』, 『시작하세요! 안드로이드 게임 프로그래밍』, 『시작하세요! 아이폰 4프로그래밍』, 『플래시 빌더 4& 플렉스 4바이블』, 『쉽고 빠르게 익히는 CSS3』, 『스프링 시큐리티 3』, 『시작하세요! 아이패드 프로그래밍』 등이 있다.
펼치기

책속에서

이 책은 웹 보안에 대해 고민하는 모든 사람들에게 추천하는 책이다. 저자인 피터 뮬라리엔은 스프링 프레임워크 포럼에서 고정 패널로 활동하고 있으며 오랜 시간 동안 많은 개발자들이 올린 질문에 답하고 의견을 나누었고 개발자들이 정말 궁금한 게 뭔지 알고 있는 뛰어난 개발자다. 저자는 이 책을 읽는 독자들이 스프링 시큐리티를 최대한 쉽게 이해하게끔 각종 다이어그램을 사용해 전체적인 흐름을 보여주고 한 주제를 한 번에 하나씩 찬찬히 설명한다. 저자의 오랜 경험에서 나온 혜안은 스프링 시큐리티를 공부할 때 독자들이 피부로 느끼는 궁금증을 해소하기에 부족함이 없으며 저자가 중간 중간 주는 팁은 보안 담당 개발자라면 항상 염두에 둬야 할 내용으로 가득 차 있다.

이 책은 크게 스프링 시큐리티 프레임워크의 기본 지식을 다루는 전반부(1~7장), 외부 시스템 연동을 다루는 후반부(8~12장), 마이그레이션을 다루는 13장으로 구성된다. 이 책은 레시피 형태의 책은 아니고 처음부터 하나씩 내용을 익히다 보면 어느새 기본 지식을 튼튼히 다질 수 있게 해주는 책이다.

역자는 스프링 시큐리티를 이루는 두 축인 인증(authentication)과 권한부여(authorization)에 대한 설명이 이 책의 핵심이라고 생각한다. 우선 이 두 가지에 대한 설명을 이해하고 나면 이후의 설명은 이러한 인증, 권한부여를 어디까지 미세하게 적용하고, 어느 부분과 연동할 것인가에 관한 상세 설명으로 볼 수 있다. 역자는 이 책의 인증과 권한부여에 대한 도입부 설명이 마치 아리아드네의 실(Ariadne's thread)과 같다고 느꼈다. 그리스 로마 신화에서 테세우스가 미노타우로스의 미로에서 아리아드네의 실을 붙잡고 미로를 무사히 빠져나올 수 있었던 것처럼 독자들도 인증과 권한부여에 대한 두 주요 주제에 대한 이 책의 설명을 이해하기만 하면 아무리 복잡한 권한 적용도 스프링 시큐리티를 통해 손쉽게 할 수 있을 거라 확신한다.

스프링 시큐리티는 말 그대로 스프링 기반의 보안 프레임워크다. 이 책에서는 스프링에 대한 기본 지식을 전제하지만 스프링에 대한 최소한의 지식(주로 스프링 웹 MVC)을 갖춘 자바 개발자라면 누구든지 이 책을 볼 수 있다. 스프링 시큐리티는 스프링의 CoC 원칙을 그대로 계승한 프레임워크다. 복잡한 설정이 싫은 개발자라면 관례를 따라 개발하면 되고, 프로젝트에서 복잡한 보안 규칙을 적용해야 한다면 단계적인 보안 선언을 통해 원하는 수준의 보안을 적용할 수 있다. CoC 원칙으로 인해 초기 기본 설정에 대한 진입 장벽은 매우 낮으며 이후 프로젝트와 관련한 보안 규칙을 원하는 대로 커스터마이징하거나 오버라이드할 수 있다. 이 책이 웹 보안으로 고민하는 많은 분들에게 아리아드네의 실 같은 책이 되기를 바란다.


이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책