티스토리 뷰

1. 데이터베이스를 사용한 인증 적용

 - 기본 스키마 적용 / 사용할 DB 설정

   <jdbc-user-service>에 datasource를 참조하도록 하여 security.xml파일 수정


 - 기본 예제와 다른 점은 UserDetailService에 대한 구체적인 구현 내용

   (JdbcDaoImpl를 상속하여 Custom UserDetailService 클래스를 생성)


 - 스프링 시큐리티에서는 JDBC 데이터베이스와 관련 일반적인 CRUD 기능을 제공함.

  (JdbcUserDetailsManager 빈 선언 및 CRUD 기능을 제공하는 UserDetailManager 인터페이스 매소드를 구현하여 실질적인 유머와 관련된 CRUD 작업 내용으로 작성)


 - JdbcDaoImpl의 주요 기능 중 하나는 GratedAuthority를 그룹으로 분류, 간접 레벨을 두어 개별 그룹에 대해 권한 부여가 가능함. => Group-Based-Access Control, GABC)라고 함.


 - UserInfo, User, Group, GroupPermission, Permission 스키마를 사용하여 JdbcDaoImpl을 수정

   userByUsernameQuery, authoritiesByUsernameQuery, groupAuthoritiesByUsernameQuery 등의 쿼리명을 사용하여 사용자, 권한 및 그룹 권환을 반환(JdbcUserService XML 설정에 해당 퀴리의 내용을 삽입하여 적용)


2. 보안 비밀번호 설정

 - 비밀번호 적용 규칙

   -> 비밀번호는 텍스트로 저장해서는 안됨

   -> 사용자가 제공한 비밀번호와 저장소에 저장된 값과 비교하는 과정이 있어야 함.

   -> 비밀번호는 바로 제공되어서는 안됨


 - Password Encoder 사용

  PlaintextPasswordEncoder : 일반 텍스트 인코딩 처리

  Md4PasswordEncoder : MD4 해리 알고리즘을 사용, 안전한 알고리즘이 아님

  Md5PasswordEncoder : MD5 단방향 인코딩 알고리즘 사용

  ShaPasswordEncoder  : 단방향 인코딩 알고리즘 사용, 인코딩 레벨을 설정할 수 있는 기능이 있음.

  LdapShaPasswordEncoder : LDAP 인증 저장소, 9장에서 자세히


 - 비밀번호 인코딩은 해당하는 클래스 빈을 설정하여 XML 설정을 진행.

  (해당 빈 설정 후, SQL에서 로드한 비밀번호를 인코딩 처리, initMethod 지정)


3. 비밀번호 솔트 제공

 - 저장소에 존재할 수 있는 동일한 인코딩 값은 잠재적인 보안 문제로 이어질 수 있음.

 - 솔팅(Salting 적용)(인코딩된 데이터에 약간의 데이터 추가를 하는 개념)

   사용자 생성 시점의 날짜 데이터, 랜덤 텍스트 등

 - SaltSource 빈 생성, PasswordEncoder설정에 Salt-Source를 추가하여 빈 설정 완료


4. SSL을 사용한 사이트 보안

 - HTTPS(SSL / TLS) 적용

 - SSL 사용을 위한 톰캣 설정 및 키 저장소 생성

 - 톰캣 SSL 커넥터 생성 및 <http> 설정에서의 채널로 https 설정(https, any, http)

  (보호된 영역과 보호되지 않는 영역에 따라서 해당 require-channel 설정 처리)


 - 포트 맵핑(80/443) 이외에 명시적으로 다른 포트를 사용할 수 있음.( <port-mappings>설정 )

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함