| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- 자료구조
- queue
- actuator
- 연관관계
- QueryDSL
- 백엔드
- Java
- 스프링부트
- spring
- 제로베이스
- 백엔드스쿨
- SpringSecurity
- 개발자
- 서버
- 프로그래머스
- 백준
- restTemplate
- 핵심가이드
- error
- SpringBoot
- ORM
- JPA
- 백엔드공부
- JWT
- TestCode
- array
- 컴퓨터 구조
- 컴퓨터 공학
- LinkedList
- spring boot
- Today
- Total
be_better
[Springboot] 서비스의 인증과 권한 부여 - SpringSecurity 소개 본문
목차
보안 용어
인증 - authentication
사용자가 누구인지 확인하는 단계, 대표적인 예로 '로그인' 이 있다.
로그인 성공 -> 사용자에게 토큰(token) 전달
토큰이 없는 사용자는 리소스에 접근 x
인가 - authorization
토큰을 가진 인증된 사용자가 내부 리소스에 접근할 권리가 있는지 확인하는 과정.
사이트 등급에 따라 접근할 수 있는 기능이 다른 것이 대표적인 예시이다.
접근 주체 - principal
애플리케이션의 기능을 사용하는 주체 -> 사용자, 디바이스, 시스템 등이 될 수 있다.
인증 과정(신뢰하는 접근 주체인지 확인) -> 인가 과정(접근 주체에게 부여된 권한 확인)
스프링 시큐리티
스프링에 인증, 인가 등의 보안 기능을 적용할 때 사용함
스프링 시큐리티 동작 구조
서블릿 필터(Servlet Filter)를 기반으로 동작, DispatcherServlet 앞에 필터가 배치

필터체인(FilterChain)은 서블릿 컨테이너에서 관리하는 ApplicationFilterChain을 의미
클라이언트 요청
-> 서블릿 컨테이너에서 URI 확인, 필터와 서블릿 매핑
-> 스프링 시큐리티는 사용하려는 필터체인을 서블릿 컨테이너의 필터 사이에서 동작 - DelegantingFilterProxy 사용

DelegatingFilterProxy
- 서블릿 컨테이너의 생명주기와 스프링 애플리케이션 컨텍스트(Application Context) 다리 역할하는 필터 구현체
- 표준 서블릿 필터 구현, 역할 위임할 필터체인 프록시(FilterChainProxy)를 내부에 갖고 있음
필터체인 프록시
- 스프링 시큐리티에서 제공하는 필터
- 보안 필터체인(SecurityFilterChain)을 통해 많은 보안 필터(Security Filter) 사용
- 사용 가능한 보안 필터 체인은 List 형식으로 담을 수 있게 설정
- URI 패턴에 따라 특정 보안필터 체인 선택해서 사용
[Springboot] Spring Security 필터 동작
보안 필터체인 종류 및 순서 보안필터 체인에서 사용하는 필터에는 여러 종류가 있다. 공식 문서에서 소개하는 필터의 실행 순서 ChannelProcessingFilter WebAsyncManagerIntergrationFilter SecurityContextPersistence
jnjeaaaat.tistory.com
'Springboot > 이론' 카테고리의 다른 글
| [Springboot] 서비스의 인증과 권한 부여 - JWT (1) | 2023.12.06 |
|---|---|
| [Springboot] Spring Security 필터 동작 (0) | 2023.12.06 |
| [Springboot] 서버 간 통신 - WebClient (0) | 2023.11.29 |
| [Springboot] 서버 간 통신 - RestTemplate 사용해보기 (0) | 2023.11.29 |
| [Springboot] 서버 간 통신 - RestTemplate 소개 (0) | 2023.11.29 |