以屬性為基礎的工作-角色指派模型之研究

70  Download (0)

Full text

(1)

I

以屬性為基礎的工作-角色指派模型之研究

中華大學 資訊管理學系

摘要

由於近年來越來越多人研究以角色為基礎的存取控制模型(Role-based Access Control, RBAC),各種以 RBAC 作為存取控制的資訊系統被開發出來。

但是為了使 RBAC 能符合企業運作環境,應該考慮到工作的概念。而以工作-角 色為基礎的存取控制(Task-Role-based Access Control Model, TRBAC)提供一個 指派架構,可以讓系統管理員根據企業政策利用手動方式去指派工作到適當的角 色。但是在大型企業環境下,企業有許多的工作和角色,利用手動方式去做工作 指派,指派將會變得非常複雜而且也會使得企業營運成本相對地提高。

因此,本研究便是提出一個嶄新的工作與角色指派模型,稱為「以屬性為基 礎 的 工 作 - 角 色 指 派 模 型 」 ( Attribute-based Task-Role Assignment Model, ATRBAC),將屬性的概念運用在工作-角色為基礎的存取控制模型中的工作與 角色之間的指派裡,加入動態指派的概念,根據企業制定的政策,做出有效的指 派,使企業在運行上具有更大的彈性。

關鍵詞:以角色為基礎的存取控制、屬性、規則

研究生:李宗澤 指導教授:吳美玉 博士

(2)

II

Research on Attribute-based Task-Role Assignment Model

Department of Information Management, Chung-Hua University

ABSTRACT

More and more researchers studied Role-based Access Control model (RBAC) in recent years. Various kinds of RBAC-based information systems were developed. In order to suitable for enterprise environment, RBAC should consider the concept of task. Task-Role-based Access Control Model (TRBAC) provides an assignment mechanism for system managers to assign tasks to roles based on enterprise policies manually. While large-scale enterprise environments have many tasks and roles, manual assignment will become quite complex and the operational cost for business also be increased.

Therefore, this research proposes a novel task-role assignment model named

“Attribute-based Task-Role Assignment Model” (ATRBAC). The ATRBAC adopts the attribute concept for task-role assignment in Task-Role-based Access Control (TRBAC). The task-role assignment will be a dynamic assignment. According to enterprise policies, ATRBAC will make sure that the enterprise has an applicable assignment and the operation in enterprise is more efficiently.

Keywords: Role-Based Access Control, Attribute, Rule

Student:Tsung-Tse Li Advisor:Dr. Mei-Yu Wu

(3)

III

致謝

這篇論文能如期完成,首先要感謝我的指導教授吳美玉老師,在這二年來的 細心指導及教誨,讓我學到許多知識,各種報告以及寫作技巧也相對提升,讓我 受益良多,也使得我在未來工作上,可以運用這些技術及技巧,來達成工作目標。

雖然這二年來,學習過程相當艱苦,卻感到非常充實,現在終於要畢業了,要與 老師以及同學離開了,非常不捨。

首先我要感謝我父母,父母一開始不鼓勵我念研究所,由於我的堅持以及努 力,父母最後強力支持我,讓我能全力完成我的學業。另外也要感謝同實驗室的 同學歐家維、詹智翔、簡其宏、曾本涵、黃文政以及賴政揚,他們給予我適當的 支持與鼓勵,讓我有動力去完成學業。

還要感謝我的口詴委員郭明煌教授、王偉德教授以及葉慈章教授,感謝他們 對於我的論文細心指導與建議,尤其是郭明煌教授對於論文有精闢的建議,讓我 受益匪淺。

(4)

IV

目錄

摘要... I ABSTRACT ... II 致謝... III 目錄... IV 圖目錄... VI 表目錄... VII

第一章 緒論... 1

1.1. 研究背景與動機... 1

1.2. 研究目的... 2

1.3. 研究流程... 3

1.4. 論文架構... 4

第二章 相關研究... 6

2.1. 以角色為基礎的存取控制模型... 6

2.1.1. 基本元素... 7

2.1.2. 安全原則... 8

2.1.3. 角色階層... 10

2.1.4. RBAC 限制 ... 11

2.2. 以工作為基礎的存取控制模型... 11

2.2.1. 工作流程... 12

2.2.2. 授權步驟... 14

2.2.3. 工作限制... 14

2.3. 以工作-角色為基礎的存取控制模型 ... 15

2.3.1. 基本元素... 16

2.3.2. 工作存取的需求... 17

2.3.3. 工作類型... 17

2.4. 以規則為基礎的存取控制模型... 19

2.4.1. 基本元素... 20

2.4.2. 屬性及規則範例... 22

2.5. 小結... 25

第三章 以屬性為基礎的工作-角色的指派模型 ... 26

3.1. 基本元素... 28

3.2. 工作授權... 30

3.3. 互斥工作... 31

(5)

V

3.4. 假設... 32

3.5. 限制的優先權... 32

3.6. 工作與角色的自動指派... 33

3.6.1. 指派步驟... 33

3.6.2. 工作與角色自動指派演算法... 34

3.7. 小結... 36

第四章 系統實作與展示... 38

4.1. 程式開發環境... 38

4.2. 相關技術... 38

4.2.1. Model-View-Controller(MVC)... 39

4.2.2. Front Controller ... 40

4.2.3. 連結池(Connection Pooling) ... 40

4.2.4. JNDI ... 41

4.2.5. Servlet ... 42

4.2.6. Singleton ... 42

4.3. 系統架構... 43

4.4. 系統實作... 46

4.4.1. 角色以及角色階層管理... 47

4.4.2. 使用者管理... 48

4.4.3. 屬性管理... 49

4.4.4. 工作與規則管理... 49

4.4.5. 權限管理... 51

4.4.6. 限制管理... 52

4.4.7. 工作指派... 53

4.5. 實作分析... 56

第五章 結論與未來研究... 57

5.1. 結論... 57

5.2. 未來研究... 58

參考文獻... 59

(6)

VI

圖目錄

圖 1. 研究流程 ... 4

圖 2. 以角色為基礎的存取控制模型 ... 7

圖 3. 角色階層範例圖 ... 10

圖 4.AND-SPLIT 範例圖 ... 13

圖 5.AND-JOIN 範例圖 ... 13

圖 6.OR-SPLIT 範例圖 ... 13

圖 7.OR-JOIN 範例圖 ... 14

圖 8.ITERATION 範例圖 ... 14

圖 9.TRBAC 元件關係圖 ... 16

圖 10. 主動存取及被動存取範例 ... 17

圖 11. 工作-角色為基礎的存取控制包含 RBAC 及 TBAC 示意圖 ... 19

圖 12. 以規則為基礎的存取控制模型 ... 20

圖 13.RB-RBACLANGUAGE ... 21

圖 14. 以屬性為基礎的工作-角色指派模型 ... 26

圖 15. 指派演算法 ... 36

圖 16.MVC 架構圖 ... 39

圖 17.FRONTCONTROLLER 架構 ... 40

圖 18. 連結池架構 ... 41

圖 19. 系統架構圖 ... 43

圖 20. 以屬性為基礎的工作-角色指派模型資訊系統 ... 46

圖 21. 角色及角色階層管理介面 ... 47

圖 22. 資訊系統角色階層 ... 48

圖 23. 使用者及指派介面 ... 48

圖 24. 屬性管理介面 ... 49

圖 25. 工作管理介面 ... 50

圖 26. 規則管理介面 ... 50

圖 27. 權限管理新增及管理介面 ... 51

圖 28. 工作權限設定圖 ... 52

圖 29. 限制功能介面 ... 53

圖 30. 工作選擇圖 ... 54

圖 31. 工作指派結果 ... 54

(7)

VII

表目錄

表 1. 工作類型的分類 ... 18

表 2. 線上娛樂網站角色權限範例 ... 22

表 3. 國家與角色對應表 ... 23

表 4. 系統環境及開發軟體彙整表 ... 38

表 5. 主要模組說明 ... 44

表 6. 子模組說明 ... 45

表 7. 選取工作 ... 55

表 8. 所有規則列表 ... 55

表 9. 整理暫時分析結果 ... 55

表 10. 互斥工作列表 ... 56

(8)

1

第一章 緒論

