Authorization Service 개요
Keycloak의 Authorization Service는 애플리케이션이나 서비스에서 자원(Resource)에 대한 권한을 정책 기반으로 관리하고, 권한 확인 로직을 중앙집중화하여 일관된 접근 제어를 가능하게 하는 기능을 제공한다. 이를 통해 개발자는 인증(Authentication) 로직과 권한(Authorization) 로직을 분리하고, 더욱 유연하고 세밀하게 액세스 정책을 정의할 수 있다.
Authorization Service는 크게 리소스, 권한, 정책 세 가지 요소로 구성된다. 먼저 ‘리소스(Resource)’는 보호해야 하는 대상(예: 특정 API 엔드포인트, 파일, 데이터)이며, Keycloak에서 논리적으로 정의되어 관리된다. ‘권한(Permission)’은 리소스와 연관된 구체적인 접근 행위를 의미하며, 단순 읽기·쓰기뿐 아니라 비즈니스 로직에 따라 다양한 범위를 지정할 수 있다. ‘정책(Policy)’은 사용자의 속성, 그룹, 역할, 또는 환경적 조건(시간대, IP 주소 등)에 따라 권한을 부여하거나 거부하기 위한 규칙 세트다.
Keycloak은 Authorization Service 설정을 위해 리소스와 정책을 중앙 집중적으로 구성·관리할 수 있는 콘솔(UI)과 풍부한 API를 제공한다. 이를 통해 개발자는 세밀한 접근 제어가 필요한 시나리오에서 역할(Role) 기반 권한만으로는 구현하기 어려운 복잡한 정책도 손쉽게 설정할 수 있다. 예를 들어, 특정 그룹에 속한 사용자가 특정 시간대에만 특정 범위의 API를 호출할 수 있게 하는 식의 세부 규칙 구성도 가능하다.
이러한 구성 요소는 Keycloak이 지원하는 다양한 인증 프로토콜(OAuth 2.0, OpenID Connect 등) 위에서 동작하며, 애플리케이션은 Keycloak에 권한 검증을 요청하여 현재 사용자에게 특정 리소스·스코프에 대한 접근 권한이 있는지 확인받을 수 있다. 이를 통해 개발자는 자체 애플리케이션 내에서 복잡한 권한 로직을 직접 구현할 필요 없이, Keycloak의 정책 기반 접근 제어를 활용할 수 있게 된다. 결과적으로 보안 정책 적용의 일관성이 강화되고, 관리가 단순화되며, 시스템 확장성도 높아진다.
Last updated