ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링 시큐리티 흐름 (1)
    Spring 2021. 3. 4. 22:38

    스프링 시큐리티를 정리해보려고 한다. 

     

    스프링 시큐리티를 이해하기 위해서 Authentication(인증)과 Authorize(인가)에 대해서 정확하게 이해를 해야 한다.

     

    Authentication은 보호된 리소스에 접근한 대상에 대해 이 유저가 누구인지, 애플리케이션의 작업을 수행해도 되는 주체인지 확인하는 과정이다. (로그인)

     

    Authorize는 해당 리소스에 대해 접근 가능한 권한을 가지고 있는지 확인하는 과정이다. (인증 이후의 과정)

     

    스프링 시큐리티란?

    스프링 시큐리티는 스프링 기반의 애플리케이션의 보안을 담당하는 스프링 하위 프레임워크이다. 주로 서블릿 필터와 이들로 구성된 필터체인으로 위임모델을 사용한다. 그리고 보안 관련된 많은 옵션들을 제공해준다.

     

     

    위의 그림은 Form 기반 로그인에 대한 플로우를 보여주는 그림이다.

    1. 사용자가 Form을 통해 로그인 정보를 입력하고 인증 요청을 보낸다.

    2. AuthenticationFilter가 HttpServletRequest에서 사용자가 보낸 아이디와 패스워드를 인터셉트해서 유효성 검사를 진행한다. 

    3. 아이디 패스워드의 인증을 담당할 AuthenticationManager에게 인증용 객체를 전달한다.

    4. 실제 인증을할 AuthenticationProvider에게 객체를 전달해 준다.

    5. DB에서 사용자 인증 정보를 가져올 UserDetailService 객체에게 사용자 아이디를 넘겨준다.

    6. UserDetails 객체를 전달 받은 이후 실제 사용자 입력정보와 같이 인증을 시도한다.

    7, 8, 9, 10. 인증이 완료되면 사용자 정보를 가진 Authentication 객체를 SecurityContextHolder에 담은 이후 AuthenticationSuccessHandler을 실행한다. (실패시 AuthenticationFailureHandler를 실행)

     

    이게 스프링 시큐리티의 큰 흐름이다.

     

     

     

    'Spring' 카테고리의 다른 글

    스프링 웹 MVC 3일차  (0) 2021.03.13
    스프링 웹 MVC 2일차  (0) 2021.03.11
    스프링 웹 MVC 1일차  (0) 2021.03.09
    Spring boot 로 메일 보내기  (0) 2021.03.04
    스프링 Annotation 알아보기  (0) 2021.02.14

    댓글

Designed by Tistory.