隨著資訊發達與科技蓬勃發展,企業為了降低營運成本,企業內部的各項活 動已普遍的由人工作業方式改由電腦化的方式代替操作。此外,隨著網際網路技 術的成熟,促使企業將許多應用系統已經移植在網際網路環境下應用。因此透過 網路,員工可以隨時隨地取得企業各項資源,使得員工工作效率大大提升。雖然 透過電腦以及網路的使用,企業可以達到作業的方便性,但是引發另外一個重要 的問題,就是資訊的安全管理。而資訊安全技術包括使用者認證(Authentication)、 資料加密與解密(Encryption/Decryption)、金鑰管理(Key Management)及入 侵偵測(Intrusion Detection)等,這些技術都能讓企業資訊達到一定的安全程度。

然而在資訊安全管理中,存取控制(Access Control)機制也是資訊安全上重要 的一部份。

一般而言,使用者透過資訊系統提供的服務來針對使用者所需的相關企業資 源進行存取。而使用者身分經過系統確認過後,系統會給予使用者合法的身份,

資料存取會根據系統給予的身份而授予適當的權限。因此資料存取控制的主要目 的針對合法使用者對於資料存取的權限和行為設定合理的使用限制,避免使用者 有非法的存取行為。而企業應該對於存取資料的行為提供合理方法,可以藉由合 適的機制來管理企業資料的存取行為,以增加企業資料存取的安全性。如果企業 沒有一套適當的資料存取控制機制,企業資源及機密資料容易被濫用或是竊取。

因此選擇一個適當的存取控制機制是有其必要性。

1.1. 研究背景與動機

針對企業資料的存取控制機制,已經有相當多的學者提出存取控制架構。其 中有多位學者發表了以角色為基礎的存取控制模型(Role-based Access Control Model, RBAC)[15][23][28]可以用來解決資料存取控制上的問題。在RBAC存取 控制模型中,使用者皆被分配到適當的角色,而資源的存取權限則是經由所屬的

(9)

2

角色來決定。由於RBAC在存取控制架構運作上具有很大的彈性,因此RBAC已 經被廣泛的接受以及研究,並且在2000年的時候,RBAC已經被美國國家標準與 技術協會(National Institute of Standards and Technology, NIST)視為一種存取控 制的標準,此外NIST也開始提倡RBAC的應用[5][10][24][31][32]。

而隨著世界的進步,企業為了要適應更多變的產業環境,隨之而來的是更多 不同種類的工作類型增加。雖然RBAC提供了存取控制管理上的便利,但是企業 環境不應該只考慮到使用者及角色之間的指派問題,應考慮到企業的各項企業活 動。因此多位學者[3][6][20][29]認為企業需要把企業活動加入到RBAC上,而企 業活動主要是以工作(Task)為基本單位,學者認為加入了工作的概念,使得整 個存取控制架構更符合實際企業的運作環境,而且也使得企業活動在存取控制管 理上更加完整。

然而傳統的RBAC或是結合工作的RBAC架構都是由管理員利用手動方式去 做指派,如果應用在大型企業上,使用手動方式的指派會變得非常複雜而且沒有 效率。為了解決手動方式指派的問題,許多文獻[11][19][21]認為加入規則(Rule)

的概念於以角色為基礎的存取控制模型,可以達到自動化指派的目的。另外也已 經有學者把結合規則的RBAC整個架構實際做出來[1]。雖然結合規則的RBAC是 可以解決傳統RBAC在大型企業上針對於使用者與角色之間的手動指派問題,但 是尚未考慮到工作這個主要的企業功能,而且也未考慮到角色跟工作自動化指派 的部份。

1.2. 研究目的

Kern學者提出的自動化指派模型[19]有實地的在歐洲銀行以及資訊服務企 業中應用,顯示自動化指派模型應用可以讓企業降低管理成本。但是目前的自動 化指派研究多數在使用者與角色指派方面,鮮少在其它部分做自動化指派。因此 本研究主要是提出一個新架構,稱之為“以屬性為基礎的工作-角色指派模型

(10)

3

(Attribute-based Task-Role Assignment Model, ATRBAC)”,主要結合屬性於工 作上,透過企業制定的指派政策以及本研究提出的指派演算法,自動化的把工作 指派到適當的角色,使得整個企業系統在指派上更加完整以及更具有效率。另外 也針對指派模型實作出雛型系統,希望透過雛型系統可以讓企業了解到工作自動 指派至角色是可行的。

1.3. 研究流程

本研究首先闡述問題背景、研究動機與目的,在確定研究主題為「以屬性為 基礎的工作-角色指派模型」後,依據相關文獻的蒐集與分析,進一步確立研究 範圍;其次是利用以屬性為基礎的 RBAC 模型中,所提出的規則表示法來建構 本模型的規則。並利用本研究提出的指派演算法,配合企業制定的指派政策自動 化指派工作。最後分析相關實作結果,並提出適當結論及建議事項。

本研究在文獻資料之蒐集與探討上主要區分下列幾部份,包括:

1. 以角色為基礎的存取控制模型 2. 以工作為基礎的存取控制模型 3. 以工作-角色為基礎的存取控制模型 4. 以規則為基礎的存取控制模型

根據文獻資料的分析與整理,可作為本論文研究架構之理論基礎。在系統實 作部份則使用 Java、JSP 來開發系統;而資料儲存的部分則使用 MySQL 資料庫 技術,將重點著眼於指派演算法的實作,並期望能把整個理論模型建構完成。本 論文之研究流程如圖 1 所示。

(11)

4

圖 1. 研究流程

1.4. 論文架構

本研究藉由提出新的工作-角色指派模型,透過企業制定的指派政策及指派 演算法自動化指派工作至角色,進而降低企業營運成本。相關章節安排如下:

第一章引述目前存取控制研究方向並說明各種存取控制模型的不足之處,進 而討論在存取控制模型中工作與角色的指派部分應加入屬性的觀點,並且指出新 的存取控制模型將有助於解決目前工作指派上所面臨的困境。

第二章回顧相關文獻,簡介目前在存取控制模型相關學術研究,包含以角色 為基礎的存取控制模型、以工作-角色為基礎的存取控制模型及以規則為基礎的 存取控制模型等知名存取控制模型。說明目前相關研究正朝著滿足不同的企業環

研究背景與動機

研究目的

文獻探討

TBAC

TRBAC RB-RBAC

ATRBAC 系統實作

實驗評估

結果分析與結論

RBAC

(12)

5

境等方面發展;並提出本論文所使用之以屬性為基礎模型之相關研究,包含規則 表示法、規則的建構方式及指派的限制及指派的步驟等。

第三章為模型架構,將詳細描述本研究提出之模型的各項內容,包括每項元 件的說明、定義、限制條件以及如何用演算法進行工作-角色指派的步驟。

第四章與第五章為系統實作及分析,經由上述之本研究提出的嶄新存取控制 模型分析,接著利用網頁程式語言來進行模型實作,並綜合分析實作結果。

第六章是結論及未來方向,總結本研究的相關研究成果並針對未來研究方向 加以說明。

(13)

6

第二章 相關研究

本章將探討與本研究相關的存取控制模型,分別是以角色為基礎的存取控制 模型、以工作為基礎的存取控制模型、以工作-角色為基礎的存取控制模型以及 以規則為基礎的存取控制模型,第一節探討以角色為基礎的存取控制模型,包含 各項元素及各項特性,第二節探討以工作為基礎的存取控制模型,第三節以工作 -角色為基礎的存取控制模型,包含工作類型,第四節探討以規則為基礎的存取 控制模型。

2.1. 以角色為基礎的存取控制模型

傳統上有許多的存取控制機制,例如:強制性存取控制(Mandatory Access Control, MAC)[27]、隨意性存取控制(Discretionary Access Control, DAC)[27]、

存取控制陣列(Access Control Matrix)[27]以及存取控制串列(Access Control Lists, ACLs)[27]…等。傳統的存取控制主要是探討主體(Subject)是否有權限去存取 受體(Object)的關係。一般而言,主體是指使用者,而受體表示企業資源。傳 統的存取控制在權限管理上,管理者需要針對每位使用者設定權限。在大型組織 中,對於每位使用者設定權限反而造成管理成本增加,在執行或是管理上也非常 沒有彈性。針對此問題,學者提出以角色為基礎的存取控制(Role-Based Access Control, RBAC)來解決傳統存取控制架構的缺點。

