서론 SpringBoot 를 사용하는 백엔드에서 인증,인가,권한 에 대한 컨트롤을 하는 주체에 대해 비교하려고 한다. 두 개 모두 "사용자 관리 및 인증" 역할을 한다. 전제는 사내 SSO 오픈소스인 Keycloak 을 사용하는 경우 개별 서비스 백엔드를 SpringSecurity 로 구성하는게 좋을까? 아니면 Keycloak 을 사용하는게 좋을까? 본론 ### SpringSecurity 1. 기본용어 - 접근 주체(Principal) : 보호된 리소스에 접근하는 대상 - 인증(Authentication) : 보호된 리소스에 접근한 대상에 대해 누구인지 - 인가(Authorize) : 해당 리소스에 대해 접근 가능한 권한을 가지고 있는지 확인하는 과정(After Authentication, 인증 이후) ..