統一身份管理中的權限管理設計
權限集中管理是統一身份管理關註的主要內容之一,由於企業應用建設的自身歷程不同,權限設計與實現也必然存在差異,針對集中權限管理的設計和實現帶來了不小的挑戰,本文根據多年的實踐經驗,就統一身份管理的集中權限管理的設計與實現給予設計建議。
一 問題背景
隨著信息技術和網絡技術的迅猛發展,企業內部的應用系統越來越多,為此,為減少用戶訪問的麻煩,提升訪問的便利性和體驗,眾多企業采用了統一身份管理的方案來解決該問題。
就企業的統一身份管理,業界提出了相應的標準,即4A標準,分別是集中帳號(account)管理、集中認證(authentication)管理、集中權限(authorization)管理、集中審計(audit)管理 。
然而眾多企業在實施過程中僅做到集中賬號管理、集中認證管理、集中審計管理。
究其原因,一是集中權限管理對應用系統各方的改造工作量較大、成本高,二是由於各應用系統的權限設計模型不盡相同,在集中權限管理的設計上有一定的難度。
針對統一身份管理中的集中權限管理的需求與現狀,總結我們多年統一身份管理項目實施的經驗,我們梳理了一種復合的權限模型,以滿足不同層次的權限集中管理需要。
二 權限管理需求的三種模式
首先,我們看一下在統一身份管理過程中的權限管理需求,經過梳理,我們認為權限管理可以分為3個層級需求,其分別如下:
1、賬號級權限管理需求
賬號管理是統一身份管理的基礎與核心。賬號級權限管理是賬號管理的一部分,其需求的定位即為為用戶提供應用的賬號,通過控制用戶的應用賬號,從而控制用戶對於某一應用的權限。
該種需求對權限管理的粒度較粗,但改造的成本最低,改造工作可以在應用系統與統一身份管理平臺的賬號對接中同步完成,不涉及額外單獨的改造成本;
但該種方式需要應用管理員配合進行用戶的授權,如需做到功能和數據細粒度的授權,用戶權限管理的維護成本較高。
2、角色級權限管理需求
角色級的權限管理是指采用基於角色的權限管理,統一身份管理平臺與應用系統共用一套或多套角色。
應用系統就各角色預設細粒度的功能與數據權限,統一身份管理平臺通過對賬號應用系統角色的管控,從而實現對用戶在應用系統中權限的控制。
3、功能按鈕與數據維度級的權限管理需求
功能按鈕與數據維度級的權限管理,則是需要在統一身份管理平臺可以直接配置每一個賬號在每一個應用中的細粒度權限。
其可以監督便利性與控制粒度要求,整個過程中無需應用管理員參與,但對應用系統的配合改造要求較大。
三 權限管理設計
不同的權限管理需求模式,適用於不同的業務場景和應用系統。
由於應用系建設自身歷程發展的原因,在企業的集中權限管理過程中,往往是多種模式並存,由應用系統是否可以改造和可改造的深度確定。
因此,針對權限集中管理的設計,我們構想方案如下:
1、 賬號級權限管理
賬號級權限管理通過用戶賬號生命周期管理同步實現,通過控制用戶應用系統中賬號的開通、啟動、停用等從而實現對用戶訪問應用系統權限的控制,實現“大門級”的權限管控。
2、 角色級及細粒度功能權限級
針對角色級和細粒度功能權限級的控制,可以統一考慮,在統一身份管理平臺上構建基於RBAC模型的權限管理功能,將各應用的數據權限、功能權限註冊到統一身份管理平臺,並通過角色進行權限集的管理,而用戶則分配到角色,其整體的模型圖示如下:
但對於不同權限管理層次的應用,應用的改造深度不同,對於角色同步的改造,較為簡單,只需在用戶同步的時候增加角色同步。
但對於功能粒度級的改造,則需要針對鑒權模型進行調整,其實現邏輯可設計如下:
通過細粒度的權限控制,不僅可以實現權限的集中控制,還可實現企業級的權限審計,有效降低企業應用越權使用風險。
企業統一身份的建設過程中,究竟采用何種粒度的權限集中管理,要根據企業的應用的改造難度、應用數量以及應用的業務價值等方面綜合評估,針對不同的應用,可根據實際需要采用不同粒度的管理方式,逐步推進集中權限管控。
統一身份管理中的權限管理設計