O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Spring Security

914 visualizações

Publicada em

Spring Security study

Publicada em: Software
  • Seja o primeiro a comentar

Spring Security

  1. 1. STG / 황성원 Spring Security
  2. 2. 장점 스프링 프레임웍 기반 프로젝트로써 스프링 프로젝트에서 매우 유연하게 동작 몇십줄의 코드만으로도 높은 수준의 보안을 유지 간단한 선언만으로 작동하여 대량의 코드를 손쉽게 절약 적절한 튜닝으로 기능 확장 용이 01 Spring Security 란? Spring Security 는 J2EE 기반의 엔터프라이즈 소프트웨어 어플리케이션에 대한 포괄적인 보안 서비스를 제공한다. 사람들이 Acegi Security 를 사용하는 이유는 여러가지가 있는데 , 대부분 J2EE 서블릿 스펙이나 EJB 스펙이 일반적인 엔터프라이즈 어플리케이션 시나리오에서 필요로 하는 수준의 기능이 부족하다는 것을 깨닫고 난 이후의 프로젝트에서부터 많이 사용되어 왔다
  3. 3. 3 02 보안이란? Authentication 인증 Authorization 권한 부여인증 후 보안의 핵심 개념 -인증과 역할 부여(권한 부여, 인가) 1.인증이란? 어플리케이션 사용자가 주장하는 본인이 맞는지 확인하는 절차 인증방식  크리덴셜 기반 : 사용자명과 비밀번호를 입력받아 저장된 정보와 일치하는지 확인  이중인증 : 한번에 2가지 방식으로 인증 (ex.은행어플-로그인과 인증서 2가지 방법으로 확인)  하드웨어 인증 : 지문 혹은 보안카드키 등 물리적인 키를 통해 인증받는 방식 2.역할 부여란? 인증을 통해서 인증된 주체를 하나 이상의 권한에 맵핑하고 보호된 리소스에 대한 권한을 체크 하는 것 부여된 권한  적절한 절차로 사용자가 인증되면 권한을 부여합니다. 리소스의 권한  적절한 권한을 가진자만 해당자원에 접근할 수 있도록 자원의 외부요청을 원천적으로 가로채 는(Intercept) 것이 권한부여의 핵심원칙이라 할 수 있겠습니다.
  4. 4. 4 서블릿 필터체인 03 접근 주 체 Principal 서블릿 응답 반 환 DelegatingFilterProxy  Spring Security 가 모든 요청을 감싸게 해서 모든 요청에 보안이 적용되게 하는 서블릿 필터.  Spring Security 는 Filter를 이용해 DispatcherServlet 처럼 요청을 가로채도록 설계되어 있습니 다.  이 Filter 는 서블릿을 감싸는 형태로설계되어 있어 서로 겹치는 요청이 들어온다면 필터를 통 해 인증 및 권한부여가 이루어진후 페이지에 대한 권한이 있는지를 먼저 확인하도록 설계되었습 니다. 리소스의 권한 (Intercept) - Spring Security 는 인터셉터 방식으로 작동. 요청 전처리 응답 후처리
  5. 5. 5 04 커스터마이징 - Spring Security 를 적용하면서 기본설정으로는 실제 적용시키기엔 무리가 있어 반드시 커스 터마이징이 필수적으로 필요 하다. * 주의점 : Spring Security 의 필터들은 순서가 존재하며 이순서를 어길 경우 결과를 예측할수 없으므로 특별한 경우가 아니라면 순서를 지켜주는 것이 좋다.(이미지 참조)
  6. 6. 6 05 기본 설정 순서 - 실제 소스반영을 위한 설정 순서 1.web.xml  DelegatingFilterProxy 등록  Context 설정 2.security-context.xml 생성  web.xml에서 설정한 context 위치에 파일 생성
  7. 7. 7 06 3.security-context.xml  네임 스페이스 설정  <http> 요소 설정  <intercept-url> 설정  로그인 폼 설정  권한 설정  권한 부여 매니저 설정 1) 표현식 사용 유무 설정 Use-expressions=“true” 2) Intercept-url 태그 내에 접근권한을 access에 설정 3) 표현식 사용시 가능한 권한들 • 함수 종류 hasIpAddress(ip):접근자의 ip 주소 매칭 hasRole(role):역할이 부여된 권한 매칭 hasAnyRole(role):여러 개의 권한중 매칭 ex) access=“hasAnyRole(‘ROLE_USER’, ’ROLE_ADMIN’)’” • 조건(사용가능한 역할 조건) 종류 permitAll:모든 접근자 승인 denyAll:모든 사용자 거부 anonymous:익명 사용자인지 확인 authenticated:인증된 사용자인지 확인 rememberMe:사용자가 remember me 를 사용 해 인증했는지 확인 fullyAuthenticated:사용자가 모든 크리덴셜을 갖 춘 상태에서 인증했는지 확인
  8. 8. 감사합니다

×