摘要:寶鋼集團(tuán)在集團(tuán)總部、各子公司同時(shí)建立了覆蓋各主體業(yè)務(wù)的相關(guān)系統(tǒng)。各系統(tǒng)均建設(shè)用戶均可獨(dú)立完成身份認(rèn)證和授權(quán)。隨著系統(tǒng)數(shù)量的不斷增加,這種分散的用戶身份驗(yàn)證帶來的問題也逐漸凸顯出來。集團(tuán)網(wǎng)絡(luò)接入非常廣泛,接入方式多樣,如何建立一個(gè)統(tǒng)一的集團(tuán)專用網(wǎng)絡(luò)接入管理,提升訪問控制能力,提高綜合防護(hù)能力成為一個(gè)新的課題。在集團(tuán)層面建立一套統(tǒng)一認(rèn)證管理平臺(tái),提供集中和便捷的身份管理、安全的認(rèn)證機(jī)制、權(quán)限管理和審計(jì),以滿足企業(yè)對(duì)信息系統(tǒng)使用的方便性和安全管理的需求。同時(shí)在異構(gòu)的系統(tǒng)之間實(shí)現(xiàn)應(yīng)用系統(tǒng)單點(diǎn)登錄,簡化用戶的登錄過程,并提供統(tǒng)一認(rèn)證服務(wù)的適應(yīng)多中心的高可用性解決方案。
關(guān)鍵詞:統(tǒng)一認(rèn)證服務(wù) 單點(diǎn)登陸 NOSQL Cassandra CA證書
1 概述
近幾年,寶鋼集團(tuán)層面通過集團(tuán)管控、共享系統(tǒng)的建設(shè),在應(yīng)用廣度、深度方面均不斷深化,信息化水平得到了較大的提高。集團(tuán)總部、各子公司同時(shí)建立了覆蓋各主體業(yè)務(wù)的相關(guān)系統(tǒng)。上述各系統(tǒng)均建設(shè)用戶均可獨(dú)立完成身份認(rèn)證和授權(quán)。隨著系統(tǒng)數(shù)量的不斷增加,這種分散的用戶身份驗(yàn)證帶來的問題也逐漸凸顯出來。
集團(tuán)網(wǎng)絡(luò)接入非常廣泛,接入方式多樣,如何建立一個(gè)統(tǒng)一的集團(tuán)專用網(wǎng)絡(luò)接入管理,提升訪問控制能力,提高綜合防護(hù)能力成為一個(gè)新的課題。
2 寶鋼集團(tuán)統(tǒng)一認(rèn)證系統(tǒng)架構(gòu)設(shè)計(jì)
統(tǒng)一認(rèn)證系統(tǒng)的總體架構(gòu)設(shè)計(jì)思想遵循業(yè)務(wù)專業(yè)化、服務(wù)屬地化、負(fù)載均衡、互為熱備的原則。在總部構(gòu)建寶鋼集團(tuán)統(tǒng)一認(rèn)證服務(wù),包括認(rèn)證服務(wù)、SSO服務(wù)、用戶賬號(hào)同步服務(wù)等。根據(jù)系統(tǒng)實(shí)際運(yùn)行情況可以在多個(gè)地區(qū)中心設(shè)立統(tǒng)一認(rèn)證服務(wù)分中心,平時(shí)分別服務(wù)于各地區(qū)中心范圍內(nèi)的企業(yè),當(dāng)某一中心發(fā)生故障時(shí)又可以互為備份,保證平臺(tái)的高可靠性和高穩(wěn)定性。
統(tǒng)一認(rèn)證包含統(tǒng)一認(rèn)證服務(wù)、系統(tǒng)資源子系統(tǒng)兩個(gè)獨(dú)立運(yùn)營的子系統(tǒng),通過系統(tǒng)間標(biāo)準(zhǔn)接口實(shí)現(xiàn)協(xié)同運(yùn)行。
統(tǒng)一認(rèn)證服務(wù)負(fù)責(zé)對(duì)寶鋼集團(tuán)內(nèi)所有業(yè)務(wù)系統(tǒng)提供用戶身份認(rèn)證的實(shí)時(shí)在線服務(wù)。集團(tuán)內(nèi)的各個(gè)業(yè)務(wù)系統(tǒng)通過調(diào)用統(tǒng)一認(rèn)證的實(shí)時(shí)服務(wù)進(jìn)行用戶登陸身份的在線認(rèn)證及系統(tǒng)訪問授權(quán)檢查。因此,統(tǒng)一認(rèn)證服務(wù)定位為寶鋼集團(tuán)信息化安全的基礎(chǔ)服務(wù)之一,必須能夠保證高并發(fā)訪問情況下的快速響應(yīng),并且必須具備7*24級(jí)別的高可用性。針對(duì)這些要求,一方面,通過本地CAS集群+nosql(高速分布式文件系統(tǒng))實(shí)現(xiàn)屬地內(nèi)服務(wù)的負(fù)載均衡及高效讀緩存,以有效提高屬地內(nèi)的認(rèn)證服務(wù)性能,避免單服務(wù)器故障造成的服務(wù)中斷事故。另一方面,通過nosql分布式文件系統(tǒng)的節(jié)點(diǎn)透明擴(kuò)展特性,構(gòu)造一個(gè)跨地區(qū)的分布式對(duì)等節(jié)點(diǎn)環(huán),當(dāng)某一節(jié)點(diǎn)發(fā)生故障時(shí),相鄰節(jié)點(diǎn)將自動(dòng)接管并無縫提供透明對(duì)等服務(wù)。
3 寶鋼集團(tuán)統(tǒng)一認(rèn)證系統(tǒng)應(yīng)用設(shè)計(jì)
3.1 寶鋼集團(tuán)統(tǒng)一認(rèn)證系統(tǒng)功能設(shè)計(jì)
寶鋼統(tǒng)一認(rèn)證服務(wù)采用多中心的方式,分別在不同中心部署認(rèn)證服務(wù)器,當(dāng)一個(gè)中心故障的時(shí)候,借助全局負(fù)載均衡實(shí)現(xiàn)用戶自動(dòng)切換到其它認(rèn)證中心進(jìn)行登陸。寶鋼統(tǒng)一認(rèn)證服務(wù)主要分為:基礎(chǔ)服務(wù)、核心服務(wù)和公共服務(wù)3個(gè)部分,系統(tǒng)結(jié)構(gòu)如圖所示:
3.1.1 基礎(chǔ)服務(wù)功能
基礎(chǔ)系統(tǒng)功能提供平臺(tái)公共的基礎(chǔ)服務(wù),主要的功能有:
①日志管理:記錄用戶登錄統(tǒng)一認(rèn)證服務(wù)器的相關(guān)信息,比如登錄IP地址、用戶賬號(hào)、登錄時(shí)間、登錄成功與否等。
②安全管理:在安全方面產(chǎn)品進(jìn)行了多個(gè)方面的設(shè)計(jì),比如防止CSRF攻擊,防止用戶重復(fù)惡意登錄等等。
③監(jiān)控管理:對(duì)用戶的登錄行為進(jìn)行監(jiān)控,記錄登錄日志信息。
3.1.2 核心服務(wù)功能:核心功能主要分為認(rèn)證管理和用戶管理。
①認(rèn)證管理: 認(rèn)證管理為了實(shí)現(xiàn)接入系統(tǒng)和統(tǒng)一認(rèn)證平臺(tái)之間的SSO。
②用戶管理:用戶管理功能主要實(shí)現(xiàn)登錄賬號(hào)管理。
3.1.3 公共服務(wù)功能:公共服務(wù)功能主要分為2個(gè)部分的內(nèi)容:管理功能和擴(kuò)展功能。管理功能主要有:
①系統(tǒng)注冊(cè)管理:當(dāng)接入系統(tǒng)完成CAS Client組件集成并測試通過以后,需要在統(tǒng)一認(rèn)證平臺(tái)進(jìn)行注冊(cè)。
②接入系統(tǒng)列表:接入系統(tǒng)注冊(cè)完成以后,統(tǒng)一認(rèn)證平臺(tái)通過提供接入系統(tǒng)列表的方式,供用戶快速的訪問和登錄這些系統(tǒng),通常采用Portlet方式提供,以便跟門戶等應(yīng)用進(jìn)行集成。
③訪問授權(quán)管理:設(shè)置用戶對(duì)接入系統(tǒng)的訪問權(quán)限。
④密碼策略管理:提供對(duì)帳號(hào)密碼強(qiáng)度的管理,包括密碼安全設(shè)置及修改、組成規(guī)則及校驗(yàn)策略等。具備密碼有效期驗(yàn)證、提醒以及過期或輸錯(cuò)次數(shù)鎖定、激活等功能。
3.2 寶鋼集團(tuán)統(tǒng)一認(rèn)證系統(tǒng)高可用性設(shè)計(jì)
統(tǒng)一認(rèn)證服務(wù)高可用性設(shè)計(jì)分兩個(gè)技術(shù)層面:
3.2.1 網(wǎng)絡(luò)層面
應(yīng)用全局負(fù)載均衡技術(shù)的SSL網(wǎng)關(guān)將直接接管用戶訪問統(tǒng)一認(rèn)證服務(wù)器的請(qǐng)求,根據(jù)統(tǒng)一認(rèn)證服務(wù)器的狀況進(jìn)行各個(gè)認(rèn)證節(jié)點(diǎn)間動(dòng)態(tài)的分配,實(shí)現(xiàn)全局性的負(fù)載平衡和失效切換。
3.2.2 應(yīng)用層面
采用Cassandra分布式節(jié)點(diǎn)技術(shù)實(shí)現(xiàn)統(tǒng)一認(rèn)證服務(wù)的多中心部署結(jié)構(gòu),防止一個(gè)中心認(rèn)證平臺(tái)癱瘓后,系統(tǒng)不能正常工作;在每個(gè)中心,統(tǒng)一認(rèn)證服務(wù)采用集群方式部署,防止單節(jié)點(diǎn)故障。
分節(jié)點(diǎn)設(shè)計(jì)方案如下圖所示:
分節(jié)點(diǎn)部署方案主要應(yīng)用了Cassandra分節(jié)點(diǎn)之間的同步技術(shù)。Cassandra的主要特點(diǎn)就是它不是一個(gè)數(shù)據(jù)庫,而是由一堆數(shù)據(jù)庫節(jié)點(diǎn)共同構(gòu)成的一個(gè)分布式網(wǎng)絡(luò)服務(wù),對(duì)Cassandra 的一個(gè)寫操作,會(huì)被復(fù)制到其他節(jié)點(diǎn)上去,對(duì)Cassandra的讀操作,也會(huì)被路由到某個(gè)節(jié)點(diǎn)上面去讀取。如圖所示,Cassandra 通過分布式部署后,形成了一個(gè)動(dòng)態(tài)環(huán)狀數(shù)據(jù)鏈,通過統(tǒng)一認(rèn)證服務(wù)管理功能自動(dòng)的往Cassandra里面寫入用戶賬號(hào)信息,統(tǒng)一認(rèn)證服務(wù)器驗(yàn)證賬號(hào)的時(shí)候就訪問這個(gè)動(dòng)態(tài)環(huán)狀數(shù)據(jù)鏈,只要這個(gè)環(huán)狀數(shù)據(jù)鏈中還有一臺(tái)服務(wù)器可用,統(tǒng)一認(rèn)證服務(wù)就能繼續(xù)提供認(rèn)證服務(wù)。為了提升賬號(hào)登陸驗(yàn)證的高效性和穩(wěn)定性,可以往這個(gè)環(huán)狀數(shù)據(jù)鏈進(jìn)行擴(kuò)充Cassandra 服務(wù)器節(jié)點(diǎn)。
3.3 企業(yè)級(jí)CA系統(tǒng)和電子認(rèn)證系統(tǒng)實(shí)現(xiàn)集團(tuán)總部數(shù)字證書體系建設(shè)
3.3.1 企業(yè)級(jí)CA系統(tǒng)
CA系統(tǒng)為用戶提供數(shù)字證書申請(qǐng)、受理、審批、簽發(fā)、下載、查詢、更新、注銷等生命周期管理功能。為用戶提供證書申請(qǐng)、業(yè)務(wù)受理、下載、查詢、更新等web界面,該界面集成到統(tǒng)一認(rèn)證服務(wù)。用戶登錄寶鋼集團(tuán)總部門戶主頁,訪問個(gè)人證書管理界面進(jìn)行證書業(yè)務(wù)處理;證書管理員通過后臺(tái)管理頁面進(jìn)行證書用戶身份審批、證書簽發(fā)等操作實(shí)現(xiàn)數(shù)字證書發(fā)放。
3.3.2 電子認(rèn)證系統(tǒng)
電子認(rèn)證系統(tǒng)主要為應(yīng)用系統(tǒng)提供證書認(rèn)證及證書操作相關(guān)的功能接口,系統(tǒng)架構(gòu)如圖所示:
具體的功能包括:
①身份認(rèn)證:驗(yàn)證證書身份有效性,包括個(gè)人身份認(rèn)證和設(shè)備身份認(rèn)證。
②數(shù)字簽名:對(duì)應(yīng)用傳遞的數(shù)據(jù)進(jìn)行簽名操作,提供pkcs1/Pkcs7 attach/Pkcs7 detach/xml Sign 等多種格式的數(shù)字簽名的數(shù)字簽名功能,提供對(duì)文件數(shù)字簽名和驗(yàn)證功能。
③驗(yàn)證簽名:對(duì)應(yīng)用傳遞的數(shù)據(jù)進(jìn)行驗(yàn)證簽名操作,提供pkcs1/Pkcs7 attach/Pkcs7 detach/xml Sign 等格式的數(shù)字簽名驗(yàn)證功能。
④證書有效性效驗(yàn)功能:對(duì)獲得的證書進(jìn)行CRL/OCSP方式的有效性驗(yàn)證,CRL更新配置可自動(dòng)定時(shí)進(jìn)行,并支持對(duì)X.509 Version 3,X.500 ,PKCS系列證書的DER和PEM格式的應(yīng)用與驗(yàn)證。
3.3.3 證書認(rèn)證流程
證書認(rèn)證流程的前提是在系統(tǒng)初始化時(shí)由企業(yè)CA系統(tǒng)為用戶簽發(fā)硬件證書或者文件證書,用戶使用證書登錄寶鋼集團(tuán)總部門戶主頁,由電子認(rèn)證服務(wù)器進(jìn)行證書認(rèn)證,具體流程為:
①用戶選擇使用證書或者密碼方式登陸。
②根據(jù)用戶登錄類型,將用戶口令或者數(shù)字證書發(fā)給統(tǒng)一認(rèn)證服務(wù)。
③統(tǒng)一認(rèn)證服務(wù)將證書發(fā)給電子認(rèn)證服務(wù)器,電子認(rèn)證服務(wù)器驗(yàn)證用戶的證書的有效性,以及證書與用戶是否匹配,并返回認(rèn)證結(jié)果。
④統(tǒng)一認(rèn)證服務(wù)器將認(rèn)證結(jié)果返回至應(yīng)用系統(tǒng)。
4 結(jié)論
本文主要講述了寶鋼集團(tuán)統(tǒng)一認(rèn)證系統(tǒng)的設(shè)計(jì)思想與實(shí)現(xiàn)方式,寶鋼集團(tuán)統(tǒng)一認(rèn)證系統(tǒng)在2012年7月底已試運(yùn)行,統(tǒng)一認(rèn)證服務(wù)可保證用戶“一次登錄,同時(shí)訪問不同系統(tǒng)”的要求,提高用戶系統(tǒng)操作效率,減少用戶需要管理的密碼,提高員工整體的系統(tǒng)使用效率。同時(shí)將寶鋼集團(tuán)內(nèi)部的統(tǒng)一認(rèn)證各認(rèn)證節(jié)點(diǎn)所需的認(rèn)證資源信息統(tǒng)一管理,集團(tuán)資源管理子系統(tǒng)的資源信息包括用戶、組織、系統(tǒng)及網(wǎng)絡(luò)資源、授權(quán)(用戶與資源的對(duì)應(yīng)關(guān)系)等信息,實(shí)現(xiàn)了寶鋼集團(tuán)信息資源的統(tǒng)一管理。CA證書的使用,提供了信息系統(tǒng)用戶實(shí)名認(rèn)證管理的技術(shù)手段,配合適當(dāng)?shù)墓芾砹鞒蹋瑢?shí)現(xiàn)寶鋼范圍內(nèi)的信息系統(tǒng)使用情況的實(shí)名認(rèn)證和實(shí)名記錄。
參考文獻(xiàn):
[1]于浩東(作者).J2EE應(yīng)用框架設(shè)計(jì)與項(xiàng)目開發(fā).清華大學(xué)出版社,第1版 (2008年2月1日).
[2]沃爾斯(作者),布雷登巴赫 (作者譯者),畢慶紅(譯者)Spring in Action人民郵電出版社,第2版 (2008年10月1日).
[3]休伊特(作者),王旭 (譯者),Cassandra權(quán)威指南.人民郵電出版社,第1版 (2011年8月1日).
[4]佐佐木達(dá)也(作者),羅勇 (譯者).NOSQL數(shù)據(jù)庫入門.人民郵電出版社,第1版 (2012年5月1日).
[5]Joshua Bloch(作者),俞黎敏(譯者).Effective Java中文版.機(jī)械工業(yè)出版社,第2版 (2009年1月1日).