基于角色訪(fǎng)問(wèn)控制的UML表示
Michael E. Shin、Gail-Joon Ahn著(zhù),UMLChina 譯
在基于角色訪(fǎng)問(wèn)控制(role-based access control,RBAC)中,權限和角色相關(guān),用戶(hù)被當作相應角色的成員而獲得角色的權限。RBAC背后的首要動(dòng)機是為了簡(jiǎn)化管理。已經(jīng)有文章介紹了一些基于角色系統的開(kāi)發(fā)框架,但目前很少有文章使用系統開(kāi)發(fā)者或軟件工程師易于理解的方式來(lái)闡述RBAC。統一建模語(yǔ)言(UML)是一種通用的可視化建模語(yǔ)言,我們可以使用它闡述、可視化和文檔化軟件系統的組成部分。本文使用UML表示RBAC模型,縮短了安全模型和系統開(kāi)發(fā)之間的鴻溝。我們使用三種視圖表述RBAC模型:靜態(tài)視圖、功能視圖、動(dòng)態(tài)視圖。另外,我們簡(jiǎn)短地討論了將來(lái)的方向。
在RBAC中,權限和角色相關(guān),用戶(hù)(user)被當作相應角色(role)的成員而獲得角色的權限(permission)。這大大簡(jiǎn)化了權限的管理。角色針對組織中的各種功能創(chuàng )建,用戶(hù)依據他們的責任和資歷被指派角色。用戶(hù)被指派的角色可以容易地從一個(gè)跳到另一個(gè)。用戶(hù)對信息的訪(fǎng)問(wèn)在指派角色的基礎上被管制。自從RBAC被廣泛接受,許多安全領(lǐng)域的研究者和安全系統開(kāi)發(fā)者已經(jīng)花了很多時(shí)間來(lái)開(kāi)發(fā)基于角色的系統。一些文章介紹了一些基于角色系統的開(kāi)發(fā)框架 [2, 11 , 12 ]。這些以前的工作有一些很難被開(kāi)發(fā)人員理解,因為它們太抽象、太形式,另外一些則是關(guān)注面向應用或專(zhuān)門(mén)領(lǐng)域框架的具體解決方案。這些框架都不足夠為系統開(kāi)發(fā)者給出一份合理的藍圖。
我們的主要目標是縮短安全模型和系統開(kāi)發(fā)之間的鴻溝。本文使用通用的可視化建模語(yǔ)言UML來(lái)表示RBAC模型。我們選擇UML的原因是它已經(jīng)成為建模的標準語(yǔ)言。我們的表示包括RBAC模型的靜態(tài)視圖、功能視圖、動(dòng)態(tài)視圖。
本文按以下方式組織:在第2部分,我們描述一種廣為人知的基于角色訪(fǎng)問(wèn)控制模型,通常稱(chēng)為RBAC96。第3部分簡(jiǎn)短介紹UML。第4部分用UML表示RBAC96模型。第5部分給出結論。
作為有希望取代傳統自主式訪(fǎng)問(wèn)控制(DAC)和強制式訪(fǎng)問(wèn)控制(MAC) [3,4, 6, 9]的替代者, RBAC目前已經(jīng)得到了很大的關(guān)注。RBAC的策略基于角色,可以使用映射組織結構的方式來(lái)闡述安全策略。Sandhu等發(fā)布了稱(chēng)為 RBAC96的RBAC通用模型家族[9]。圖1展示了家族中最通用的模型。關(guān)于在開(kāi)發(fā)這個(gè)模型家族時(shí)所作設計決定的一些動(dòng)機和討論可參見(jiàn)[9]。
圖1 RBAC模型
圖1顯示了 (regular)管制對數據和資源的訪(fǎng)問(wèn)的角色和權限。直觀(guān)上,一個(gè)用戶(hù)是一個(gè)人或一個(gè)自治的agent,一個(gè)角色是一項在組織中的工作功能或工作頭銜。而權限是對系統中一個(gè)或多個(gè)object的特定訪(fǎng)問(wèn)模式的許可或執行某些動(dòng)作的特權。角色以偏序關(guān)系≥組織,如果x≥y那么角色x就繼承了角色y的權限。x的成員也意味著(zhù)是y的成員。每次會(huì )話(huà)( session)把一個(gè)用戶(hù)和可能的許多角色聯(lián)系起來(lái)。用戶(hù)建立一次會(huì )話(huà),激活一些他或她是成員(直接獲得或通過(guò)角色繼承的方式間接獲得)的角色子集。RBAC模型有以下組成部分,這些組成部分從以上的討論中形式化。
一個(gè)用戶(hù)可以成為很多角色的成員,一個(gè)角色可以有許多用戶(hù)。類(lèi)似地,一個(gè)角色可以有多個(gè)權限,同一個(gè)權限可以被指派給多個(gè)角色。每個(gè)會(huì )話(huà)把一個(gè)用戶(hù)和可能的許多角色聯(lián)系起來(lái)。一個(gè)用戶(hù)在激發(fā)他或她所屬角色的某些子集時(shí),建立了一個(gè)會(huì )話(huà)。用戶(hù)可用的權限是當前會(huì )話(huà)激發(fā)的所有角色權限的并集。每個(gè)會(huì )話(huà)和單個(gè)用戶(hù)關(guān)聯(lián)。這個(gè)關(guān)聯(lián)在會(huì )話(huà)的生命期間保持常數。一個(gè)用戶(hù)在同一時(shí)間可以打開(kāi)多個(gè)會(huì )話(huà),例如,在不同的工作站屏幕窗口各一個(gè)。每個(gè)會(huì )話(huà)可以有不同的活動(dòng)角色。會(huì )話(huà)的概念相當于傳統的訪(fǎng)問(wèn)控制中主體(subject)的標記。一個(gè)主體是一個(gè)訪(fǎng)問(wèn)控制單位,一個(gè)用戶(hù)在同一時(shí)間可以擁有多個(gè)不同活動(dòng)權限的主體(或會(huì )話(huà))。
UML是通用的可視化建模語(yǔ)言,我們可以使用它闡述、可視化和文檔化軟件系統的組成部分?,F在UML已經(jīng)是軟件工程的標準語(yǔ)言。UML包括用例建模,靜態(tài)建模和動(dòng)態(tài)建模。在用例建模中,通過(guò)用例和執行者闡述系統的功能需求。用例由執行者引發(fā),描述了執行者和系統之間的交互。靜態(tài)建模提供系統的結構視圖信息,在這個(gè)視圖中,通過(guò)類(lèi)、類(lèi)屬性和與其他類(lèi)的關(guān)系( relationship)表示。關(guān)系包括關(guān)聯(lián)(association)、泛化/特化(generalization/specialization)、聚合。動(dòng)態(tài)建模表現系統的行為視圖。它可以通過(guò)對象協(xié)作圖、順序圖或狀態(tài)圖來(lái)描述。對象協(xié)作圖和順序圖用來(lái)描述對象和其他對象在執行用例時(shí)的協(xié)作。依賴(lài)于狀態(tài)的對象使用狀態(tài)圖來(lái)描述 [5]。
本文中,我們使用類(lèi)圖、用例圖和對象協(xié)作圖分別作為RBAC模型的靜態(tài)視圖、功能視圖、動(dòng)態(tài)視圖。在本文的剩下內容中,我們使用了 [1, 7, 10]中介紹的UML標記符。
RBAC中的組成部分是用戶(hù)、角色、權限、會(huì )話(huà)和約束。為了使用UML表示RBAC模型,我們使用對象類(lèi)的標記分析每個(gè)組成部分。在本文后面部分中,我們的分析分為三個(gè)不同的視圖:靜態(tài)視圖、功能視圖和動(dòng)態(tài)視圖。
4.1 靜態(tài)視圖
圖2 類(lèi)圖:概念靜態(tài)模型
RBAC的概念靜態(tài)模型如圖2所示,包括類(lèi)、類(lèi)之間的關(guān)系和關(guān)系的勢?;镜膶?shí)體是用戶(hù)、角色、權限、約束和會(huì )話(huà)類(lèi)。角色和權限類(lèi)分別特化出兩種類(lèi)別:使用者和管理者。這個(gè)特化依賴(lài)于用戶(hù)的資歷。RBAC模型的約束可以有很多種形式,依賴(lài)于應用系統。為了簡(jiǎn)化分析模型,我們靜態(tài)模型中的約束只有三個(gè):用戶(hù)約束、權限約束、會(huì )話(huà)約束。另外,靜態(tài)模型還有一個(gè)特殊的類(lèi)session hour,當用戶(hù)建立一個(gè)會(huì )話(huà)來(lái)激活他/她的角色時(shí),該類(lèi)被使用。這對表達基于會(huì )話(huà)的約束很有用。例如,一個(gè)組織可以要求用戶(hù)只能在某些時(shí)間建立會(huì )話(huà)。為了強化這類(lèi)約束,我們需要跟蹤每個(gè)會(huì )話(huà)的會(huì )話(huà)時(shí)間。實(shí)體類(lèi)的屬性在圖3中定義。
圖3 實(shí)體類(lèi)的屬性
在靜態(tài)視圖中,UA關(guān)系和PA關(guān)系用多對多的“assinged to”關(guān)系表示。用戶(hù)-會(huì )話(huà)關(guān)系看作一個(gè)用戶(hù)可以建立一個(gè)或多個(gè)會(huì )話(huà),在常數的會(huì )話(huà)生命期中每個(gè)會(huì )話(huà)激活至少一個(gè)或多個(gè)角色。角色繼承關(guān)系表示為一個(gè)角色inherits另外的角色。
4.2 功能視圖
本文中,我們也作了更具體的功能需求來(lái)表示在圖2中沒(méi)有清晰定義的、RBAC系統應該提供的功能。使用用例模型描述的功能視圖如圖4所示,有三個(gè)執行者:安全管理員(security administrator)、用戶(hù)(user)和角色領(lǐng)域工程師(role domain engineer)。角色領(lǐng)域工程師從可能組織一組權限的應用系統中抽取出基本的知識,構造角色層次和指定約束。安全管理員管理基于角色的系統,指派用戶(hù)到角色和指派權限到角色。用戶(hù)是真實(shí)的人或外系統,可以建立會(huì )話(huà)、請求權限許可和關(guān)閉會(huì )話(huà)。
圖4 用例模型
下面是建立會(huì )話(huà)(session establishing)用例的簡(jiǎn)要敘述:
用例:建立會(huì )話(huà)
執行者:用戶(hù)
前置條件:系統空閑
說(shuō)明:用戶(hù)提交信息以建立會(huì )話(huà);系統顯示用戶(hù)可以激活的角色;用戶(hù)選擇要激活的角色;系統以用戶(hù)所選擇的角色激活一個(gè)會(huì )話(huà)。
在以所選擇角色建立會(huì )話(huà)之后,用戶(hù)可能需要訪(fǎng)問(wèn)需要基于角色信息的授權過(guò)程的系統資源。換句話(huà)說(shuō),和角色相關(guān)的權限應該得到系統的許可。以下是“權限許可”用例的簡(jiǎn)要描述:
用例:權限許可
執行者:用戶(hù)
前置條件:用戶(hù)的會(huì )話(huà)已經(jīng)激活
說(shuō)明:用戶(hù)提交權限許可信息,系統通知用戶(hù)權限是否許可。
我們也可以考慮其他情況。例如,我們可能需要額外的功能來(lái)讓安全管理員監視會(huì )話(huà)或讓用戶(hù)查詢(xún)自己的狀態(tài)。
4.3 動(dòng)態(tài)視圖
在動(dòng)態(tài)視圖中,用例被精化以顯示參與用例的對象之間的交互。“建立會(huì )話(huà)”的協(xié)作圖如圖5所示。
圖5 協(xié)作圖:建立會(huì )話(huà)
用戶(hù)通過(guò)UserInterface引發(fā)用例, RBAC Controller coordinates協(xié)調對象之間的交互。“權限許可”的協(xié)作圖如圖6所示,需要一個(gè)前置條件:會(huì )話(huà)已經(jīng)被激活。
圖6 協(xié)作圖:權限許可
本文中,我們簡(jiǎn)要描述了廣為人知的基于角色訪(fǎng)問(wèn)控制模型。我們使用可視化建模語(yǔ)言UML來(lái)描述這個(gè)模型。這是使用建模語(yǔ)言描述RBAC模型的第一次嘗試。我們相信我們的工作可以幫助系統開(kāi)發(fā)者更容易地理解RBAC模型和建立基于角色的系統。我們也識別了在安全模型的初期被排除的有用功能和約束。在此工作的基礎上,我們將研究基于UML的模型如何能適應于闡述RBAC的組成部分。也包括如何用可能的UML擴展表示角色繼承和約束。因為模型通過(guò)簡(jiǎn)化細節來(lái)幫助我們理解系統,這個(gè)方向應該比較實(shí)用。
感謝Jaehong Park的幫助審閱此文。
[1] G. Booch, J. Rumbaugh, and
[2] Pete Epstein and
[3] David Ferraiolo and Richard Kuhn. Role-based access con trols. In Proceedings of 15th NIST-NCSC National Computer Security Conferenc e, pages 554-563,
[4] M.-Y.
[5] Hossan Gomaa. Object Oriented Analysis and Modeling for Family of systems with the UML. T echnicalReport,
[6] Imtiaz Mohammed and David M. Dilts. Design for dynamic user-role-based security. Computers & Security, 13(8):661-671, 1994.
[7] J. Rumbaugh, G. Booch, and
[8] Ravi S. Sandhu. Lattice-based access control models. IEEE Computer, 26(11):9{19, November 1993.
[9] Ravi S. Sandhu, Edward J. Coyne, Hal L. Feinstein, and Charles E. Y ouman. Role-based access con trolmodels. IEEE Computer, 29(2):38{47, February 1996.
[10] National Soft w areet al. Unified Modeling Language Notation Guide, Version 1.1.
[11] Charles Y ouman, Ed Coyne, and Ravi Sandhu, editors. Pr oceedingsof the 2nd ACM Workshop on R ole-Based Access Control, Nov. 6-7. ACM, 1997.
[12] Charles Y ouman, Ed Coyne, and Ravi Sandhu, editors. Pr oceedingsof the 3rd ACM Workshop on R ole-Based Access Control, Oct. 22-23. ACM, 1998.
聯(lián)系客服