JaPark Bug World

[SpringBoot]스프링 시큐리티 본문

개발새발/스프링부트3 백엔드 개발자 되기

[SpringBoot]스프링 시큐리티

JAstory 2024. 4. 25. 10:29

8.1 스프링 시큐리티

스프링 시큐리티(Spring Security)는 스프링 기반의 애플리케이션 보안(인증, 인가)를 담당하는 스프링 하위 프레임워크이다.

 

인증과 인가

인증(authentication)은 사용자의 신원을 입증하는 과정이며, 사용자가 사이트에 로그인을 할 때 누구인지 확인하는 과정이다. 인가(authorization)는 사이트의 특정 부분에 접근할 수 있는지 권한을 확인하는 작업이다. 관리자는 관리자 페이지에 들어갈 수 있지만 일반 사용자는 관리자 페이지에 들어갈 수 없다. 이런 권한을 확인하는 과정을인가라고 한다.

 

스프링 시큐리티

스프링 시큐리티는 스프링 기반 애플리케이션의 보안을 담당하는 스프링 하위 프레임워크이다. 보안 관련 옵션을 설정하고 애너테이션으로 설정도 매우 간단하며 CSRF 공격, 세션 고정(session fixation) 공격을 방어해주고, 요청 헤더도 보안 처리를 해준다.

 

필터 기반으로 동작하는 스프링 시큐리티

(해당 부분은 저자의 블로그 설명으로 대체합니다. 책의 내용을 담고 싶은게 아니기도 하고.. 저작권 문제도 있고.. 공부용이니까 ㅜㅜ)

 

* 눈여겨 볼만한 필터만 적어보았다.

필터명 설명
UsernamePasswordAuthenticationFilter 인증관리자. 폼 기반 로그인을 할 때 사용되는 필터로 아이디, 패스워드 데이터를 파싱해 인증 요청을 위임한다. 인증이 성공하면 AuthenticationSuccessHandler를, 인증에 실패하면 AuthenticationFailureHandler를 실행
FilterSecurityInterceptor 접근 결정 관리자. AccessDecisionManager로 권한 부여 처리를 위임함으로써 접근 제어 결정을 쉽게 해줍니다. 이 과정에서는 이미 사용자가 인증되어 있으므로 유효한 사용자인지도 알 수 있다. 즉, 인가 관련 설정을 할 수 있다.

 


스프링부트3 백엔드 개발자 되기: 자바 편 책(저자 신선영)을 참고하여 정리한 내용입니다.