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