- 사용자나 클라이언트에게 부여할 수 있는 권한을 정의하는 방식입니다. 이러한 역할은 보안과 접근 제어를 관리하는 핵심 요소입니다. - 이를 통해서 중앙집중식 권한 관리로 보안을 강화하고 세분화된 접근 제어가 가능하다는 장점이 있습니다. - 또한, 유연하게 권한에 대한 위임을 제공하거나 효율적인 사용자 권한을 관리할 수 있습니다.
- Keycloak에서 역할을 부여할 때, Realm 단위, Client 단위, Composite(복합적) 단위로 역할을 부여할 수 있습니다.
역할 유형
설명
사용 예시
Realm Level Roles
전체 영역에서 공통적으로 사용되는 역할로, 모든 클라이언트에 적용 가능
- admin: 전체 관리자 권한 - user: 일반 사용자 권한 - manager: 중간 관리자 권한
Client Level Roles
특정 클라이언트 애플리케이션에서만 사용되는 역할로, 해당 클라이언트 내에서만 유효
- app1_admin: 앱1의 관리자 - app1_user: 앱1의 일반 사용자 - app2_editor: 앱2의 편집자
Composite Roles
여러 개의 역할을 하나로 묶어 관리하는 복합 역할. 역할 관리의 효율성 증대
- super_admin: admin + manager + editor 권한 포함 - content_team: writer + editor + reviewer 권한 포함 - support_staff: helpdesk + viewer 권한 포함
1.1. Realm Level Roles
💡 Realm Level Roles
- Realm 내의 전체 영역에서 공통적으로 사용되는 역할로, 모든 클라이언트에 적용이 가능합니다. - Realm > Realm roles 내에서 Realm에 대한 역할을 부여할 수 있습니다.
1.2. Client Level Roles
💡 Client Level Roles
- 특정 클라이언트 애플리케이션에서만 사용되는 역할로, 해당 클라이언트 내에서만 유효합니다. - Clients > Client 선택 > Roles 탭 내에서 클라이언트 단위에 역할을 부여할 수 있습니다.
1.3. Composite Roles
💡 Composite Roles
- 여러 개의 역할을 하나로 묶어 관리하는 복합 역할. 역할 관리의 효율성 증대할 수 있습니다. - 이는 위에서 구성한 Realm Level Roles에서 적용한 내용과 Client Level Roles 내용이 합쳐져 복합적인 역할을 부여할 수 있습니다. 즉, 위에서 구성한 여러 가지 역할에 대해서 사용자나 그룹에 대해서 이러한 역할을 부여할 수 있습니다.
- 위에서 구성한 권한들에 대해서 Client 내에서 적용이 가능하지만, 각각 사용자 혹은 그룹에 대해서 이에 대한 할당을 할 수 있습니다.
할당 방식
설명
장점
직접 할당 방식
사용자나 클라이언트에게 개별적으로 역할을 직접 부여하는 방식
- 명확한 권한 관리 - 개별 사용자 맞춤 권한 설정 용이 - 즉각적인 권한 변경 가능
그룹을 통한 할당 방식
그룹에 역할을 부여하고 사용자를 해당 그룹에 포함시켜 권한을 관리하는 방식
- 대규모 사용자 관리 효율적 - 일관된 권한 관리 - 그룹 단위 권한 변경 용이
복합 역할을 통한 할당 방식
여러 개의 기본 역할을 하나의 상위 역할로 묶어서 할당하는 방식
- 복잡한 권한 구조 단순화 - 권한 관리 효율성 증대 - 일관된 권한 세트 관리 가능
2.1. 직접 할당 방식
💡 직접 할당 방식
- 사용자나 클라이언트에게 개별적으로 역할을 직접 부여하는 방식을 의미합니다.
💡 Clients > Clients 선택 > Roles
- 클라이언트에게 역할을 직접 부여합니다.
💡 Users > Users 선택 > Role mapping
- 사용자에게 구성한 역할을 부여합니다.
2.3. 복합 역할을 통한 할당 방식
💡 복합 역할을 통한 할당 방식 - 여러 개의 기본 역할을 하나의 상위 역할로 묶어서 할당하는 방식을 의미합니다. - 예를 들어서, Realm Role과 Client Role을 함께 지정하여 복합 역할로 결합하여 사용자에게 할당할 수 있습니다.
- 아래와 같은 조합으로 복합 역할을 지정할 수 있습니다. - SUPER_ADMIN 복합 역할: manage-users + manage-clients + view-realm + manage-events 역할 포함 - CONTENT_MANAGER 복합 역할: create-content + edit-content + delete-content + view-analytics 역할 포함 - SUPPORT_TEAM 복합 역할: view-users + manage-tickets + view-logs + basic-access 역할 포함
💡 계정 관리 (Account) 권한 상세 - 사용자가 자신의 계정을 직접 관리하는데 필요한 권한들을 의미합니다. - 예를 들어서, 사용자가 자신의 계정 삭제, 계정 설정 관리, 소셜 로그인 연동, 개인정보 동의 설정 등 사용자가 자신의 계정을 직접 관리할 수 있는 권한들입니다.
키워드
역할 분류
역할명
설명
상세 설명
account
계정 관리
role_delete-account
계정 삭제 권한
사용자가 자신의 계정을 영구적으로 삭제할 수 있는 권한. 계정 삭제 시 모든 개인 정보와 설정이 제거되며 복구가 불가능합니다.
account
계정 관리
role_manage-account
계정 설정 관리 권한
사용자가 자신의 프로필 정보, 비밀번호, 이메일 등 계정 관련 모든 설정을 변경하고 관리할 수 있는 권한입니다.
account
계정 관리
role_manage-account-links
계정 연동 관리 권한
사용자가 소셜 미디어 계정(Google, Facebook 등)과 Keycloak 계정을 연동하거나 해제할 수 있는 권한입니다.
account
계정 관리
role_manage-consent
개인정보 동의 관리 권한
사용자가 애플리케이션별 개인정보 수집 및 이용 동의 내역을 관리하고, 동의를 철회하거나 새로운 동의를 할 수 있는 권한입니다.
💡 조회 권한 (Query/View) 상세 - 조회 권한은 Query와 View로 구분되며, 각각의 권한 범위와 기능이 다릅니다. 단순한 조회를 하거나 특정 조건에 따르는 조회를 하는 경우를 말합니다. - Query 권한: 검색, 필터링, 상세 조회 등 포괄적인 조회 기능 - View 권한: 기본 정보에 대한 단순 조회 기능
키워드
역할 분류
역할 명
설명
상세 설명
realm-management
조회 권한
role_query-clients
클라이언트 조회
시스템에 등록된 모든 클라이언트의 목록과 각 클라이언트의 설정 정보를 조회할 수 있는 권한입니다.
realm-management
조회 권한
role_query-groups
그룹 조회
시스템에 생성된 모든 그룹의 계층 구조, 멤버십, 할당된 역할 등을 조회할 수 있는 권한입니다.
realm-management
조회 권한
role_query-realms
영역 조회
시스템에 구성된 모든 영역의 기본 설정과 정책을 조회할 수 있는 권한입니다.
realm-management
조회 권한
role_query-users
사용자 조회
사용자 목록을 검색하고 필터링할 수 있는 권한으로, 사용자명, 이메일, 속성 등 다양한 조건으로 사용자를 검색하고 결과를 확인할 수 있습니다.
realm-management
조회 권한
role_view-authorization
권한 정책 조회
현재 설정된 모든 권한 부여 정책과 규칙을 조회할 수 있는 권한입니다.
realm-management
조회 권한
role_view-clients
클라이언트 설정 조회
등록된 클라이언트의 기본 정보와 설정을 읽기 전용으로 확인할 수 있는 권한입니다.
realm-management
조회 권한
role_view-events
이벤트 조회
시스템에서 발생한 모든 이벤트 로그를 조회하고 필터링할 수 있는 권한입니다.
realm-management
조회 권한
role_view-identity-providers
ID 제공자 조회
구성된 모든 외부 신원 공급자의 설정과 연동 상태를 확인할 수 있는 권한입니다.
realm-management
조회 권한
role_view-realm
영역 설정 조회
영역의 전반적인 설정과 정책을 읽기 전용으로 확인할 수 있는 권한입니다.
realm-management
조회 권한
role_view-users
사용자 기본 조회
사용자의 기본 프로필 정보만을 조회할 수 있는 제한된 권한으로, 고급 검색이나 필터링 기능은 제공되지 않습니다.