以角色為基礎的存取控制是在 1992 年由 Ferraiolo 和 Kuhn 等學者[15]首次 提出角色為主的存取控制概念,之後又經過 Sandhu 等學者[23]加以改進並正式 提出以角色為基礎的存取控制模型。並由美國國家標準與技術協會(National Institute of Standards and Technology, NIST)組職加以收編、整理之後訂定標準,

稱為 NIST RBAC[28]。之後更多的研究用 RBAC 為基礎,結合不同領域的專業 知識並提出各種的模型[24][31][32]。也有學者已經運用 RBAC 模型,實作相關 的存取控制系統[5][10]。

(14)

7

在以角色為基礎的存取控制模型中,使用者被分配到適當的角色,而資源的 存取權限則是經由所屬的角色來決定。而角色包含了角色階層(Role Hierarchy)

的特性,透過角色階層可以反映出組織的授權結構,使得企業在管理角色以及權 限上具有較大的彈性。而以角色為基礎的存取控制基本架構,如圖 2 所示。

圖 2. 以角色為基礎的存取控制模型[18]

2.1.1. 基本元素

以角色為基礎的存取控制模型[16][22][23][28]包含了四個基本元素以及各 項元素之間的對應關係,四個基本元素包括使用者(User)、角色(Roles)、

權限(PRMS)、會期(Sessions)等,而權限再細分為操作(OPS)及物件(OBS)。

各個元素的說明如下:

1. 使用者:通常是指與系統互動的人,另外也包含智慧型代理人,例如:機器 人、行動電腦等等。

2. 角色:是一種工作功能或是一種工作職稱,可以視為組織或存取控制機制中 扮演的角色,透過角色能得知在企業裡相關的權限以及責任。

3. 權限:存取機制中對於物件的權力,包括存取方式或是操作行為。

User_sessions

使用者指派 權限指派

Session_roles 角色階層

使用者 角色

權限

操作 物件

會期

(15)

8

4. 會期:通常是指使用者啟動角色的一段時間。

另外元件之間主要的對應關係包含使用者指派(User Assignment, UA)、權 限指派(Permission Assignment, PA)及使用者透過會期啟動角色的關係分別為 User_sessions以及Session_roles。關係說明如下:

1. 使用者指派:使用者可以分派至管理者所指派的角色,而使用者和角色之間 是屬於多對多的指派關係,意思是說明使用者可以擁有許多企業角色;而企 業角色也可以被分配給許多個使用者。

2. 權限指派:管理者設定角色的企業資源或是系統權限,而角色和權限之間也 是屬於多對多的指派關係,意思是說角色可以包含許多個權限;而許多角色 可以擁有同一項權限。

3. User_sessions:當一個使用者要啟動一個角色時,會先建立出一個Session,

即是User_sessions。User_sessions關係為使用者對於Session而言,是屬於一 對多的關係,也就是說一個使用者可以對應到多個session,但是一個Session 只會對應到一個使用者。

4. Session_roles:Session會在使用者所擁有的眾多角色之中啟動一個或數個角 色,即是Session_roles。Session_roles關係為Session對於角色而言,是屬於多 對多的關係,也就是說一個Session可以啟動許多個角色,而每個角色也可以 同時被許多個Session所啟動。

2.1.2. 安全原則

以角色為基礎的存取控制模型支援著名的三種安全原則[17][23],三種安全 原則分別為最少權限(Least privilege)、權責區分(Separation of duties, SoD)

以及資料抽象化(Data abstraction):

1. 最少權限:企業組織授予角色所能使用的適當權限即可,不能授予超過角色 權責的權限。如果授予角色多餘的權限,而角色如果沒有實際運用這些多餘

(16)

9

的權限,會造成企業組織在維護角色權限上的成本提高。而且過多的權限也 可能會因為使用者無心或是故意的操作,而危及到企業資訊的安全。根據以 上考量因素,企業提供角色剛好足夠的權限即可,而不需要授予超過角色權 責的權限。

2. 權責區分:主是要針對權限分派的安全原則,此原則是將可能會發生衝突的 權限分派在不同角色身上,避免權責不分的情形,如果衝突的權限授予在同 一個角色可能會造成權責獨攬或是舞弊等情形發生。例如:如果開立支票的 權限以及簽核支票的權限由同一個角色來擔任,而使用者擔任此角色時,有 可能因為使用者故意的操作而造成監守自盜的事情發生。而權責區分[9][26]

又可分為 靜態權責區分 (Static Separation of Duties )及動態權責區分

(Dynamic Separation of Duties)。

 靜態權責區分:同一使用者不能擁有多個會發生權責衝突的角色,避免 權責不分的情形,例如:開立支票的角色與簽核支票的角色不能同時由 一個使用者擔任,是屬於此種權責區分。靜態權責區分在企業運作上比 較容易,但對於整體企業運作環境來說比較缺乏彈性。

 動態權責區分:同一使用者可以擁有多個會發生權責衝突的角色,但是 在實際執行的時候,只能選擇其中一種角色來擔任,不能在同一時間來 擔任相互衝突的角色。例如:對於小型企業來說,通常一個董事長需要 身兼總經理的職務,此種情形就是屬於動態權責區分的一種。動態權責 區分必頇在執行時期,根據使用者實際扮演角色的狀況來判斷權限。運 用此種權責區分比較符合企業現實狀況,也較能彈性運用,但實作需要 考慮的狀況比較多也比較複雜。

3. 資料抽象化:使用抽象的權限來表示實際企業的權限,例如:會計系統的借、

貸。用借、貸的專業術語來取代電腦的讀、寫或是執行資料等行為。在會計 部門中,員工知道借貸所表示的意思,如果使用讀或是寫等電腦方式呈現,

(17)

10

反而會造成員工認知上的誤解,因此用資料抽象方式有助於提供給企業組織 中使用人員正確的語意,不致於因為不明白名詞意思而產生錯誤的操作,並 且能夠有效的保持整體資料的一致性。

2.1.3. 角色階層

在以角色為基礎的存取控制模型中,角色階層(Role Hierarchy)是一個很 重要的特性。透過角色階層特性可以了解到一個企業組織的組織規模以及授權結 構。在企業組織裡,每個人因職務上的不同,扮演不同的角色,而不同的角色彼 此之間形成一種階層的關係。而在角色階層也包含了繼承的特性,即是上層角色 可以繼承下層角色的權限,角色階層範例如圖 3 所示。

圖 3. 角色階層範例圖

在角色階層範例中,假設有一個專案成員有專案經理、測詴工程師、程式設 計師以及專案成員,測詴工程師以及程式設計師分別都繼承專案成員的權限,並 且也擁有屬於自己角色的權限,而專案經理繼承了測詴工程師以及程式設計師的 權限,因此專案經理也擁有專案成員的權限,這種繼承的關係如同實際組織的架 構。另外在權限設定上,管理者不需要在上層角色設定下層角色權限。透過繼承 的特性,上層角色就可以擁有下層角色的權限,可以降低管理者設定權限的複雜 程度,因此以角色為基礎的存取控制模型利於管理組織角色的架構。

專案經理

測詴工程師

專案成員

程式設計師

(18)

11

2.1.4. RBAC 限制

雖然利用角色階層的繼承特性,可以方便權限分派控制的管理,但針對角色 以及角色階層特性仍頇注意幾項限制[14][23]:

1. 互斥角色(Mutually Exclusive Roles):此限制主是要為了滿足安全原則之 中的權責區分所建立的限制,即是避免二個可能會發生衝突的角色由一位使 用者來擔任,例如:採購角色與驗收角色不能同時由一位使用者擔任,有可 能因為使用者故意的操作而造成監守自盜的事情發生。為了避免這種弊端發 生,因此需要把會發生衝突的角色設為互斥角色。

2. 使用者數量(Cardinality):使用者數量是指使用者指派到一個角色應該有 數量上的限制,特別是擁有特殊權限的角色,例如:高階主管或是系統管理 者等,擔任這些角色的使用者不能太多,否則會有安全上的顧慮。

3. 前提角色(Prerequisite Roles):在一般企業組織架構下,通常會有前提角 色的特性。意思是說使用者必頇先擔任一個角色,才能擔任另一個角色。例 如:在一個開發專案中,專案角色可能有專案成員、測詴工程師、程式設計 師以及專案經理。假如員工要擔任專案角色中的程式設計師,則必頇要先成 為專案成員;另外前提角色的概念也可利用於權限上,意思是一個角色先具 有某個權限,才能擁有另一個權限。

