Spring Security

UkJJang·2021년 9월 30일
0

https://coding-start.tistory.com/153 님의 게시글을 참고하였습니다.

spring-boot-starter-security

  • 스프링 부트에서 제공하는 스프링 시큐리티에 필요한 의존성을 담아두고 있는 스타터

Spring Security란

  • 스프링 기반의 애플리케이션 보안을 담당하는 스프링 하위 프레임워크이다.
  • 서블릿 필터로 구성되어 필터체인의 위임모델을 사용한다.
  • 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 보안관련 로직을 작성하지 않아도 된다.

보안 용어

  • Principal : 접근 주체로 보호된 리소스에 접근하는 대상이다.
  • Authentication(인증) : 보호된 리소스에 접근한 대상에 대해 해당 유저가 누구인지, 애플리케이션의 작업을 수행해도 되는 유저인지 확인하는 과정이다 예를 들어 로그인 기능이 있다.
  • Authorize(인가) : 해당 리소스에 대해 접근 가능한 권한을 가지고 있는지 확인하는 과정이다. 즉 인증 이후에 하는 작업이다.
  • 권한 : 어떠한 리소스에 대한 접근을 제한하는 것으로 모든 리소스는 접근 제어 권한이 걸려있다. 인가 과정에서 리소스에 대한 제한된 최소한의 권한을 가졌는지 확인한다.
  • Credential(비밀번호) : 접근하는 대상의 비밀번호

Spring Security Filter

  • UsernamePasswordAuthenticationFilter
    • form 로그인 -> Authentication의 구현체인 UsernamePasswordAuthenticationToken 사용
  • BasicAuthenticationFilter
    • 비동기 로그인
    • 헤더에 Basic 토큰값을 넣거나 encoding한 값을 넣어 로그인 처리
  • BearerTokenAuthenticationFilter
    • JWT 로그인
  • OAuth2LoginAuthenticationFilter
    • 소셜 로그인
profile
꾸준하게 성실하게

0개의 댓글