Spring Security

uudean·2023년 7월 11일
0

Spring

목록 보기
8/13

Spring Security란?

Spring MVC 기반의 애플리케이션 인증과 인가 기능을 지원하는 보안 프레임워크


Spring Security의 보안 강화 기능

  • 다양한 유형 (폼 로그인 인증, 토큰 기반 인증, OAuth2 기반 인증, LDAP 인증)의 사용자 인증 기능적용
  • 애플리케이션 사용자 역할 (Role)에 따른 권한 레벨 적용
  • 애플리케이션에서 제공하는 리소스에 대한 접근 제어
  • 민감한 정보에 대한 데이터 암호화
  • SSL 적용
  • 일반적으로 알려진 웹 보안 공격 차단

Spring Security에서 사용하는 용어

  • Principal ( 주체 )
    • 일반적으로 인증 프로세스가 성공적으로 수행된 사용자를 의미
  • Authentication ( 인증 )
    • 사용자가 본인이 맞음을 증명하는 절차
    • Credential ( 신원 증명 정보 ) : 사용자를 식별하기 위한 정보 ex) 비밀번호
  • Authorization ( 인가 또는 권한 부여 )
    • 인증이 정상적으로 수행된 사용자에게 하나 이상의 권한을 부여하여 특정 리소스에 접근 가능하게 허가
    • 권한은 일반적으로 역할( Role ) 형태로 부여
  • Access Control ( 접근 제어 )
    • 사용자가 애플리케이션의 리소스에 접근하는 행위를 제어

Spring Security의 웹 요청 처리 흐름


웹 요청에서의 서블릿 필터와 필터 체인의 역할

서블릿 필터 ( Servlet Filter )

  • 서블릿 기반 애플리케이션의 경우 , 엔드포인트에 요청이 도달하기 전 중간에서 요청을 가로챈 후 어떤 처리를 할 수 있는 적절한 포인트를 제공하는 역할
  • javax.servlet 패키지에 인터페이스 형태로 정의
  • javax.servlet.Filter 인터페이스를 구현한 서블릿 필터는 웹 요청을 가로채어 어떠한 처리 ( 전 처리 ) 를 할 수 있고, 엔드포인트에서 요청처리가 끝난 이후 응답을 클라이언트에게 전달 하기 전에 어떠한 처리 ( 후 처리 ) 를 할 수 있다.

  • 서블릿 필터는 하나 이상의 필터들을 연결해 필터체인을 구성 할 수 있다.
  • 각각의 필터는 doFilter() 메서드를 구현해야 하고, doFilter()를 통해 체인을 형성한다.

DelegatingFilterProxy

  • 보안에 관련된 어떠한 작업을 하는 것이 아닌 서블릿 컨테이너 영역의 필터와 ApplicationContext에 Bean으로 등록된 필터들을 연결하는 브릿지

FilterChainProxy

  • 보안 작업을 처리하는 필터의 모음
  • FilterChainProxy 부터 보안 필터들이 필요한 작업을 수행

0개의 댓글

관련 채용 정보