2.2. 以工作為基礎的存取控制模型

不同於以角色為基礎的存取控制模型的研究,若只以角色為基礎的存取控制 模型來做為達到企業存取控制是不足的,尚欠缺企業真正的運作活動,即是以工 作為主的企業運作環境。因此有些學者[1][13][25][30]強調以工作為導向的企業 環境,而 Thomas 與 Sandhu 學者於 1997 年提出以工作為基礎的授權控制

(Task-based Authorization Controls, TBAC)[29],能對工作分配的方法具有工 作流程(Workflow)控制的觀念。

(19)

12

以工作為基礎的授權控制是以工作為導向的存取控制,在工作流程管理是以 主動(active)的存取控制模式,有別於傳統的授權控制屬於被動(passive)存 取。主動存取與被動存取的區別主要是以是否屬於工作流程工作而定的,假設企 業中一個生產部門主管的工作有監督員工是否認真工作以及核對產品產量,核對 產品產量是屬於工作流程工作,因此是主動的工作,反之監督員工是否認真工作 是被動的工作。

以工作為基礎的存取控制模型將企業活動分成許多子工作來完成,而這些子 工作具有前後的工作順序,工作執行的順序需要依照工作流程來做,然後再將子 工作分配給企業員工來完成每項工作。而以工作為基礎的存取控制著重的地方在 於工作與工作流程之間關係與工作流程的可分割性,並不是強調工作是否可以由 適當企業員工來執行。

2.2.1. 工作流程

工作流程觀念源自於企業流程,而企業流程是指「公司內部參與者根據為達 成公司整體或特定目標所定義的規則,而與公司內外部參與者合作,建立一執行 文件、資訊或工作之價值產生過程」[8][36]。另外工作流程管理聯盟(Workflow Management Coalition, WfMC)中將工作流程定義為「將部分或全部工作程序自 動化,且文件、資訊或工作由一個參與者傳遞到另一個參與者執行的過程中,尚 頇遵守某些程序上之規則」[37]。

工作流程中每項工作都有關聯活動組成的,其關係主要分為 AND-Split、

AND-Join、OR-Split、OR-Join 與 Iteration 等五種。詳細說明如下:

1. AND-Split:單一工作完成後,可繼續執行兩個或多個獨立工作而且可以平 行處理的工作。圖 4 為 AND-Split 範例圖,工作 1 完成後,可以執行工作 2、

工作 3 以及工作 4,並且此 3 項工作是可以同時平行處理。

(20)

13

圖 4. AND-Split 範例圖

2. AND-Join:兩個或多個工作執行皆完成後,才能執行下一項單一工作。圖 5 為 AND-Join 範例圖,工作 1、工作 2 以及工作 3 都要完成,缺一不可,

才能執行工作 4。

圖 5. AND-Join 範例圖

3. OR-Split:單一工作完成後,可繼續執行兩個或多個獨立工作並且是選擇性 的執行工作。圖 6 為 OR-Split 範例圖,工作 1 完成後,可以選擇執行工作 2、

工作 3 或是工作 4。

圖 6. OR-Split 範例圖

4. OR-Join:只要多個工作中的其中一項工作執行完成後,就能執行下一項單 一工作。圖 7 為 OR-Join 範例圖,只要完成工作 1、工作 2 或是工作 3 其中 一項工作,就可以執行工作 4。

工作 1

工作 2 工作 3 工作 4 工作 1

工作 2 工作 3

工作 4 工作 1

工作 2 工作 3 工作 4

(21)

14

圖 7. OR-Join 範例圖

5. Iteration:當一工作遭遇特殊情況或條件時,可能需要重複此工作,直到滿 足所有限制狀況或條件才可繼續執行下一項工作。圖 8 為 Iteration 範例圖,

在某工作流程有一個工作為工作 2,在執行完工作 2 後,可能因為發生特殊 情況需要重新執行工作 2,等到狀況排除後,才能執行工作 3。

圖 8. Iteration 範例圖

2.2.2. 授權步驟

在以工作為基礎的存取控制模型中,個別工作是否有權限執行以及執行工作 的狀態,是由授權步驟(Authorization-Step)所記錄的。授權步驟分為二個主要 部分為管理人集合(Trustee Set)及保護狀態(Protection State)。管理人集合是 由一些工作的執行者(Executor)集合而成的,而保護狀態又分為執行者權限

(Executor Permission)以及已啟動權限(Enabled Permission)。執行者權限是 指執行者執為了執行工作所可以使用的權限,而已啟動權限則是指某些權限已經 被每一個授權步驟執行的權限集合。最後針對每一個授權步驟還需要加上一個工 作執行的時間,透過有限制的時間可以確保整個工作流程能在合理的時間內執行 完成。

2.2.3.

工作限制

工作與其他相關的工作之間或者在流程之間可能發生工作執行上的問題,因 此需要針對問題發生的原因加以限制,限制可以分為工作之間的限制以及工作與

工作 1 工作 2 工作 3 工作 1

工作 2 工作 3

工作 4

(22)

15

工作流程的限制。與工作之間的限制是指工作的權責衝突,而與工作流程的限制 為工作順序及工作相依限制。詳細限制說明如下[3][29]:

1. 權責衝突:是一種針對權限上的安全原則。當工作授權給某一使用者執行時,

代表此使用者有執行此工作的權利與相對要負起的責任。若有兩個以上權責 衝突的工作授權給同一位使用者去執行,會造成權責獨攬或是舞弊的情形。

例如:假設有二項互相衝突工作分別為開立支票的及簽核支票,如果這二項 工作由同一位使用者來執行,將容易造成監守自盜的事情發生。因此要把衝 突的工作區分出來並交給不同的人來執行,來避免發生這類型的弊端。

2. 工作順序限制:在企業組織的工作中,工作可以分成並行處理或是先後順序 處理。假設企業有工作是屬於並行工作,這些可以單獨執行而不需考慮其他 工作順序關係。而屬於順序的工作則需要考慮工作順序,有些工作是需要把 前置工作先完成才能執行的。

3. 工作相依限制:工作相依是指工作流程中,工作在執行時期具有相互影響的 特性。工作流程的每項工作執行順序間,在執行時期的時候,因為前面工作 狀況的改變,而導致後面工作的變動。例如:驗收工作與請購工作具有相同 的專業知識背景,此即代表驗收工作和請購工作間具有工作相依性。

2.3. 以工作-角色為基礎的存取控制模型

以角色為基礎的存取控制模型給予企業組織管理上很大的彈性,但是無法滿 足真實企業環境的需求。因此多位學者認為企業需要把企業活動加入到 RBAC 上,結合企業活動使得整個存取控制架構更符合實際企業的運作環境,而且也使 得企業活動在存取控制管理上更加完整。結合企業活動於 RBAC 研究又分為不 同領域的研究方向,包含以工作流程活動為主的研究[3][6][31]。而 Oh 及 Park 學者提出以工作-角色為基礎的存取控制機制(Task-Role based access control model, T-RBAC)[20]則是針對企業組織的工作詳細的分析成不同類型,再針對 不同類型工作分派適當角色執行,並依據工作型態分配相關權限。以下我們簡略

(23)

16

描述以工作-角色為基礎的存取控制機制基本架構,如圖 9 所示。

圖 9. TRBAC 元件關係圖[20]

2.3.1. 基本元素

以工作-角色為基礎的存取控制模型包含了使用者(User)、角色(Roles)、

權限(PRMS)以及會期(Sessions)以上元件都與以角色為基礎的存取控制模 型無異,主要是多了工作的概念。工作使得存取控制政策的授權管理更加複雜,

傳統以角色為基礎的存取控制只要針對使用者-角色-權限這三個層次管理,而以 工作-角色為基礎的存取控制還需要考量“工作”這一層次,各項層次之間的關 係為使用者指派(User Role Assignment, URA)、工作指派(Role Task Assignment, RTA)以及權限分派(Task Permission Assignment, TPA)。使用者指派即是將 使用者指定給某一個角色,其關係為一對多關係,表示一位使用者可以擁有不同 的角色,而且同一個角色可以是由不同的使用者來擔任。工作指派則是把工作分 配給適當的角色執行,其關係為多對多關係,表示角色可執行多個工作,而工作 也可由許多個角色來完成。最後權限分派是原本指派給角色的權限現在改成指定 給工作,而權限是指完成工作所需的企業資源。權限分派為多對一關係,表示一 個權限可同時分派給很多的工作來執行。

