AGDLP是account, global, domain local, permission的縮寫,簡單說明了微軟針對在原生模式Active Directory(AD)中使用嵌套群組(nested group)實現以角色為基礎的存取控制(RBAC)時,相關的建議:使用者和電腦帳號(accounts)依其在企業中的角色,劃分為對應全域(global)群組的成員,全域群組是網域區域群組(domain local groups)的成員,網域區域群組說明資源存取許可(permissions)或是使用者權限設定。AGUDLP(對應account, global, universal, domain local, permission)和 AGLP(對應account, global, local, permission)也是Active DirectoryWindows Server網域英語Windows Server domain中類似的RBAC實現方式。

細節

以角色為基礎的存取控制(RBAC)簡化了重覆性帳號管理流程,也有助於資安稽核英語Information technology security audit[1]。系統管理者不會直接針對個別使用者指定存取權限。系統管理者會依其在企業中的角色來指定存取權限,因此在創建、修改或刪除使用者權限時,可以不用去維護一份可能很大(而且常常變更的)資源許可及使用者權限設定。以角色為基礎的存取控制(RBAC)和傳統的存取控制串列不同,RBAC的許可不是列出細節的各檔案存取方式,而是在特定應用或是系統內有意義的操作。將角色和許可儲存在集中式的數據庫目錄服務中,簡化了確定和控制各角色成員以及各角色存取許可的流程[2]。稽核可以在一個地方分析存取許可的指定方式,不用去瞭解特定存取層級下,針對各資源的實現細節。

單一AD網域中的RBAC

微軟實現RBAC的方式利用了Active Directory中不同的安全群組[3][4]

全域安全群組(Global security groups)
全域範圍的網域安全群組代表在企業中的角色,或是在此網域中的功能。這些群組可以包括個別帳號,同一網域內的其他全域群組,也可以用在網域森林中的資源裡。這些群組可以經常變更,不會有全局目錄複製的問題。
網域區域安全群組(Domain local security groups)
網域區域範圍的網域安全群組說明細節的存取權限或是使用者權限。只有同一個網域的系統可以用到這些群組。網域安全群組可以包括帳號、全域群組、以及任何網域的萬用群組(universal groups),也可以包括同一個網域的其他網域區域群組。

表示企業中功能的全域安全群組應該只有使用者或電腦帳號。表示資源存取許可或是其他使用者權限的網域區域群組,其中應該只有全域安全群組,沒有個別帳號。不應該對帳號或是企業角色直接設定存取許可或是使用者權限,這樣才能簡化存取權限的分析。

Active Directary森林中的RBAC

Active Directary森林是指多個網域的環境,各個網域可能是透過廣域網虛擬私人網路連接,會有稱為全域目錄伺服器(global catalog server)的網域控制器會快取目錄對象物件以及屬性型態,以減少跨網域緩慢的目錄查詢[5]。全域目錄伺服器快取的物件包括了萬用群組(universal group),不包括全域群組(global group),使得萬用群組的成員查詢比全域群組的查詢要快很多。不過萬用群組的任何修改都會觸發全域的目錄複製(而且可能成本很高),在萬用群組的修改需要Active Directary森林層級的的安全權限,這在大部份的大型企業不太適用。因為這二個限制,讓萬用安全群組沒有完全取代全域安全群組來表示在成員在企業中的角色。在此環境下,用萬用安全群組來表示在公司內的角色,但又維持各網域個別的全域安全群組,就簡稱為AGUDLP

在非AD網域下的RBAC

在Windows NT 4.0或較早版本的網域只有全域(網域等級)及區域(非網域層級)的群組,在網域等級不支援嵌套群組[6]。縮寫AGLP是指這種在較早期網域的RBAC實現:全域(Global)群組表示企業角色,而區域(local)群組(在網域成員資料庫中)說明各使用者的權限。

例子

假設一個共享資料夾, \\nyc-ex-svr-01\groups\bizdev; 是公司行銷部門的業務發展組,在Active Directory中是在(已有的)全域安全群組「業務開發團隊成員」以下,有要求這整個群組都要可以讀寫共享資料夾,管理者若依AGDLP,其存取控制方式如下:

  1. 在Active Directory建立新的網域全域安全群組,名稱為「允許修改\\nyc-ex-svr-01\groups\bizdev」。
  2. 在bizdev資料夾中,對這個網域全域群組給予NTFS "change"的權限集(read, write, execute/modify, delete)(注意,安全描述符共享許可英語share permissions是不同的)。
  3. 讓全域群組「業務開發團隊成員」成為網域區域安全群組「允許修改\\nyc-ex-svr-01\groups\bizdev」的成員。

為了要突顯使用RBAC控管權限的好處,若業務發展組需要bizdev額外的權限,系統管理者只需要編輯單一的存取控制項(access control entry),不用編輯其中每一個成員的存取控制項。

參考資料

  1. ^ Ferraiolo, D.F.; Kuhn, D.R. Role Based Access Control (PDF). 15th National Computer Security Conference: 554–563. October 1992 [2021-10-20]. (原始內容 (PDF)存檔於2011-06-05). 
  2. ^ Sandhu, R.; Coyne, E.J.; Feinstein, H.L.; Youman, C.E. Role-Based Access Control Models (PDF). IEEE Computer. August 1996, 29 (2): 38–47 [2021-10-20]. CiteSeerX 10.1.1.50.7649 . doi:10.1109/2.485845. (原始內容 (PDF)存檔於2011-06-05). 
  3. ^ Microsoft Corporation. Group Scopes: Active Directory. Microsoft Technet. 2007-03-16 [2009-04-28]. (原始內容存檔於14 March 2009). 
  4. ^ Melber, Derek. How to Nest Users and Groups for Permissions. WindowsSecurity.com. 2006-05-18 [2009-04-28]. (原始內容存檔於2013-01-17). 
  5. ^ Microsoft Corporation. Understanding the Global Catalog: Active Directory. Microsoft Technet. 2005-01-21 [2005-10-21]. (原始內容存檔於2016-03-05). 
  6. ^ Stanek, William R. Understanding User and Group Accounts. Microsoft Technet. [2009-04-28]. (原始內容存檔於27 April 2009).