Spring Framework를 이용한 사이드 프로젝트를 수행하던 중
Spring Security에 대한 학습과 이해가 필요하여 다양한 경로로 수집한 내용을 간단하게 정리한다!
Spring Security
- 웹 애플리케이션의 보안을 구현하는 데 사용
- 다양한 인증 및 권한 부여 이벤트를 제공
- 사용자의 로그인/로그아웃 상태, 인증 실패 등을 감지하고 처리
- 보안 취약점에 대한 대응책을 제공
- CSRP(Cross-site Request Forgery) 공격 방어 등을 지원
- 많은 기능과 유연성을 제공
- 보안과 관련된 여러 가지 이슈를 다르는데 유용
=> Spring Boot에서는 보다 쉽게 Spring Security 설정을 제공하는
Starter를 제공하여 간편하게 보안 설정을 할 수 있다.
Authentication[인증]
사용자가 시스템에 접근할 때, 해당사용자가 누구인지 확인하는 과정
폼 인증 / HTTP Basic 인증 / OAuth 2.0 인증 등 여러 가지 인증 방식 지원
[폼 인증(Form-Based Authentication)]
웹 페이지에서 아이디와 비밀번호를 입력받아 사용자를 인증하는 방식
"UsernamePasswordAuthenticationFilter'를 사용하여 처리
[HTTP Basic 인증]
HTTP 요청 헤더에 인증 정보를 포함시켜 사용자를 인증하는 방식
'BasicAuthenticationFilter'를 사용하여 처리
[OAuto 2.0 인증]
인증 서버를 사용하여 사용자 인증을 처리하는 방식
사용자가 애플리케이션에 로그인할 때 인증 서버에서 발급한 토큰을 사용하여 인증을 처리
'OAuth2LoginAuthenticationFilter'를 사용하여 처리
Authorization[권한 부여]
인증된 사용자가 시스템의 특정 리소스에 접근할 수 있는지 여부를 결정하는 과정
Access Control List(ACL) 을 사용하여 사용자별로 접근 권한을 부여
표현식 언어(Expression Language)를 사용하여 보다 복잡한 권한 부여 규칙을 쉽게 작성
'WebSecurityConfiguerAdapter'를 상속하는 설정 클래스를 작성하여 보안 설정을 구성
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers
'Develop growth diary > SPRING' 카테고리의 다른 글
[Spring] 스프링 프레임워크의 핵심 기능, 구성 요소, 생명주기 요약 정리 (0) | 2024.01.18 |
---|---|
Spring Framework - 자주 활용되는 Annotation 정리 (0) | 2023.03.23 |