본문 바로가기
관리자

Programming-[Backend]/Keycloak

Keycloak 세부 권한 관리(admin-fine-grained-authz)

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
반응형