文/魏偉(北京新機場建設指揮部)
信息化發展到一定程度以后,同一個機構中經常多個應用系統并存,每個應用系統通常都有單獨的用戶身份管理功能,單獨管理用戶身份和賬號信息、密碼信息并對用戶行為進行審計。很多應用系統常采用最簡單的用戶名+密碼的方式,對于用戶來說,需要記憶多個系統的用戶名和密碼并按照不同系統的要求周期性修改多個密碼,所以,很多用戶為了使用方便,常將各個應用系統的密碼均設置為相同的密碼,而這又造成了潛在安全隱患,一旦密碼丟失后,所有相關系統都面臨安全威脅。另一方面,對于企業或組織來說,分別管理每個應用系統的身份信息會花費很多的成本和管理人員的精力,當用戶忘記或丟失密碼之后進行重置或找回又進一步增加了管理和使用的復雜度。總之,這種各個應用系統獨自維護用戶身份數據的模式帶來了安全隱患、用戶體驗不佳且不滿足相關政策和法規的審計要求。
由于傳統煙囪式的各應用系統獨立管理用戶身份和賬號的顯著缺點,有必要建設一套統一的、權威的用戶身份管理系統,通常情況下,每個應用系統不再單獨維護管理用戶身份和賬號信息,將用戶身份管理功能交由統一的身份管理平臺,通過實施統一規劃、集中實施,實現以下業務場景:
1)實現自然人身份信息的統一和集中創建,維護自然人的基本信息;
2)基于自然人創建賬號信息,實現自然人與賬號的關聯;
3)新建自然人的賬號通過預定義的規則同步不同的應用系統;
4)實現統一的密碼管理策略,實現自動化、集中化、周期化修改系統賬號口令;
5)實現集中創建、變更、刪除用戶的賬號;
6)實現集中的賬號全生命周期管理,對賬號從創建到回收各階段狀態進行統一管理,包括對賬號創建、分配、變更(如:屬性更改,口令重設等)、賬號使用情況的審計等;
7)對于已經單獨實現身份和賬號管理的應用系統,實現對其系統中已有賬號的收集和映射管理,將各應用系統的賬號數據格式統一,存放統一。原有各應用系統中的賬號可能存放在系統自身的關系數據庫中,也可能存放在獨立的第三方基于LDAP協議的數據庫中,要求同時支持這兩種存儲方式,并且,通過簡單的數據庫映射配置即可實現。
通過構建統一的身份管理平臺,使得多應用系統的安全性、用戶使用便利性和系統管理效率得以提升。
3.1.1 賬號管理原則
1)集中管理
用戶管理采用集中的管理方式,用戶賬號分為主賬號和從賬號,從賬號的管理范圍是管理用戶能否有權限訪問該應用系統(粗粒度授權),用戶在應用系統中的角色由應用系統自身進行管理。
賬號管理包括對賬號的增加、修改、刪除、遷移,禁用/啟用且包含應用系統的賬號。
管理員可以根據用戶的來源、用戶角色、用戶名等主要屬性來進行分類瀏覽和查詢用戶賬戶。
HR系統通常作為統一身份管理平臺的權威身份來源,用戶通訊錄信息應與HR同步,同時,這些屬性會自動同步到應用系統中,管理員也可以手工修改這些信息。
管理員可以單獨或批量修改用戶密碼,支持用戶批量錄入功能,支持組織機構查詢功能,能直觀、動態地瀏覽組織機構下所有人員信息。
2)多點授權
當統一身份管理平臺通過數據同步的功能將用戶從賬號信息同步到應用系統后,由應用系統完成用戶在應用系統中的權限管理(細粒度授權)。
管理員在授權用戶訪問或無法訪問某一系統時,應向該系統管理員發送郵件通知和任務,讓該系統管理員為該用戶分配、更改或禁用系統內角色和權限。
由于采用集中的管控方式,當用戶離職時,可實現“一點清權”,從而保證了系統的安全性。
在實現用戶集中管理時,統一身份管理系統應具有豐富的協議適配庫,與不同應用系統對接時可從庫中直接選擇合適的接口程序及數據標準。
3.1.2 賬號生命周期管理
賬號生命周期管理是指對賬號從創建到回收各階段的集中管理。包括屬性修改、口令修改與初始化,賬號行為及使用狀況審計等。
集中的的用戶賬號生命周期管理流程大致如下:
1)自然人創建:創建自然人并輸入自然人身份信息,包括姓名、性別、單位、年齡等系統中預先定義的屬性字段內容。
2)主賬號創建:創建與自然人一一對應的主賬號。在單點登錄場景下,主賬號用于登錄統一的門戶;在非單點登錄場景下,主賬號僅是自然人身份的標識。
3)角色分配:根據自然人的屬性,為自然人及其主賬號分配不同的角色,如:OA用戶、互聯網用戶、管理員等各種角色,1個人可以有不同的角色屬性。
4)創建從賬號:根據用戶的崗位及屬性特點,在統一身份管理系統中為其創建從賬號,從賬號與應用系統直接存在映射關系,如:某主賬號下的具有A從賬號,意味著用戶可以訪問A應用系統,從賬號通過預先定義的規則自動下發或同步到相應的應用系統中。
5)配置權限:為用戶主賬號及其從賬號分配訪問相應應用系統的權限,該權限只是粗顆粒度的權限配置,僅解決能不能訪問的問題,不做具體行為權限控制。
統一身份管理平臺實施以后,用戶身份賬號口令的安全性更是非常重要。密碼策略應該包括以下內容:最小和最大口令長度、數字字母組合設置、不能使用的口令(如特定的詞、與賬號相關的變種)、簡單口令檢查、口令更改時間間隔限制、同一口令的使用限制、導致賬號被鎖定的嘗試失敗登錄次數、口令重設問題等,還應支持對于不同級別的用戶設置不同的口令管理策略。
此外,統一身份管理平臺還應支持與第三方強制認證系統集成實現對用戶賬號口令安全性的強化,如和CA認證中心系統、動態口令系統、短信驗證系統等集成。
對于應用系統賬號的集中管理,需要分情況來考慮。一種為主賬號與資源賬號不同步,即不需要通過統一身份管理平臺與各應用系統之間的賬號進行同步;另一種是主賬號需要與資源賬號進行同步,也就是要通過統一身份管理平臺與各應用系統之間的賬號進行同步。這樣才能實現在一個統一身份管理平臺就可實現對用戶的集中管理,在這一個平臺上加一個用戶賬號信息后,在其他系統中就會自動出現,并可應用。而不需要再到每一個系統中單獨加賬號等其他用戶信息。
A.用戶信息不需同步
有些應用系統需要將身份信息和粗顆粒度的權限管理交由統一身份管理系統實現,本身不再保留賬號管理功能,由統一身份管理系統實現對用戶及其賬號的統一管理和訪問控制與權限管理。當用戶登錄到應用時,通過應用系統與統一身份管理系統之間的數據交互結果和獲取的用戶信息和角色信息等決定用戶在應用系統的操作權限。
B.用戶信息同步
有些應用系統還保留有獨立的身份和賬號管理體系,則統一身份管理系統對其賬號的集中管理主要表現為賬號同步:即保持應用系統用戶身份和賬號數據庫與統一身份管理系統之間數據的一致性和更新的同步性。
(1)賬號和密碼同步機制
如果應用系統需要保留自身的賬號管理體系,則系統必須實現統一與統一身份管理系統相應賬號信息的同步。通常安全設計比較完善的應用系統的賬號數據中的密碼信息為加密存儲,或存儲的是加密后的摘要信息,則統一身份管理系統通常無法從應用系統數據庫中抽取密碼信息。在這種方式下,只能實現單向的數據同步,統一賬號管理系統根據密碼策略,自動更改用戶在應用系統中的密碼,而不從應用系統的數據庫中抽取密碼(如果應用系統開放其密碼加密方法,也可以抽取其密碼信息),或提供相關的密碼寫入接口程序,供統一賬號管理系統調用實現從上至下的密碼管理。
(2)與關系型數據庫同步賬號及密碼
賬號同步模塊和關系型數據庫同步數據是通過JDBC/ODBC資源適配器完成的,并在資源方無需代理,通過配置“賬號同步引擎”,完成數據同步。其實質是通過讀寫操作被同步對象的數據存儲設備來實現的。因此,這種方式需要提供給賬號同步模塊各應用系統的數據存儲設備的具有管理權限的賬號和密碼。如果不能提供數據庫管理權限的賬號和密碼,也就是通過“賬號同步引擎”不能實現用戶賬號同步,或是不能將數據庫讀寫權限交給平臺,則可通過編程接口與關系型數據庫同步。
(3)與LDAP或AD進行同步
如果有其他的應用系統底層數據庫也是采用的LDAP,同步引擎是通過JNDI資源適配器完成的,在資源方無需代理。直接通過配置就將用戶數據與其他LDAP目錄服務器進行同步。
基于上述數據同步機制,可以進行數據同步,實現在平臺上加入1個用戶就可以直接同步。這樣,可以通過配置賬號同步引擎,將LDAP中的用戶賬號和密碼都同步到平臺數據庫中,而不用擔心加密算法不知道的情況。也可以提供增加用戶和修改用戶密碼等應用程序接口,通過調用接口實現平臺上的用戶信息與用戶信息一致。
統一身份管理系統應具有可設置的管理功能分配給指定的機構或用戶,讓他們可以管理自己部門或單位內部或應用系統的特定用戶,提供類似租戶自服務的管理模式。
系統也需要提供用戶自管理的功能,根據預先定義的策略,用戶可以在無管理員協助的狀況下自助完成部分工作,包括用戶主賬號和二級賬號注冊、密碼初始化和個人信息管理等功能。
統一身份管理系統除了需要有集中的身份管理數據庫外,還應具有基于LDAP標準協議的目錄服務數據庫,以為企業提供基于標準協議的統一的身份認證、管理和存儲服務。
統一身份管理系統提供集中身份管理和統一認證的標準接口,提供給應用系統調用標準的接口程序實現系統集成,用戶在統一身份管理系統上認證通過后,就可以被相應的應用系統認可(應用系統與統一身份管理系統之間需要有明確的認證令牌交互和校驗機制,同時,應確保校驗過程數據的完整性、可用性和保密性),用戶訪問應用系統時不需重復進行認證。
統一身份管理模式是管理和技術平衡的結果,理論上,沒有集中的身份管理并不影響企業應用系統的使用,但隨著管理精細度等的要求越來越高,各自為政的管理模式很難適應企業的發展和效率提升、安全可靠的要求,而且從本質上來說,統一身份管理的服務對象主要還是使用系統的人,人由于惰性使然,使得管理手段很難長時間高效執行,必須借用技術手段實現管理和安全、效率等的綜合平衡提升。統一身份管理平臺可以很好地實現管理、體驗、安全等多個維度效果的平衡,業內很多專業的廠商除了實現統一身份管理外,還整合實現了統一認證、單點登錄等的效果,畢竟這三者是個有機的整體。本文主要探討的內容是統一身份管理,在實際業務環境中,統一身份管理、統一認證和單點登錄之間的關系會更復雜,需要在不同的場景使用不同的實現方式和不同的技術手段。