Spring Security

Spring기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임 워크

'인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리

 

Authorization(인증)과 Authentication(인가)

인증: 해당 사용자가 본인이 맞는지를 확인하는 절차

인가: 인증된 사용자가 요청한 자원에 접근 가능한지를 결정하는 절차

" 인증 성공 후 인가"

Principal(접근주체, 아이디): 보호받는 Resource에 접근하는 대상

Credential(비밀번호): Resource에 접근하는 대상의 비밀번호

" Credential 기반의 인증방식"

 

 

주요 모듈

 

[출처] https://mangkyu.tistory.com/76

[SecurityContextHolder] : 보안 주체의 세부 정보를 포함하여 응용프로그램의 현재 보안 컨텍스트에 대한 세부 정보가 저장된다.

[SecurityContext] : Authentication을 보관하는 역할

[Authentication] : 현재 접근하는 주체의 정보와 권한을 담는 인터페이스

[UsernamePasswordAuthenticationToken] : Authentication을 implements한 AbstractAuthenticationToken의 하위 클래스(user의 id = principal, password = credential)

[AuthenticationProvider] : 실제 인증에 대한 부분을 처리

[Authentication Manager] : 인증에 대한 부분을 처리

[UserDetails] : 인증에 성공하여 생성된 객체, UsernamePasswordAuthenticationToken을 생성하기위해 사용

[UserDetailsService] : UserDetails 객체를 반환(DB와 연결해 처리)

[Password Encoding] : 패스워드 암호화에 사용될 PasswordEncoder 정의

[GrantedAuthority] : 현재 사용자(principal)가 가지고 있는 권한(ROLE_ADMIN)

참고) https://mangkyu.tistory.com/76

 

[SpringBoot] Spring Security란?

대부분의 시스템에서는 회원의 관리를 하고 있고, 그에 따른 인증(Authentication)과 인가(Authorization)에 대한 처리를 해주어야 한다. Spring에서는 Spring Security라는 별도의 프레임워크에서 관련된 기능

mangkyu.tistory.com

 

'Web > Spring' 카테고리의 다른 글

[배경] Maven  (0) 2021.07.27
[배경] Template Engine  (0) 2021.07.27
[배경] Spring 실행 순서  (0) 2021.07.27
[배경] MVC Pattern  (0) 2021.07.27
[배경] Servlet  (0) 2021.07.27

+ Recent posts