스프링 시큐리티

onebbu·2024년 5월 23일
0

Study(개념 정리)

목록 보기
1/7

스프링 시큐리티

스프링에서 지원하는 스프링 기반 애플리케이션 보안(인증 및 인가) 프레임워크입니다. 보안과 관련하여 체계적으로 많은 옵션을 제공해주어 개발자 입장에서는 일일히 보안 관련 로직을 작성하지 않아도 됩니다.

인증(Authentication)

자신이 누구라고 주장하는 사람을 확인하는 절자

eg. 사용자가 아이디와 비밀번호를 이용해 로그인하는 절차

인가(Authorization)

가고 싶은 곳으로 가도록 혹은 원하는 정보를 얻도록 허용하는 과정

어떤 대상이 특정 목적을 실행하도록 허용하는 것

스프링 시큐리티 특징 및 구조

스프링 시큐리티는 필터(Filter) 기반으로 동작하기 때문에 스프링 MVC와 분리되어 관리 및 동작합니다.

스프링 시큐리티 필터(Filter)

Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받지만, Interceptor는 Dispatcher와 Controller 사이에 위치하므로 적용 시기에 차이가 있습니다.

이미지 출처

어노테이션을 통해 간단하게 설정할 수 있으며, 기본적으로 세션&쿠키 방식으로 인증합니다.

인증 관리자(Authentication Manager)와 접근 결정 관리자(Access Decision Manager)를 통해 사용자의 리소스 접근을 관리합니다.

인증 관리자는 UsernamePasswordAuthenticationFilter, 접근 결정 관리자는 FilterSecurityInterceptor가 수행합니다.

스프링 시큐리티 동작 원리

  1. 로그인 시도 시 인증 필터가 작동하여 사용자의 ID, 비밀번호를 가져옵니다.

  2. 인증 필터는 ID, 비밀번호를 Authentication 객체에 담아서 AuthenticationManager에게 전달합니다.

  3. AuthenticationManager는 UserDetailService를 호출해서 사용자의 정보를 불러옵니다.

  4. 이 때, UserDatailsService는 DB에 접근하여 정보를 가져오고, 이 정보를 UserDetails 객체에 담아서 반환합니다.

    • 비밀번호는 PasswordEncoder를 통해서 암호화 됩니다.

레퍼런스

[Spring] Spring Security 개념과 처리 과정 👮‍♀️ (+근데 상황극을 곁들인)

Spring Security

profile
기록하는 습관

0개의 댓글