Spring/Spring Security

[Security] 인증과 권한

doriver 2022. 10. 17. 14:09

'인증(Authentication)'과 '권한(Authorization)'

인증(Authentication)절차를 거친 후에 권한(Authorization)절차를 진행하게 된다.

 

 

인증(Authentication)

사이트에 접속하려는 자가 누구인지 확인하는 절차이다. 

( 해당 사용자가 본인이 맞는지를 확인 )


UsernamePassword를 통한 인증을 할 수 있다. (Session관리, Token관리)
SNS로그인을 통한 인증 위임을 할 수도 있다.
스프링 시큐리티는 Form, OAuth, JWT, LDAP 등 여러 인증 방식들을 지원해주고 있다

인가, 권한(Authorization)

사용자가 어떤 동작을 할 수 있는지 권한 설정하는 절차이다.
특정 페이지/리소스에 접근할 수 있는지 판단.


Secured, PrePostAuthorize 어노테이션으로 쉽게 권한 체크를 할 수 있다.
비즈니스 로직이 복잡한 경우 AOP를 이용해 권한 체크를 해야한다.


스프링 시큐리티는 웹 계층 권한, 서비스계층 권한, 도메인 계층 권한(ACL) 접근 제어 기능을 지원해 주고 있습니다. 

Security 공부 방향

스프링 시큐리티 기본 API 사용법과 이와 관련된 Filter 이해
인증 프로세스 구현 , 인증원리와 내부 동작방식
인가 프로세스 구현(DB 연동을 통해 권한 제어 시스템 구현) , 인가원리와 내부 동작방식
스프링 시큐리티와 스프링 MVC 를 연계하는 방식