使用者 角色 工作 權限

使用者指派 工作指派 權限分派

一對多關係 多對一關係

(24)

17

2.3.2. 工作存取的需求

工作存取的方法因為工作根據企業組織的商業流程以及非流程特性分為主 動存取(Active Access)及被動存取(Passive Access)[20],存取方式如圖 10。

允許客戶訂單

收到顧客訂單(T1)

收到顧客訂單(T1) 檢查客戶信用(T2)

允許客戶訂單(T3)

產品售出(T4) 監控產品銷售

使用者

屬於被動存取

屬於主動存取 讀取

寫入

圖 10. 主動存取及被動存取範例[20]

範例中,假設一項企業商業流程中的工作有收到顧客訂單(T1)、檢查顧客 信用(T2)、允許客戶訂單(T3)以及產品售出(T4)。其中針對「允許客戶訂 單」這項工作,假如一位使用者需要執行「監控產品銷售」這項非流程的工作,

此存取行為稱為「被動存取」。而要執行「允許客戶訂單」之前,要先完成「檢 查顧客信用」及「收到顧客訂單」,以上工作有別於非流程工作,使用者執行流 程工作的存取稱為「主動存取」。

2.3.3. 工作類型

從組織架構方面探討,組織架構是可以反映企業組織的授權階層。而根據階 層觀點來說,父類別工作可以繼承子類別工作的授權或是執行的商業角色。因此 工作可以細分為繼承(Inheritable)及無繼承(Non-inheritable)工作[20]。而 Oh

(25)

18

以及 Park 學者提出的以工作-角色為基礎的存取控制[20],工作透過繼承

(Inheritable)、無繼承(Non-inheritable)、主動存取(Active access)以及被 動存取(Passive access)四種特性分為四種工作類別以及工作內容,然後企業分 別將適當的工作分派至適當的角色以及並授予執行工作所需的相關權限,使企業 活動在管理上更加完整。以下詳細說明四種工作類別並整理成表 1:

1. Class P(Private):Class P 是屬於無繼承及被動存取的工作。假設有一銷售員 可以執行「顧客分析」這項工作,雖然銷售員的主管為銷售經理,但是銷售 經理無法執行「顧客分析」這項工作。工作的分析、規劃及決策多屬於 Class P 工作。

2. Class S(Supervision):Class S 是屬於繼承及被動存取的工作。即銷售主管可 獲得從銷售員而得的權力,而執行的工作和工作流程無關。Class S 工作偏 向工作的管理及監督,如工作檢閱,查核,監督,允許和委任。

3. Class W(Workflow):Class W 是屬於非繼承及主動存取的工作。即銷售主管 無法獲得從銷售員而得的權力,而執行的工作和工作流程有關。在企業中,

許多工作是屬於 Class W,因為大部分工作都需要有工作流程關係。

4. Class A(Approval for activity):Class A 是屬於繼承及主動存取的工作。即父 類別工作可以繼承子類別工作的授權,而能執行的工作和工作流程有關。在 工作流程中和許可(approval)有關的工作,多是屬於 Class A。

表 1. 工作類型的分類

無繼承 繼承

被動存取 Class P(Private) Class S(Supervision) 主動存取 Class W(Workflow) Class A(Approval for activity)

以工作-角色為基礎的存取控制模型是結合 RBAC 和 TBAC 的各項特性而組 成。因此包含 RBAC 所提到角色階層中的繼承觀念,也包含 TBAC 中所提出的 工作是和整個工作流程有關的。經過進一步的研究,繼承細分成繼承為全部繼承

(26)

19

和部分繼承的部分,而工作有工作流程及非工作流程的分別。因此工作-角色為 基礎的存取控制包含 RBAC 及 TBAC 的範圍如圖 11。

圖 11. 工作-角色為基礎的存取控制包含 RBAC 及 TBAC 示意圖[20]

2.4. 以規則為基礎的存取控制模型

傳統的以角色為基礎的存取控制是管理人員使用手動的方式去對使用者及 角色的指派分配,再經由企業組織授權角色相關的權限。傳統的以角色為基礎的 存取控制在一般企業上是可以適用的,如果使用在大型企業上是非常難以使用。

因為大型企業擁有大量使用者,如果系統管理員使用手動的方式去做使用者及角 色之間的指派會變成非常繁瑣,也會造成企業管理成本相對地提高。

必頇有一個適當的機制來解決以上所描述之問題,因此許多學者認為加入規 則(Rule)的概念可以達到自動化指派的目的,因此修改了傳統 RBAC 模型變 成以規則為基礎(Rule-Based)的模型稱之為以規則為基礎的存取控制模型

(Rule-based RBAC Model, RB-RBAC)[11][19],其模型如圖 12。以規則為基礎 (a)部分繼承

(c)角色型態 (d)權責區分(SoD)

(b)有繼承及沒有流程的工作 (d)

(c)

(b) (a)

被動存取 主動存取

T-RBAC

TBAC RBAC

工作 角色階層

SoD 角色

(27)

20

的存取控制模型主要在使用者上加入屬性的概念,並且透過企業制定的指派規則 在使用者及角色間部份做自動化指派的研究。而自動化指派過程還需考量傳統以 角色為基礎的存取控制的限制以及條件限制式。

圖 12. 以規則為基礎的存取控制模型[8]

2.4.1. 基本元素

以規則為基礎的存取控制模型包含傳統RBAC的使用者、角色、限制以及權 限,另外在使用者與角色之間加上屬性(Attribute Values)及屬性表示式(Attribute Expressions)的新概念,屬性即是所有能詳細描述使用者所擁有的相關資訊,而 屬性表示式則是企業事先定義好的指派規則,滿足規則來決定所能當擔任的一個 或多個角色。因此如果使用者要取得權限,必頇要提供與使用者相關資訊的屬性 值,然後透過指派規則的比較,以判斷使用者可以獲得那些角色,進而取得那些 角色所擁有的權限。而且Al-Kahtanu和Sandhu學者提出了用來描述屬性表示式的 語法(RB-RBAC Language)[11],語法如圖13所示。

屬性 屬性表示式

權限 角色 條件限制

限制

使用者

(28)

21

圖 13. RB-RBAC Language[11]

The terminal symbols: {AND, OR, XOR, NOT, <, =, >,≦,≠,≧,IN, “SUBJECTED

TO”, “REVOKED IF NOT”, 0, 1, 2, 3, 4, 5, 6,7, 8, 9}

The non-terminal symbols: {Attribute_Expression,Attribute_Pair,

Relation_Operator, Operator, Attribute, Roles,Constraints, Num, Digit, Conditions,Set,Range,Role,Attribute_Value}

The values of the non-terminal symbols Set,Attribute, Attribute_Value, Role and Constraint are specifiedby the organization.

The Start symbol: Rule

The production rules (in BNF notation):

Rule ::= Attribute_Expression SUBJECTED TO [Constraints]

REVOKED IF NOT [Conditions]→Roles.

Attribute_Expression ::= Expression Conditions ::= Expression

Expression ::= Attribute_Pair

| Expression Operator Expression

| (Expression Operator Expression)

Attribute_Pair ::= Attribute Relation_Operator Attribute_Value

| Attribute [NOT] IN Set

| Attribute [NOT] IN Range Roles ::= [NOT] Roles

| Roles Operator Roles

| (Roles Operator Roles)

| Role

Constraints ::= Constraint

| Constraint Operator Constraint

| (Constraint Operator Constraint) Operator ::= AND | OR | XOR

Relation_Operator ::= < | = | > |≦|≠|≧

Attribute ::= {specified by organization}

Attribute_Value ::= {specified by organization}

Set ::= {specified by organization}

Range ::= (Num..Num) Num ::= Num Digit

Digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Role ::= {specified by organization}

Constraint ::= {specified by organization}

(29)

22

雖然以規則為基礎的存取控制模型主要是強調使用者根據屬性自動指派至 角色上,但是可以透過限制(Constraint)經由管理者不需經由屬性表示式指派,

