訪問控制之9種元素

liangshan發表於2014-10-15
anycmd是個許可權引擎:
使用者初始化這個引擎的狀態,然後往這個引擎中輸入一個運動的標識它會回答是否允許這個運動發生:允許、不允許、我異常了(許可權引擎異常了)。
如何標識一個運動?有這麼幾個要素:1 誰發起的這'個'運動,2 這'種'運動的‘種’標識。3 這個運動的實參列表。
所謂運動,其實就是一個過程,其實就是一個計算。
其實就是一個輸入和輸出。其實就是物件的方法啦,沒什麼高深的
他使用“運動”這個概念,而不使用更具體的概念是想表明,它是設計用來控制任何運動的。
比如3D印表機的列印運動,不停的運動,系統不停的取樣,不停的改變許可權引擎的狀態,然後終於發現使用者99%是在試圖列印一把槍!
槍有它的核心模型,無論你怎麼偽裝,列印出來的槍都是使用同樣的物理定律去發射子彈的,它的那個核心模型是一樣的,anycmd就是要取樣識別出他們的偽裝從而在這個運動完成之前終止它!
在運動完成之前總是有辦法終止這個運動。計算機指揮3D印表機列印的運動過程只是它的父過程的子過程,還有列印後從3D印表機中取結果的過程啊,沒有許可權就讓你取不出。

anycmd明白rbac處在acl和安全策略語言中間的意義和重要性,anycmd明白人們花費集體智慧人力指定出標準的意義和重要性。anycmd致力於讓高高在上的國家標準、國際標準發揮價值。
anycmd定義了可以任意兩兩組合的9中AC元素:Account 、Organization、Role、Group、Function、Menu、AppSystem、ResourceType、Privilege(暫不支援,該取值的存在是為了概念完整性。組成授權路由連結串列。如同物件導向機制中類的“繼承”)。

發現有很多概念相互交叉甚至能夠相互替代。比如Group被定義為‘資源組’,複雜的Group中放置的可以是不止一種型別的資源對於這種組改稱‘手工倉庫’,而組中只放置了一種資源的組稱‘簡單組’。按照這種思路理解的話Role其實也是一種組,Role這種組中放置了兩種資源:Account和Privilege。工作組也是組,工作組中放置的也是兩種資源:Account和Role。
anycmd中有9中ac元素,為什麼這麼多種元素?這不是我抽象出來的,而是觀察現在的世界觀察出來的。人們抽象出這些元素是為了幫助簡化複雜的問題,這9種ac元素是站在一個更低的抽象層次來觀察的,而在高一級的抽象層次看ac只有三種元素:主體、資源、運動
組織結構是對資源的單元劃分,組織結構節點是邊界,每一個邊界繫結的角色應該只在當前使用者進入這個邊界後啟用離開這個邊界後收回,從而不能將從一個邊界內得到的角色帶出這個邊界去操作其他邊界內的資源。
計劃從11個維度去考量到來的每一條命令('到來'不是說要跨程式跨網路什麼的,到來可以理解為呼叫,就像呼叫一個物件的方法)。11個維度的叫法是不是正確我也不知道,11個維度的本意是想要提取出11個基本變數,控制許可權就是從這11個變數出發去控制。

但是現在發現這11個變數不一定都是完全正交的,應該去除若干個。應該會隨著目標資料的被一步步定位而一步步降維。
11個維度到達具體的資料單元格的時候可能只剩下兩三個維度了,設計為終極降到為兩維,因為我感覺如果將級為只有一維的話世界失去了意義。

[該貼被anycmd於2014-10-15 17:09修改過]

相關文章