본문내용 바로가기
MD의선택 무료배송 소득공제

스프링 시큐리티 3 스프링 프레임워크 기반 표준 보안 솔루션

위키북스 오픈소스 웹 시리즈 26
피터 뮬라리엔 지음 | 유윤선 옮김 | 위키북스 | 2010년 12월 17일 출간
  • 정가 : 25,000원
    판매가 : 22,500 [10%↓ 2,500원 할인]
  • 통합포인트 :
    [기본적립] 1,250원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2천원 추가적립 안내 [회원혜택] 실버등급 이상, 3만원 이상 구매 시 2~4% 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 도서상태 : 절판
상품상세정보
ISBN 9788992939645(8992939647)
쪽수 424쪽
크기 188 * 240 mm 판형알림
이 책의 원서/번역서 Spring security 3 / Mularien, Peter

책소개

이 책이 속한 분야

중급 규모의 엔터프라이즈 소프트웨어 벤더의 수석 개발자이자 설계자 피터 뮬라리엔의 『스프링 시큐리티 3』. 웹 보안에 대해 고민하는 모든 사람을 위해 저술된 것이다. 스프링을 바탕에 둔 보안 프레임워크인 스프링 시큐리티 3에 대해 배워나갈 수 있다. 스프링의 CoC 원칙을 고스란히 계승한 프레임워크인 스프링 시큐리티에 대해 얻은 지식을 직접 적용하고 응용하도록 인도한다.

목차

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

이 책에서는 보안에 대한 기본 설명을 시작으로 스프링 시큐리티의 설정을 살펴보고 이어서 간단한 JSP 웹사이트를 사용해 단계적으로 스프링 시큐리티의 보... 더보기

Klover 리뷰 (0)

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면
결제 90일 이내 300원, 발송 후 5일 이내 400원, 이 상품의 첫 리뷰 500원의 포인트를 드립니다.

포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
북로그 리뷰는 본인인증을 거친 회원만 작성 가능합니다.
(※ 외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외) 안내
  • 해당도서의 리뷰가 없습니다.

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매도서의 문장수집을 기록하면 통합포인트 적립 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①서양도서-판매정가의 12%, ②일본도서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 책의 원서/번역서

안내

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품