資料地址:http://down.51cto.com/data/2459472
創(chuàng)新互聯(lián)公司服務項目包括尼元陽網(wǎng)站建設、尼元陽網(wǎng)站制作、尼元陽網(wǎng)頁制作以及尼元陽網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,尼元陽網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到尼元陽省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!rbac規(guī)范 解決不規(guī)范和不確定的問題
3.術語
{
組件 component 四個RBAC特征集之一(核心RBAC 層次RBAC 靜態(tài)職責分離關系 動態(tài)職責分離關系)
對象 object 需要進行訪問控制的系統(tǒng)資源
操作 operation 一個程序的可執(zhí)行映像,被調(diào)用時為用戶執(zhí)行的某些功能 GET
權限 permission 對受RBAC保護的一個或多個對象執(zhí)行某個操作的許可
角色 role 組織語境中的一個工作職能
用戶 user 進行資源或服務訪問的實施主體
會話 session 用戶到其激活的角色集合的一個映射
職責分離 separation of duty 限制用戶獲取存在利益沖突的權限集的約束
}
4.縮略語
{
1.RBAC 基于角色的訪問控制
2.SSD
3.DSD
4.USERS
5.ROLES
6.OBJS
7.OPS
8.SESSIONS
9.PRMS
10.ACL 訪問控制列表
}
5.一致性
核心RBAC是必選組件 ,角色層次、靜態(tài)約束、動態(tài)約束是可選組件
6.RBAC參考模型
每個模型組件的定義:一些基本的元素集、一些基于上述基本元素集的RBAC關系、一些映射函數(shù)(給定某個元素集的實例元素下得到另一個元素集的某些實例元素)
{
1.核心RBAC
{
五個基本數(shù)據(jù)元素:users roles objs ops prms 權限分給角色 角色分給用戶
用戶會話集 會話是 從用戶到該用戶的角色集的某個激活角色子集的映射
一個會話只能關聯(lián)一個用戶
一個用戶可以同時擁有多個會話
會話保存該用戶激活的角色子集,包含該用戶激活的角色的可用權限,權限包含相關的操作 權限包含相關對象
規(guī)范
1.users、roles、ops、objs。
2.用戶/角色多對多映射
3.給出分配給角色r的用戶
4.權限集
5.權限/角色多對多映射
6.給出分配給角色r的權限
7.權限到操作的映射
8.權限到對象的映射
9.會話集
10.會話s到對應用戶的映射
11.會話s到其激活的角色集的映射
12.會話s到其擁有權限集的映射
}
2.層次RBAC
{
角色層次有效的反應組織內(nèi)權威和責任的結構
r1繼承r2,則r1擁有r2全部權限和自己的權限
某些分布式RBAC實現(xiàn)中,角色層次集中管理,權限/角色分配非集中管理
兩種角色層次類型:通用角色層次、受限角色層次(一個角色可以擁有一個或者多個直接祖先,但只能有一個直接后代,一個樹)
通用角色層次擴展的規(guī)范:
1.繼承的角色之間的偏序關系 r1>=r2 r1擁有r2的所有權限且r1的用戶將是r2的用戶
2.角色層次存在的情況下,角色到該角色授權用戶的映射
3.角色層次下角色到授權權限的映射
}
3.帶約束的RBAC
{
靜態(tài)職責分離關系
無角色層次的靜態(tài)職責分離
(rs,n) 用戶不能同時被rs中的n個或多個角色分配
有角色層次的靜態(tài)職責分離
(rs,n) 基于角色的授權用戶,而不是直接分配了該角色的用戶進行重新定義
動態(tài)職責分離關系
}
}
7.RBAC系統(tǒng)和管理功能規(guī)范
功能規(guī)范描述
創(chuàng)建和維護RBAC元素集和RBAC關系的管理操作
進行管理查詢的管理查看函數(shù)
創(chuàng)建和維護用戶會話的RBAC屬性和進行訪問控制決策的系統(tǒng)函數(shù)
{
核心RBAC
{
管理函數(shù)
1.AddUser 當新建的用戶尚不存在時,該命令可用 ,命令執(zhí)行后 users更新
2.DeleteUser 當且僅當被刪除的用戶在users中可用,
被執(zhí)行后 users數(shù)據(jù)集 ua數(shù)據(jù)集 assigned_users函數(shù)被更新
一個正處在會話中的用戶被刪除,不做定義,可以強制也可以等待會話結束
3.AddRole 當且僅當要創(chuàng)建的角色不存在可用
被執(zhí)行后 roles數(shù)據(jù)集、assigned_users assigned_permissions函數(shù)被更新
4.DeleteRole 當且僅當被刪除的角色存在時可用
被執(zhí)行后 會話中的被集火的角色如何處理未定義
roles數(shù)據(jù)集、assigned_users assigned_permissions函數(shù)被更新
5.AssignUser 給用戶分配角色 當且僅當用戶屬于users 角色屬于roles可用
被執(zhí)行后 UA數(shù)據(jù)集、assigned_users被更新
6.DeassignUser 用戶移除角色 當且僅當用戶屬于users 角色屬于roles 且user已經(jīng)被分配給該role可用
被執(zhí)行后 UA數(shù)據(jù)集、assigned_users被更新
7.GrantPermission 給角色分配對一個對象執(zhí)行某個操作的權限 當且僅當操作、對象代表一個權限且角色在roles中。實際實現(xiàn)中可能實現(xiàn)為授予對應該角色的組相應的權限,即修改對象的ACL
被執(zhí)行后 PA數(shù)據(jù)集 assigned_permissions函數(shù)被更新
8.RevokePermission 撤銷分配給角色的權限集中的某個權限 當且僅當操作代表一個權限且已經(jīng)分配給該角色 實際實現(xiàn)可能會修改對象的ACL表
被執(zhí)行后 PA數(shù)據(jù)集 assigned_permissions函數(shù)被更新
系統(tǒng)函數(shù)
1.CreateSession
}
層次RBAC
{
}
靜態(tài)職責分離關系
{
}
動態(tài)職責分離關系
{
}
}
第六章 從元素集、關系、管理查詢的角度吧RBAC參考模型定義為四個模型組件
附件1
從管理操作、會話管理、管理查看的功能規(guī)范的角度討論抽象的模型
1.核心RBAC功能規(guī)范
{
三類功能規(guī)范函數(shù)
1.管理函數(shù)
核心RBAC基本元素:users、roles、ops、objs。
ops和objs由部署RBAC的底層系統(tǒng)定義,
管理員可以創(chuàng)建、刪除users、roles的成員, 并創(chuàng)建角色、操作與對象之間的聯(lián)系
AddUser DeleteUser user
AddRole DeleteRole role
AssignUser DeassignUser UA user-role
GrantPermission RevokePermission PA perm-role
2.支持系統(tǒng)函數(shù)
會話管理、訪問控制決策
CreateSession 創(chuàng)建會話并給會話指定一組缺省激活角色
AddActiveRole 向會話的激活角色集中添加一個角色
DropActiveRole 從會話的激活角色集中刪除一個角色
CheckAccess 判斷會話主體是否可以對某個對象執(zhí)行某個操作
3.查看函數(shù)
PA UA實例被建立后,應該可以從用戶和角色的角度去查看他們的內(nèi)容
可選函數(shù)O
UserPermission O 返回用戶的可用權限
SessionRoles O 返回會話的激活角色集
SessionPermissions O 返回會話可用的權限
RoleOperationsOnObject O 返回給定角色針對給定對象可以執(zhí)行的操作
UserOperationsOnObject O 返回給定用戶針對給定對象可以執(zhí)行的操作
強制函數(shù)M
AssignedUsers M 返回分配了給定角色的用戶
AssignedRoles M 返回分配給了給定用戶的角色
}
2.層次RBAC功能規(guī)范
{
1.層次管理函數(shù)
包含核心RBAC的所有管理函數(shù),且DeassignUser的語義需要重新定義(只可以刪除直接授權的角色 還是可以刪除任何被授權的角色沒有給出規(guī)定)
層次RBAC需要額外的管理函數(shù):
創(chuàng)建和刪除現(xiàn)存角色間的直接繼承關系、、把一個新創(chuàng)建的角色加入現(xiàn)存的角色層次中
AddInHeritance 在現(xiàn)存的兩個角色之間創(chuàng)建直接繼承關系
DeleteInheritance 刪除兩個現(xiàn)存的角色之間的直接繼承關系 隱含繼承關系是否打破沒有給出要求,自行定義
AddAsendant 創(chuàng)建新角色,并把它指定為一個現(xiàn)存角色的直接祖先
AddDescendant 創(chuàng)建一個角色,并把它指定為一個現(xiàn)存角色的直接后代
---支持通用角色層次(允許多重繼承)和首先角色層次(一個樹,每個角色只有一個直接后代)
2.支持系統(tǒng)函數(shù)
CreateSession AddActiveRole 因為角色層次的存在需要重新定義
CreateSession 創(chuàng)建的激活角色集包含直接給用戶分配的角色和這些角色繼承的角色
AddActiveRole 用戶可以激活 直接分配的角色和繼承的角色。繼承的角色是自動激活還是必須顯示的激活不做明確要求
3.查看函數(shù)
包含核心RBAC且增加如下函數(shù)
AuthorizedUser 返回分配了給定角色或該角色繼承的角色的用戶(給定角色的授權用戶)
AuthorizedRoles 返回給定用戶北直街分配的角色和繼承這些角色的角色(給定用戶的授權角色)
可選函數(shù)
RolePermissions 返回給定角色直接或繼承來的權限
UserPermissions 返回給定用戶直接分給的角色或繼承自其他角色獲得的權限
RoleOperationsOnObject 返回給定角色擁有的針對給定對象執(zhí)行的操作(直接或繼承來的)
UserOperationsOnObject 返回給定用戶可以執(zhí)行的針對給定對象的操作(通過直接分配的角色或這些角色繼承的角色)
}
3.靜態(tài)職責分離關系功能規(guī)范
{
1.管理函數(shù)
SSD限制用戶同事可以分配的角色,AssignUser應該不違背任何SSD約束
一個SSD關系有三元組組成: SSD_Set_Name role_set SSD_Card
SSD_Set_Name 指定了要限制用戶/角色分配以貫徹利益沖突策略的事務或商業(yè)過程的名稱
role_set 是 SSD_Set_Name 對應的角色集
SSD_Card 給出了閾值
非角色層次SSD RBAC管理函數(shù)
CreateSSDSet 創(chuàng)建一個命名的SSD關系
DeleteSSDSet 刪除一個現(xiàn)存的SSD關系
AddSSDRoleMember 添加一個角色到給定SSD角色集
DeleteSSDRoleMember 從一個給定的SSD角色集刪除一個角色
SertSSDCardinality 為給定的SSD角色集設置閾值
--角色層次SSD只需要針對角色層次的組合約束和SSD約束都應該滿足
2.支持系統(tǒng)函數(shù)
和核心RBAC一直
3.查看函數(shù)
核心RBAC和如下函數(shù):
SSDRoleSets 返回SSD RBAC中的命名SSD關系
SSDRoleSetRoles 返回與給定命名角色集關聯(lián)的角色
SSDRoleSetCardinality 返回與命名的給定角色集關聯(lián)的閾值
}
4.動態(tài)職責分離關系功能規(guī)范
{
1.管理功能
CreateDSDSet
DeleteDSDSet
AddDSDRoleMember
DeleteDSDRoleMember
SetDSDCardinality
2.支持系統(tǒng)函數(shù)
CreateSession AddActiveRole DropActiveRole不能違反DSD約束
3.查看函數(shù)
DSDRoleSets
DSDRoleSetRoles
DSDRoleSetCardinality
}
4.功能規(guī)范包
RBAC是一項提供諸多訪問控制管理特征的技術
第六章定義的一個功能組件族:核心RBAC 層次RBAC 靜態(tài)職責分離關系 動態(tài)職責分離關系
每個功能組件包含三部分:創(chuàng)建和維護RBAC元素集和關系的管理操作、管理查看函數(shù)、系統(tǒng)級別的用戶會話管理和訪問控制策略的函數(shù)
{
(高級查看是可選的 )
(必選)核心RBAC -> (可選)角色層次RBAC(受限/通用二選一) -> (可選)SSD關系(遵循依賴 有/無角色層次與上一選擇對應) -> (可選)DSD關系 -> 需求包
}
-----------------------------------------------------
組件原理
1.核心RBAC
{
用戶/角色 多對多
角色/權限 多對多
}
2.層次RBAC
{
角色層次是數(shù)學上的偏序關系
角色可以擁有重合的權限
}
3.靜態(tài)職責分離關系
對用戶/角色分配進行約束 實施利益沖突策略
(role_set,n)的對,用戶不能被分配屬于role_set角色集的n個或更多個角色
常對可能違反高層組織職責分離策略的管理操作施加限制
4.動態(tài)職責分離關系
和SSD不同的是上下文
DSD通過限制永不會話中可以被激活的角色來限制用戶權限的可用性
一個用戶被分配兩個獨立的角色,但是這兩個角色不可以同時行使權限
--------------------------
Z語言:
基本單位:模式:說明部分+謂詞部分
說明部分:定義一些狀態(tài)或模式變量
謂詞部分:定義一般的謂詞公式
-------------------------------------
https://casbin.org/docs/zh-CN/rbac
1.插件
{
1.策略存儲插件
https://github.com/search?q=org%3Acasbin+adapter&unscoped_q=adapter
file gorm xorm mongodb redis protobuf redis json awss3
2.策略同步插件
https://github.com/casbin/etcd-watcher
https://github.com/billcobbler/casbin-redis-watcher
redis etcd
3.角色管理插件
...
}
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。