1. Spring Security 란?
Spring Security는 인증 (Authentication) ,권한(Authorize) 부여 및 보호 기능을 제공하는 프레임워크
Spring Security를 사용함으로써 짜여진 내부 로직을 통해 인증, 권한 확인에 필요한 기능과 옵션들을 제공
1.1 인증/인가
보통 인증 절차를 거친 후 인가 절차를 진행
- 인증: 해당 사용자가 본인이 맞는지를 확인하는 절차
- 인가: 인증된 사용자가 요청된 자원에 접근가능한가를 결정하는 절차
<aside>
💡 인증 방식
- credential 방식 : username, password를 이용하는 방식
- 이중 인증(twofactor 인증) : 사용자가 입력한 개인 정보를 인증 후, 다른 인증 체계(예: 물리적인 카드)를 이용하여 두가지의 조합으로 인증하는 방식
- 하드웨어 인증: 자동차 키와 같은 방식
</aside>
Spring Security는 Credential 방식을 사용
- principal(아이디), credential(비밀번호)
특정 자원에 대한 접근을 제어하기 위해서는 권한을 가져야 함
- 특정 권한을 얻기 위해서는 유저는 인증정보(Authentication)가 필요하고 관리자는 해당 정보를 참고해 권한을 인가(Authorization)함
보편적으로 username - password 패턴의 인증방식을 거치기 때문에 스프링 시큐리티는 principal - credential
패턴을 가지게 됨
1.2 Spring Security의 특징
- Filter를 기반으로 동작 : Spring MVC와 분리되어 관리하고 동작 가능
- Bean으로 설정할 수 있음
2. Spring Security 구조 및 흐름

-
Http Request 수신
사용자가 로그인 정보와 함께 인증 요청