因此以規則為基礎的存取控制模型包含幾種不同的方式做使用者指派[12]:

1. 隱性指派:不需經由管理者的介入,而是透過屬性表示式自動指派使用者。

2. 顯性指派:企業經由傳統 RBAC 限制,直接把使用者指派至指定角色。

3. 混合指派:混合隱性及顯性指派方式。

經由以上三種方式,可以讓企業在各種不同的環境下,選擇適當的方式指派,

可以使得企業運作上更加彈性。另外學者也針對模型提出一些假設,以滿足模型 的需求:

1. 使用者經過模型指派之前,要先透過系統的驗證(Authentication),確認為 系統的使用者。

2. 角色與權限指派會比使用者與角色指派還要可靠信賴。

3. 使用者屬性、屬性值以及驗證資訊都要能從資料庫擷取出來。

4. 使用者數量要遠多於角色數量。

2.4.2. 屬性及規則範例

假設有一個線上娛樂網站提供電影、遊戲以及書籍娛樂項目,假設使用者的 屬性設定為只有年齡以及所在國家,先使用RBAC去分類角色以及能觀賞娛樂項 目相關權限如表2,再詳細分析每項屬性以及規則。

表 2. 線上娛樂網站角色權限範例

角色 權限

小孩

 無違反道德倫理

 無粗俗語言

 無色情語言/電影

 無恐怖電影

少年  正常社會行為模式

 無粗俗語言

(30)

23

 無色情語言/電影

 無恐怖電影

青少年

 正常社會行為模式

 適度俗語言

 適度色情語言/電影

 適度恐怖電影 成年 無限制

年齡與國家的屬性呈現如下:

1. 年齡

由表2顯示,使用者可以分類為四個角色。根據角色性質,很明顯的可以選 用年齡來做為第一個區分的依據,因此利用RB-RBAC Language描述年齡這個屬 性如何去分類使用者。

 屬性 ::= 年齡

 屬性值 ::= 3, 11, 16, 18

 角色 ::= 小孩 | 少年 | 青少年 | 成年

假設沒有特別限制或是條件的情況下,企業定義相關規則如下:

 規則 1:: (年齡 ≧ 3) → 小孩

 規則 2:: (年齡 ≧ 11) → 少年

 規則 3:: (年齡 ≧ 16) → 青少年

 規則 4:: (年齡 ≧ 18) → 成年 2. 國家

不同國家會規範不同法律針對國民在娛樂文化上的限制,例如:中國、印度、

沙烏地阿拉伯、埃及以及新加坡會在不同程度上限制國民閱讀色情內容。因此整 理相關國家及角色資料如表3。

表 3. 國家與角色對應表

國家 角色

{A..Z} 少年

(31)

24

{A..Z}-{沙烏地阿拉伯、蘇丹} 青少年

{A..Z}-{中國、印度、沙烏地阿拉伯、蘇丹、埃及、馬來西亞、新加坡} 成人 表3中用“{A..Z}”來表示全世界國家;而用“-”符號表是扣除的意思,例如:

{A..Z}-{沙烏地阿拉伯、蘇丹}可以表示為全世界扣除沙烏地阿拉伯以及蘇丹的其 他所有國家。因此根據表3中所呈現的國家屬性以及定義規則如下:

 屬性 ::= 國家

 屬性值 ::= {A..Z} | {{A..Z} – {沙烏地阿拉伯、蘇丹}}

| {{A..Z} – {中國、印度、沙烏地阿拉伯、蘇丹、埃及、馬來西亞、新加坡}}

 角色 ::= 少年 | 青少年 | 成年

 規則 1:: {A..Z} → 少年

 規則 2:: {A..Z}-{沙烏地阿拉伯、蘇丹} → 青少年

 規則 3:: {A..Z}-{中國、印度、沙烏地阿拉伯、蘇丹、埃及、馬來西亞、新 加坡} → 成年

最後把國家跟年齡二個屬性結合,規則呈現如下:

 規則 A:: (年齡 ≧ 3) AND ({A..Z}) → 小孩

 規則 B:: (年齡 ≧ 11) AND ({A..Z}) → 少年

 規則 C:: (年齡 ≧ 16) AND ({A..Z}-{沙烏地阿拉伯、蘇丹}) → 青少年

 規則 D:: (年齡 ≧ 18) AND ({A..Z}-{中國、印度、沙烏地阿拉伯、蘇丹、埃 及、馬來西亞、新加坡}) → 成年

假設有一個使用者登入此網站,系統會根據上述結合年齡與國家的四個規則 去判斷使用者獲得的角色。假設使用者的年齡為大於16歲,而所在國家在{A..Z}

的情況。根據使用者屬性,雖然年齡大於16滿足規則C的年齡條件,但是所在國 家地點不滿足規則C的條件,所以不能指派到青少年角色上。最後因此只能退一 步滿足規則B,把使用者指派到少年角色上。

(32)

25

2.5. 小結

目前對於存取控制機制的研究中,以角色為基礎的存取控制是廣為接受的存 取控制模式,此模式是將權限指派到角色上,不同於傳統存取控制是直接將權限 指派給使用者,如此可以減少管理上的麻煩。

而企業為了適應更複雜的環境,需要多考量「工作」的因素,以工作-角色 為基礎的存取控制加入工作的概念,主要探討不同種類工作與企業角色的指派關 係,針對工作的研究,目前學者朝向工作流程和分析工作類型等二大主要研究方 向。雖然以角色為基礎的存取控制和以工作-角色為基礎的存取控制都能讓企業 在管理上更加具有彈性,但是此兩種機制都是以管理者手動方式做指派,在大型 企業中,用手動方式是非常不適用的。

自動化指派的研究中,學者提出以規則為基礎的存取控制機制,主要是加入 屬性的概念,並且透過企業制定的指派規則做自動化指派的研究。雖然透過自動 化指派可以提高指派的效率,並且降低管理成本,但是目前的研究多數是在使用 者與角色部分做自動化,而鮮少在工作與角色方面的做研究,企業中有各式各項 的工作,如何自動化指派這些工作也是一項重要的議題。

(33)

26

第三章 以屬性為基礎的工作-角色的指派模型

隨著產業結構慢慢的演進,企業為了要適應更多變的產業環境,隨之而來的 是工作量的增加,企業在工作管理上的成本也越大,企業為了適應現代的潮流,

應該有一個自動化機制幫助企業營運管理。以工作-角色為基礎的存取控制模型 是一種可以使得企業有效地管理企業活動的存取控制機制,但是管理方式是以手 動方式指定角色可執行企業何種工作,即手動的形式管理企業活動。對於大型企 業來說,用手動方式管理是非常沒有效率。以規則為基礎的存取控制中,有提到 自動化指派的概念,但是涉及的自動化指派部分多是在使用者與角色間,然而在 現今社會中,企業工作量越大,對於管理者或是主管的工作指派份量也越大,而 傳統以規則為基礎的存取控制鮮少在工作部分做自動化指派。

因此本研究提出一個以屬性為基礎的工作-角色指派模型(Attribute-based Task-Role Assignment Model, ATRBAC),該模型主要是在以工作-角色為基礎 的存取控制模型中加入了屬性的概念,然後透過規則自動化指派工作到適當的角 色以有效降低工作指派的成本。本研究提出之以屬性為基礎的工作-角色的指派 模型如圖 14。

圖 14. 以屬性為基礎的工作-角色指派模型

規則屬性 工作指派

使用者指派 使用者 角色

工作 屬性 權限

條件 行為

規則

權限指派 工作屬性

角色指派

(34)

27

本研究提出以屬性為基礎的工作-角色的指派模型的基本元素包含使用者、

角色、規則、屬性、工作以及權限六個基本元素。其中使用者、角色、工作以及 權限之定義與工作-角色為基礎的存取控制模型相同,因此,本研究提出之以屬 性為基礎的工作-角色指派模型也包含了角色階層、權責區分等特性,最後我們 提出在工作加入屬性的概念,然後透過企業規則自動化指派工作。另外元素之間 對應關係為使用者指派、角色指派、工作指派、規則屬性、工作屬性以及權限指 派。關係說明如下:

1. 使用者指派:使用者可以分派至管理者所指派的角色,而使用者和角色之間 是屬於多對多的指派關係,意思是說明使用者可以擁有許多企業角色,而企 業角色也可以被分配給許多個使用者。

