摘要:前言虛擬資源管理平臺是在的基礎上開發的,從原有的一個用戶擴展成三個管理員用戶和普通用戶,下面簡單分析一下其實現權限管理的原理。
前言
虛擬資源管理平臺是在ovirt4.0的基礎上開發的,從原有的一個admin用戶擴展成三個管理員用戶和普通用戶,下面簡單分析一下其實現權限管理的原理。
數據庫表主要包括三張表:roles(角色表)、roles_group(角色與操作組關系表)、permissions(權限表)
角色RoleType有五種:SystemAdmin、SecurityAdmin、AuditAdmin、UserRole、QuotaConsumer
roles
roles_group角色與操作組關系表(操作組id就是actionGroup中的id,也就是動作組的id,)
permissions權限信息表(也相當于角色和用戶的關聯表,表示某個用戶擁有對某個操作對象的權限,操作對香指存儲,虛擬機,模板等對象)
定義操作:通過VdcActionType進行操作自定義,通過枚舉設置操作與操作組的從屬關系,而ActionGroup是定義操作組(或者說動作組)
比如瘦客thinClient作為一個操作組,則其包括好多種操作,比如登錄VdcLogin和退出VdcLogout等等
// VdcLogin VdcLogin(5003, ActionGroup.THINCLIENT, QuotaDependency.NONE), VdcLogout(5004, ActionGroup.THINCLIENT, QuotaDependency.NONE),
通過00500_insert_roles.sql初始化角色權限
權限驗證事務:系統中所有操作Command都提供getPermissionCheckSubjects方法,用來定義執行操作的權限列表
permissionList權限列表中,包含權限對象PermissionSubject,權限對象的屬性如下:
在系統的各種command的執行時,會檢測權限,每個操作Command執行,必須定義操作權限列表,否則會直接提示沒有操作權限:
最終通過存儲過程進行權限查詢get_entity_permissions
滿足權限的條件判斷(1,2必須滿足,3,4,5滿足其中一個)
系統登錄用戶系統登錄用戶(user_id) 所屬的 角色(role),必須與 操作組(action_group_id) 在 roles_groups 表中有對應關系
role_id IN( SELECT role_id FROM roles_groups WHERE action_group_id = v_action_group_id)
2.必須擁有需要刪除的虛擬機的權限( 或者 所屬群集、數據中心的權限。有待探討)
AND (object_id IN(SELECT id FROM fn_get_entity_parents(v_object_id,v_object_type_id)))
3.功能分配了everyone權限
v_everyone_object_id := getGlobalIds("everyone");
ad_element_id = v_everyone_object_id
4.功能分配了該登錄用戶的權限
ad_element_id = v_user_id
5.功能分配了該登錄用戶所屬用戶組的權限
ad_element_id IN(SELECT * FROM getUserAndGroupsById(v_user_id)
通過 AddPermissionCommand操作添加權限
通過RemovePermissionCommand的paramPermission操作刪除權限,根據權限ID刪除
getDbFacade().getPermissionDao().remove(perms.getId());
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77104.html
摘要:最近在寫登錄策略配置模塊,現在通過分析登錄策略配置模塊來說明系統的層次結構。這樣實現起來簡單明了,不過由于是根據角色定義登錄限制策略,同一種角色只有一種登錄限制策略,對不同用戶暫時不能做到多樣性控制,后期再修正。 最近在寫登錄策略配置LoginConfig模塊,現在通過分析登錄策略配置模塊來說明系統的層次結構。系統后臺主要包括四層: 1. 數據庫層:包括表、存儲過程、實體類 2. 數據...
摘要:最近在寫登錄策略配置模塊,現在通過分析登錄策略配置模塊來說明系統的層次結構。這樣實現起來簡單明了,不過由于是根據角色定義登錄限制策略,同一種角色只有一種登錄限制策略,對不同用戶暫時不能做到多樣性控制,后期再修正。 最近在寫登錄策略配置LoginConfig模塊,現在通過分析登錄策略配置模塊來說明系統的層次結構。系統后臺主要包括四層: 1. 數據庫層:包括表、存儲過程、實體類 2. 數據...
摘要:彼時,從虛擬化管理到公有云,熱鬧異常。雖然年才明顯放棄公有云的全面競爭,但在年決定發起和開源項目是,不說明確,至少已經隱隱覺得肯定搞不過亞馬遜了。年前賣的多火,被視為虛擬主機的升級版。當然不是新堆棧,而是傳統堆棧。 還記得在十多年前,SaaS鼻祖SalesForce喊出的口號『No Software』嗎?SalesForce在這個口號聲中開創了SaaS行業,并成為當今市值460億美元的Saa...
摘要:本人的學習筆記,主要是對我的第一本書從入門到實踐的學習記錄,并結合其他各種資源的學習,歡迎大牛們指點。最新的容器引入了容器如,容器不再僅僅是一個單純的運行環境。鏡像是基于聯合文件系統的一種層式的結構,由一系列指令一步步構建處理。 本人的學習筆記,主要是對《我的第一本Docker書》、《Docker —— 從入門到實踐》的學習記錄,并結合其他各種資源的學習,歡迎大牛們指點。 容器簡介 ...
閱讀 3154·2021-11-22 12:01
閱讀 3774·2021-08-30 09:46
閱讀 789·2019-08-30 13:48
閱讀 3218·2019-08-29 16:43
閱讀 1666·2019-08-29 16:33
閱讀 1855·2019-08-29 13:44
閱讀 1418·2019-08-26 13:45
閱讀 2235·2019-08-26 11:44