728x90
반응형
Master Realm(Master) : Realm Level
Realm-Role | 설명 | 비고 |
admin | • 모든 Realms을 관리 할 수 있는 슈퍼 유저 | • 새로운 realm을 생성하면 새로운 realm에 대한 권한도 부여됨 |
create-realm | • 새로운 Realm을 생성 할 수 있는 권한 |
- 기본적으로 생성되는 Master 영역은, 여러 영역을 관리 할 수 있음 : master-realm
- Master에 있는 User에게는 다른 영역을 관리할 수 있는 권한을 부여할 수 있음
- master 영역에서만 여러 영역을 동시에 관리할 수 있음
- 즉, master 영역의 사용자만 master-realm의 역할을 가질 수 있음
- master-realm 안에서만 부여 가능 (Master > Realm roles 확인 가능)
- 모든 영역이 아닌 특정 다수의 영역만 관리할 수 있도록 커스텀 할 수 있음
Realm Specific Role : 특정 Realm
- /admin/master/console/
- 특정 영역을 관리하기 위한 클라이어트 수준의 역할 : realm-management
- 특정 기능에 대한 접근 권한을 부여
구분 | 이름 | 기능 | 설명 | 비고 | |
realm-admin | • Realm에 대한 전체 관리 권한을 가진 최상위 역할 | • 최상위 역할 , 하위 역할이 필요없음 | |||
realm |
manage-realm | update | • Realm의 전체적인 관리를 위한 역할 • Realm과 관련된 수정을 포함한 광범위한 수정 권한 |
• Required) view-users : UI 에서 조회가 안되면, 수정/삭제가 어려움 | |
view-realm | read access |
• Realm의 정보를 조회할 수 있는 역할 • Realm내의 설정, 구성 및 기타 관련 정보를 볼 수 있음 |
• Realm Roles에서 List 조회 가능 • Role Details에서 상세내용 확인 불가 ◦ view-realm, view-users 역할 필요 ◦ role assign을 위해선 추가 권한 필요 → 확인중 |
||
query-realms | access | • Realm을 접근 할 수 있는 역할 • 사실상 Realm단위에서 가장 하위 역할 |
• 접근하기 위해서 query-realms 이상의 role 필요 • Realm 세부 정보를 보기 위해서는 view-realm 역할이 필요 |
||
client |
manage-clients | create update delete |
• Clients의 전체적인 관리를 위한 역할 • Clients와 관련된 광범위한 생성/수정/삭제 권한 |
• Required) view-clients | |
create-client | create | • Clients 생성만 할 수 있는 역할 | • manage-clients에 포함된 역할 • 조회가 안되면, 수정/삭제도 안되기 때문에 view-clients이 기본적으로 필요 |
||
view-clients | read | • Clients의 정보를 조회할 수 있는 역할 • Clients내의 설정, 구성 및 기타 관련 정보를 볼 수 있음 |
|||
query-clients | access | • Clients 접근 할 수 있는 역할 • Clients 메뉴 렌더링 |
|||
user | manage-users | create update delete |
• Users의 전체적인 관리를 위한 역할 • Users과 관련된 수정을 포함한 광범위한 수정 권한 |
• Required) view-users • user 생성시 추가 역할 필요 ◦ query-groups |
|
view-users | read | • Users의 정보를 조회할 수 있는 역할 • Users의 설정, 구성 및 기타 상세 정보를 볼 수 있음 |
|||
query-users | access | • User List 조회 (상세X) • Users 메뉴 렌더링 |
• User 목록이 보여지지 않음 | ||
group | query-groups | read | • 그룹 정보를 조회 | • role mapping을 위해서는 추가 역할 필요 ◦ manage-users |
|
event | manage-events | create update delete |
• Realm의 이벤트 관리를 위한 역할 • 로그인, 로그아웃, 접근 시도 등의 이벤트를 관리할 수 있음 |
• Realm Setting에서 event 관리를 위해서는 해당 권한 필요 | |
view-events | read | • Realm의 이벤트 로그를 볼 수 있는 역할 • 이벤트를 생성하는 모든 활동을 모니터링할 수 있음 • Events 메뉴 렌더링 |
|||
authentication | manage-authorization | create update delete |
• Realm의 자격증명 유형 관리 • Authentication 유형 생성/수정/삭제 |
||
view-authorization | read | • Authentication 유형 조회 • Authorization 메뉴 렌더링 |
|||
provider | manage-identity-providers | create update delete |
• 다른 인증 시스템부터 사용자의 신원을 확인하는 신원 공급자를 관리하는 역할 | ||
view-identity-providers | read | • Realm에 연결된 신원공급자 조회 • Identity providers 메뉴 렌더링 |
세부 관리 권한
- 관리 권한을 더욱 세부적으로 제한할 수 있음
- 특정 클라이언트만 제어
- 특정 그룹만 제어
- 특정 role mapping 가능
- 등등등
참고사항
- 세부 관리 권한은 비활성화가 디폴트 값 → 활성화 후 세부 권한 사용가능-features=preview or --features=admin-fine-grained-authz ENV KC_FEATURES=admin-fine-grained-authz
Permission Type
Client Permissions
- 활성화 방법 : Clients > 특정 Client 클릭 > Permissions > Permission enabled
- Permission List
- configure : 관리 권한
- manage : 특정 Client 관리 권한
- map-roles : 특정 Client Role Mapping 권한
- map-roles-client-scope : 특정 Client client scope 매핑 권한
- map-roles-composite :
- token-exchange :
- view : 특정 Client 조회 권한
Role Permissions
- Realm roles > Role Name click > Permissions > Permission enabled
- Permission List
- map-role : 특정 Role을 매핑할 수 있는 권한
- map-role-client-scope : 특정 client scope를 매핑할 수 있는 권한
- map-role-composite : 특정 Role을 다른 Role의 하위 Role로 사용 가능하게 하는 권한
Group Permissions
- Groups > Group Name click > Permissions > Permission enabled
- Permission List
- view : 특정 group을 조회할 수 있는 정책
- manage : 특정 group을 관리할 수 있는 정책
- view-members : 특정 group 소속 멤버를 볼 수 있는 권한
- manage-members : 특정 group의 소속 멤버들을 관리할 수 있는 권한
- manage-membership : 특정 group 소속 멤버 추가 및 삭제 할 수 있는 권한
User Permission
- Users > Permissions > Permission enable
- Permission List
- view : Users를 볼 수 있는 권한
- manager : Users를 관리할 수 있는 권한
- map-roles : User에 role을 Mapping 할 수 있는 정책
- manage-group-membership : User를 Group에 참여 및 탈퇴를 할 수 있는 권한
- impersonate : User 대행 권한 (주의)
- user-impersonate : 어떤 사용자가 대행될 수 있는지를 결정
참고 링크
https://www.keycloak.org/docs/latest/server_admin/index.html#_fine_grain_permissions
728x90
반응형
'Programming-[Backend] > Keycloak' 카테고리의 다른 글
k8s 환경에서 keycloak multi pod로 실행하기 (1) | 2025.01.22 |
---|---|
[비공개] Keycloak 클라이언트별 Admin 관리자 만들기 (0) | 2025.01.21 |
Keycloak Password Hashing Algorithm: Bcrypt 방식 적용하기 (0) | 2024.11.27 |
Keycloak ID(username) 찾기 기능 구현하기 (2) | 2024.10.21 |
keycloak 2차 인증(문자, 이메일) 구현하기 w/ AWS SNS (3) | 2024.10.21 |