2. 角色指派:滿足規則後,可以指派的角色。其中角色與規則是屬於多對多關 係,即是可以由許多規則推論到同一角色,一條規則也可以指派至一個以上 的角色。

3. 工作指派:工作透過規則進行自動化指派。而工作和規則之間是屬於多對多 的關係,意思是工作可以滿足許多規則,而規則可以讓許多工作判斷是否滿 足條件。

4. 規則屬性:規則擁有的屬性及其屬性值。而規則和屬性之間是屬於多對多的 關係,即是規則可以擁有許多屬性,而屬性可以當作許多規則的屬性之一。

5. 工作屬性:工作擁有的屬性及其屬性值。而工作和屬性之間是屬於多對多的 關係,意思是工作可以擁有許多屬性,而屬性可以當作許多工作的其中一項 屬性。

6. 權限指派:管理者設定執行工作所需要的企業資源或是系統權限,而工作和 權限之間也是屬於多對多的指派關係,即是說工作可以包含許多個權限,而 許多工作可以擁有同一項權限。

(35)

28

3.1. 基本元素

以屬性為基礎的工作-角色的指派模型的基本元素包含使用者、角色、規則、

屬性、工作以及權限六個基本元素。以下我們將介紹各項元素。

1. 使用者(Users):使用者是指與系統互動的人。在本研究中,使用者通常 為企業內部的員工。

2. 角色(Roles):角色是一種工作功能或是一種工作職稱,可以視為組織或 存取控制機制中扮演的角色,並可執行企業給予角色的相關工作。本研究之 後會提出與本模型相關的定義,因此將使用 role 表示角色。

3. 權限(Permission):權限是存取機制中對於物件的權力。在本研究中,權 限是為了執行工作所給予的企業資源。

4. 屬性(Attribute):以廣義來說,屬性[33]是一種可以用於分類及描述特定 物件的特性。我們可以針對物件的特性,來操作物件的內容。以狹義來說,

在本研究中,將利用屬性來詳細描述每項工作的特性,例如:能力、年資、

部門、地點、時間、優先權…等。本研究後續將以 attr 來表示屬性,另外用 Value(attr)表示此屬性所擁有的屬性值,如部門此屬性和其屬性值為營業部,

因此可用“attr=部門”,而“Value(attr)=營業部”來表示。

5. 工作(Task)

企業內部的各項營運,是由一堆活動分工而成,而活動是以工作為最小單位。

本研究用 t 來表示企業內部的一項單一工作。

【定義1】 ∀t ∈ Tasks, ∃attr ∈ Attributes, t: attr1, … , attrn , n ≥ 1

【定義2】 ∀t ∈ Tasks, ∃attr ∈ Attributes, Attr t = attr1, … , attrn , n ≥ 1 在以屬性為基礎的工作-角色的指派模型中,本研究提出把屬性加入到工作 上,亦即以屬性來說明一項工作的特性,因此本研究針對工作與工作擁有屬性定 義出相關的表示式。每一項工作的正式定義如【定義 1】,此定義表示每一項工 作 t 是由許多屬性以及其屬性值集合而成。其中 Tasks 表示企業中所有工作的集

(36)

29

合,Attributes 為所有屬性的集合。n 最少為 1,意思是一個工作最少要擁有一個 屬性及其屬性值,才能由不同特性區別不同的工作。另外本研究為了詳細呈現工 作屬性以及其屬性值,使用 t.attri來表示工作 t 的第 i 項屬性,而用 Value(t.attri) 來表示表示工作 t 中第 i 項屬性的屬性值。而【定義 2】則是定義工作擁有的屬 性,本研究 Attr(t)表示工作 t 所擁有的屬性集合。

6. 規則(Rule)

在本研究提出之以屬性為基礎的工作-角色的指派模型中,規則是一個很重 要的部份,企業如果能制定完善的指派規則,企業工作便會被指派到適當的角色 去執行,適當的指派有助於提升企業作業效率與安全性。

Friedman-Hill 所撰寫的有關於以規則為主的系統一書[35],在這本書有提到 規則可以細分為 Left-Hand Side(LHS)和 Right-Hand Side(RHS)。所謂 LHS 是由條件(Condition)的集合所構成的,而 RHS 是行為(Action)的集合所構 成的,LHS 與 RHS 互為因果關係,當滿足 LHS 條件的時候,就可以執行 RHS 的行為,透過這層關係,可以很容易了解規則的變化。因此在本研究的以屬性為 基礎的工作-角色的指派模型中,把規則細分條件與行為,亦即規則是由企業制 定的指派條件和可以被指派的角色組合而成的。而針對規則的相關定義如下:

【定義3】 ∀rule ∈ Rules, ∃attr ∈ Attributes, ∃role ∈ Roles rule: attr1, … , attrn → role, n ≥ 1

【定義4】 ∀rule ∈ Rules, ∃attr ∈ Attributes

Attr rule = attr1, … , attrn , n ≥ 1

企業指派政策是由許多條規則集合而成的。在本研究中,提及規則分為條件 與行為。其中條件是由許多屬性結合而成,而行為是說明可以指派到的角色,因 此本研究針對每一條規則的定義如【定義 3】,表示一條規則是由許多屬性以及 其屬性值集合而成,並且根據屬性及屬性值來決定可擔任的角色。其中 Rules 表 示所有企業規則的集合、Roles 表示所有企業角色的集合,n 最少為 1,亦即是一

(37)

30

條規則最少要擁有一個屬性及其屬性值,才能區分不同的規則。

而【定義 4】則是定義一條規則擁有的屬性,用 Attr(rule)表示。另外本研究 為了詳細呈現規則屬性以及其屬性值,使用 rule.attri來表示規則 rule 的第 i 項屬 性,而用 Value(rule.attri)來表示表示規則 rule 中第 i 項屬性的屬性值。

3.2. 工作授權

【定義5】 ∃rule ∈ Rules, ∃t ∈ Tasks, ∀attri ∈ Attr rule , ∀attri ∈ Attr t Attr t ⊆ Attr rule and Value t. attri = Value(rule. attri) → TRA(t, role) 一個工作可指派給某一個角色(Task-Role Assignment, TRA)是指當工作的 屬性滿足企業所制定的規則時,工作可以指派到適當的企業角色。而工作與角色 要達到 TRA 授權的條件為工作的屬性是包含規則的屬性集合,而且工作中每一 項屬性的屬性值滿足規則中擁有屬性的屬性值。而 TRA (t, role)表示 t 此工作授 權給 role 這個角色,亦即角色有權限去執行這個工作,其中 role 是指某一規則 中被指派的角色。另外我們利用 RB-RBAC Language[11]來描述企業所制定的規 則。簡略範例如下:

屬性 ::= 部門

屬性值 ::= {會計 | 採購 | 驗收}

角色 ::= {會計人員 | 採購人員 | 驗收人員}

規則 1 :: (部門=會計)→會計人員 規則 2 :: (部門=採購)→採購人員 規則 3 :: (部門=驗收)→驗收人員

針對這個範例,假設工作其中一個屬性為部門,部門的所有可能屬性值依序 為會計、採購以及驗收,工作可能被指派到的所有角色可能為會計人員、採購人 員與驗收人員。

而企業透過屬性、屬性值以及角色定義出三條指派規則,規則 1 是說明工作 的部門屬性值為會計就可以擔任會計人員角色,規則 2 是說明工作的部門屬性值

(38)

31

為採購就可以擔任採購人員角色,而規則 3 是說明工作的部門屬性值為驗收就可 以擔任驗收人員角色。

假設部門此屬性為某一工作 t 的屬性之一,且其屬性值為採購,然後與企業 所制定的 3 條規則做比較,發現適用規則 2。因此以屬性為基礎的工作-角色的 指派模型將會把此工作指派到採購人員角色上。

而透過本研究制定的相關定義表示此範例,規則 1、規則 2 以及規則 3 的屬 性是部門,其規則分別擁有的屬性及其屬性值為:

 Attr(規則 1)={部門},Value(規則 1.部門)={會計}。

 Attr(規則 2)={部門},Value(規則 2.部門)={採購}。

 Attr(規則 3)={部門},Value(規則 3.部門)={驗收}。

而工作 t 的屬性為 Attr(t)={部門},其屬性值為 Value(t.部門)={採購}。另外 根據工作授權的定義中,Attr(t)Attr(規則 2)滿足,也就是工作 t 與規則 2 都擁有

