Spring Security란?
Spring Security는 Java 애플리케이션에 인증 및 권한 부여를 모두 제공하는 데 중점을 둔 프레임워크이다. spring security는 filter 기반으로 동작하기 때문에 spring MVC 와 분리되어 관리 및 동작한다.
웹 애플리케이션의 인증(Authentication)과 인가(Authorization)를 처리하며, 보안 관련 기능을 제공하여 안전한 웹 애플리케이션을 개발할 수 있도록 도와준다.
주요 기능과 개념:
- 인증(Authentication): 사용자의 신원을 확인하는 과정이다. (ex. 로그인) 스프링 시큐리티는 다양한 인증 방식을 지원하며, 사용자의 아이디와 비밀번호를 검증하여 사용자의 로그인 여부를 결정한다.
- 인가(Authorization): 인증된 사용자에게 어떤 리소스나 기능에 접근할 권한을 부여하는 것이다. 스프링 시큐리티는 로그인한 사용자의 권한을 관리하고 접근 제어를 구현한다.
- 보안 필터 체인(Security Filter Chain): 스프링 시큐리티는 여러 개의 보안 필터를 체인 형태로 구성하여 요청에 대한 보안 처리를 수행한다. 각 필터는 특정한 보안 작업을 수행하며, 필터 체인을 따라가면서 보안 작업이 처리된다.
- 사용자 인증 및 인가 구성: 스프링 시큐리티는 XML 또는 Java Config를 사용하여 사용자의 인증 정보와 권한을 정의하는 방법을 제공한다.
- Remember-Me 인증: 사용자의 로그인 상태를 유지하고 세션이 만료된 후에도 사용자를 인증할 수 있게 해주는 기능이다.
- CSRF(크로스 사이트 요청 위조) 방어: 웹 애플리케이션에서 CSRF 공격을 방어하기 위한 기능을 제공한다. 요청에 토큰을 추가하여 공격을 막는 방식을 사용한다.
- 세션 관리: 사용자 세션을 관리하고 보안적인 측면에서 안전한 세션 관리를 제공한다. 세션 하이재킹과 같은 공격을 방어한다.
- 통합된 보안 기능: 스프링 시큐리티는 스프링 프레임워크와 함께 사용하기 편리하도록 통합된 보안 기능을 제공한다.
'BackEnd > spring' 카테고리의 다른 글
| Spring Boot에서 JSP 사용하기 (0) | 2024.05.05 |
|---|---|
| CSRF / JWT / CSRF 토큰과 JWT의 차이점 (0) | 2023.08.09 |
| [Spring Boot] Spring Security를 사용하여 권한 설정하는 방법 (0) | 2023.07.25 |
| [Spring Boot] 의존성 주입 / 객체 생성 방법 - 멤버변수와 생성자, @Configuration과 @Bean (0) | 2023.06.14 |
| [Spring Boot] Spring Service (0) | 2023.06.14 |