Jin's Dev Story

[Spring Security] Spring Security란? 본문

Web & Android/Spring Security

[Spring Security] Spring Security란?

woojin._. 2023. 10. 17. 16:02

Spring security

Authentication(인증)과 Authorization(권한)을 자바 어플리케이션에 제공하는데 초점을 맞춘 프레임워크

→ Filter 기반으로 동작함

💡 인증(Authentication)
  • 해당 사용자가 본인이 맞는지를 확인하는 절차
  • UsernamePassword를 통한 인증 가능 (Session 관리, Token 관리)
  • SNS 로그인을 통한 인증 위임도 가능

Authentication의 구조

Authentication의 메커니즘

💡 인가, 권한(Authorization)
  • 인증된 사용자가 요청한 자원에 접근 가능한지를 결정하는 절차
  • 특정 페이지/리소스에 접근할 수 있는지 권한을 판단
  • Secured, PrePostAuthorize 어노테이션으로 쉽게 권한 체크 가능
  • 비즈니스 로직이 복잡한 경우 AOP를 이용해 권한 체크 해야함

  • 인증 절차를 거친 후 인가 절차를 진행하게 됨
  • 인증과 인가를 위해 Principal을 아이디로, Credential을 비밀번호로 사용하는 Credential 기반의 인증 방식을 사용

→ Principal(접근 주체) : 보호받는 Resource에 접근하는 대상

→ Credential(비밀번호) : Resource에 접근하는 대상의 비밀번호