“部門”此屬性。而且 Value(t.部門)=Value(規則 2.部門)={採購},表示工作 t 的 部門屬性值與規則 2 的部門屬性值相等。工作 t 滿足規則 2 的條件,因此工作 t 授權給採購人員執行,用 TRA(t, 採購人員)來表示。

3.3. 互斥工作

【定義6】 ∀ti, tj ∈ Tasks, ∃role ∈ Roles

ti, tj ∈ MET and TRA(ti, role) → ¬ TRA(tj, role)

互斥工作(Mutually Exclusive Task, MET)是指假如有二種工作是屬於互斥 的工作,則這二種工作不能同時指派到同一個角色上。而(ti, tj)MET,表示 ti

及 tj為互斥工作,意思是指當 ti透過以屬性為基礎的工作-角色的指派模型指派 至某一個角色上,tj就無法同時指派至此角色上。用 TRA(ti, role)表示 ti授權由 role 執行,而¬TRA(tj, role)表示 tj不能經由此 role 執行。例如:要求請購與驗收這二 種工作是屬於互斥工作,因此就不能同時指派這二項工作至同一種角色上。

(39)

32

3.4. 假設

在透過以屬性為基礎的工作-角色的指派模型自動化指派之前,我們提出一 些先決假設條件如下所述:

1. 所有的工作、屬性、屬性值、角色以及規則的相關資訊都可以從資料庫裡面 擷取出來。

2. 針對在角色和工作上的 RBAC Constraint 都已經應該被考慮進去。

3. 因為有角色階層的關係,工作指派到適當角色時,優先選擇最低階層角色執 行。例如:在沒有特殊限制下,採購工作可以被採購職員以及採購經理執行,

這時候優先選擇採購職員負責。

3.5. 限制的優先權

企業在制定政策的時候,會根據不同環境下,可能會發生指派的限制,在本 研究提出之以屬性為基礎的工作-角色的指派模型中,我們把限制的種類主要分 為二種:

1. RBAC Constraint:所謂 RBAC Constraint 就是以角色為基礎存取控制模型針 對使用者、角色、工作以及權限可能因為企業政策或是發生特殊情況所做的 特殊限制。

2. Expression Condition:主要是用在屬性表示式中的條件限制式,意思是說明 假如工作屬性滿足條件限制後,工作可以指派到適當的角色。

假如當兩種限制都發生的情況下,本研究提出之以屬性為基礎的工作-角色 的指派模型會優先判斷 RBAC Constraint,然後才判斷 Expression Condition。意 思是說明企業會制定屬性表示式可能發生的條件限制,工作屬性滿足條件後指派 到角色。但是假如企業政策在透過 ATRBAC 做工作指派之前,部分工作就已經 事先制定好決定要給企業指定的角色,那些選定的工作就無法透過 ATRBAC 進 行工作指派。

(40)

33

另外還有一個種情況就是沒有發生 RBAC Constraint,而且工作也無法滿足 任何適合的指派規則的時候,工作就會無法指派至任何角色。發生這個問題,主 要是因為企業在制定指派規則時,未預料到工作都不滿足所有規則的情形。為了 解決此問題,可以遵循以下步驟解決問題:

1. 工作先由管理人員用手動方式把工作指派至適當的角色。

2. 企業需要針對此問題進行相關工作屬性、規則屬性以及指派規則的評估,進 一步去修正或是需要建立新屬性或是規則,加強指派模型的不足之處。

3.6. 工作與角色的自動指派

在這一節中,本研究將詳細探討工作與角色的指派演算法,首先概略性介紹 演算法指派的步驟,再進一步說明演算法內容。

3.6.1. 指派步驟

本研究首先簡略地描述說明工作與角色之間自動化指派的步驟,主要分為四 大步驟,步驟如下。

1. 在進行自動化指派之前,要先檢查企業是否有針對工作制定出相關RBAC Constraint。如果企業有訂出相關限制,工作會先透過RBAC Constraint指派 到指定的角色。

2. 先透過本研究提出之以屬性為基礎的工作-角色的指派模型的指派演算法,

決定出暫時指派適當的角色。

3. 然後再判斷與之前已經完成的工作-角色指派是否有發生互斥工作指派到同 一個角色上。

4. 最後都排除了RBAC Constraint與互斥工作的限制,工作才能正確指派到適 當的角色上。

(41)

34

3.6.2. 工作與角色自動指派演算法

上一節提到的工作與角色之間自動化指派的步驟,以下為本研究中所呈現完 整的以屬性為基礎的工作-角色的指派模型之工作與角色指派演算法如圖 15。而 演算法說明如下:

 演算法名稱:TaskRoleAssign

 輸入:

Task Set(TS)為欲透過本模型指派的所有工作。

Rule Set(RuleSet)為企業制定的所有規則集合。

Role Set(RS)為企業組織的所有角色集合。

Mutually Exclusive Task Set(METSet)為組織中發生互斥工作的所有集合。

 輸出:所有工作指派至角色的配對集合,此集合包含二種工作指派集合。第 一種為工作受到 RBAC 限制,因而無法經過自動化指派的工作以及其指派 至的角色;而第二種為經過本研究的自動指派演算法指派的工作以及其授權 的角色。

 函式

1. CheckContraint(TS, RS):用來檢查所有工作在指派過程中,企業有沒有定義 RBAC 限制來限制指派。函式輸入為 Task Set(TS)及 Role Set(RS),Task Set(TS)為所有工作集合,Role Set(RS)為所有角色集合;而函式輸出為符合 RBAC 限制的工作以及其指派到的角色標記起來。

2. GetContraintTask(TS) :檢查企業有哪些工作是屬於受到 RBAC 限制而無法 經由本研究提出之演算法指派。函式輸入為 Task Set(TS),Task Set(TS)為所 有工作集合;而函式輸出為受到 RBAC 限制的工作集合。

(42)

35

 變數

1. ConstraintTaskPair(task, role):表示是受限制的工作與其指派至角色的配對集 合,所謂受限制的工作是說明工作因為受到 RBAC 限制,而受限於只能指 派至指定的角色,此工作無法經由本研究提出之演算法指派。

2. ConstraintTaskSet(task):受到 RBAC 限制的工作集合,此工作集合中所有工 作都無法經由指派規則指派至角色。

3. UnAssignTaskSet(t):表示尚未指派的工作集合,已經扣除了 RBAC 限制所 指派的工作。

4. TempTRA(task, role):此變數暫存某一工作以及其授權的角色。意思是工作 已經透過 ATRBAC 的指派規則,有找出適當角色執行此工作,但尚未判斷 如果有發生互斥工作的情況。

5. FinalTRA(task, role):此變數存所有完成自動化指派的工作以及其授權的角 色之配對集合。此集合表示工作已經透過 ATRBAC 指派與其指派至適當角 色的集合,而且也排除互斥工作的情況。

(43)

36

Algorithm TaskRoleAssign

Input: Task Set(TS), Rule Set(RuleSet), Role Set(RS), Mutually Exclusive Task

Set(METSet)

Output: assigned task-role set begin

ConstraintTaskPair (task, role) = CheckContraint(TS, RS);

ConstraintTaskSet(task) = GetContraintTask(TS);

Let each tTS and marked UnAssignTaskSet(t);

UnAssignTaskSet(t) = UnAssignTaskSet(t)- ConstraintTaskSet(task);

for each UnAssignTaskSet(t){

for each RuleSet{

get rule from RuleSet;

if each Value(t.attri) = Value(rule.attri) than { TempTRA (t, role);

for each METSet {

get mutual exclusive tasks from METSet and named be met;

get task from TempTRA(t, role) and named be ttra_task;

get task set from FinalTRA(t, role) and named be ftra_tasks;

if ttra_task with each ftra_tasks

met than {

TempTRA(t, role) add into FinalTRA(task, role);

}end if } end for } end if } end for } end for

return ConstraintTaskPair(task, role) + FinalTRA(task, role);

end

圖 15. 指派演算法

3.7. 小結

本研究之研究重心主要在於自動化指派演算法的研究,因此本研究針對指派 演算法制定出相關的定義及限制。相關定義包含屬性、工作、規則、工作授權及

Figure

Updating...

References

Related subjects :