여니의 성장 diary
728x90
반응형

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

 

 

728x90
반응형
profile

여니의 성장 diary

@pponyo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!