賀建榮 劉明昌 王歡
摘 ?要:基于企業(yè)對信息化的需求越來越多,神東煤炭集團(tuán)開發(fā)了全面的信息系統(tǒng)供不同業(yè)務(wù)板塊使用,各系統(tǒng)統(tǒng)一身份認(rèn)證互通成為各大業(yè)務(wù)系統(tǒng)需要解決的問題,為減少用戶記錄各系統(tǒng)的不同密碼與賬號的麻煩,解決因系統(tǒng)較多給用戶及企業(yè)管理帶來的不便。神東研發(fā)人員就神東業(yè)務(wù)系統(tǒng)的現(xiàn)狀,結(jié)合當(dāng)前信息化發(fā)展的趨勢,以及CAS單點(diǎn)開源系統(tǒng)特點(diǎn),基于原系統(tǒng)設(shè)計(jì)開發(fā)出了一套符合神東信息整體規(guī)劃與適應(yīng)未來業(yè)務(wù)發(fā)展的新的統(tǒng)一身份認(rèn)證與管理平臺。通過此平臺可以解決記密碼難的問題,認(rèn)證安全問題,多平臺集中登錄問題,同時增加日志審計(jì)模塊便于更好的實(shí)現(xiàn)信息審計(jì),為神東煤炭信息化高速公路奠定基礎(chǔ),為煤炭行業(yè)信息化集成提供解決方案。
關(guān)鍵詞:統(tǒng)一身份;單點(diǎn)認(rèn)證;CAS
中圖分類號:TP315 文獻(xiàn)標(biāo)志碼:A ? ? ? ? 文章編號:2095-2945(2020)31-0068-03
Abstract: Based on the increasing demand of enterprises for information technology, Shendong Coal Group Corporation has developed a lot of information systems for different business sections. The unified identity authentication and intercommunication of each system has become a problem that needs to be solved by the major business systems. In order to reduce the trouble of users recording different passwords and accounts of each system and deal withthe inconvenience brought by more systems to user and enterprise management,researchers of Shendong Coal Group Corporation analyzed the current situation of their corporationand based their research on the current trend of information development, thecharacteristics ofthe CAS Single Sign On source system, and the original system,thereby designed and developeda new unified identity authentication and management platform which conforms to the overall planning of Shendong Coal Group Corporation and adapts to the future business development. Through this platform, the problems of password recording, authentication security, and the centralized login of different platforms were solved. Meanwhile, the log audit module is added to facilitate the better implementation of information audit,thus laying the foundation for ShendongCoal Group Corporation and providing solutions for coal industry information integration
Keywords: unified identity; Single Sign On; CAS
1 概述
原神東統(tǒng)一身份認(rèn)證平臺僅支持WEB端的賬號密碼登錄,用戶需要記住賬號密碼,原系統(tǒng)賬號密碼未設(shè)置高安全級別規(guī)則。隨著移動應(yīng)用的普及應(yīng)用,原認(rèn)證系統(tǒng)無法實(shí)現(xiàn)手機(jī)APP與WEB端通過統(tǒng)一平臺認(rèn)證,原認(rèn)證平臺已無法滿足當(dāng)前企業(yè)信息化發(fā)展以及企業(yè)信息系統(tǒng)的整體規(guī)劃需要。由于原身份認(rèn)證的技術(shù)是CAS,為方便老系統(tǒng)無縫集成,本系統(tǒng)也基于CAS實(shí)現(xiàn)神東統(tǒng)一身份認(rèn)證,解決原有系統(tǒng)存在的問題以及適應(yīng)新的信息化發(fā)展要求,助力企業(yè)信息化整體的發(fā)展,保障信息系統(tǒng)身份認(rèn)證的安全與可靠。
2 需求說明
2.1 支持多種身份認(rèn)證
神東作為大型煤炭企業(yè),近4萬員工,需要通過信息平臺進(jìn)行業(yè)務(wù)處理,需要通過統(tǒng)一身份認(rèn)證平臺解決信息系統(tǒng)的身份認(rèn)證問題,神東統(tǒng)一身份認(rèn)證平臺需求是實(shí)現(xiàn)PC端、移動端、企業(yè)微信平臺身份認(rèn)證系統(tǒng)集中統(tǒng)一,根據(jù)平臺特點(diǎn)實(shí)現(xiàn)用戶賬號/身份證號/員工編碼與密碼登錄、手機(jī)APP/企業(yè)微信掃碼登錄、短信驗(yàn)證碼登錄、企業(yè)微信平臺鑒權(quán)登錄等多種認(rèn)證模式,簡化認(rèn)證流程,多平臺身份認(rèn)證互通,最大化支持多種認(rèn)證模式,便于用戶訪問多個應(yīng)用系統(tǒng)。
2.2 支持移動APP與H5身份認(rèn)證合并
通過平臺能使得APP認(rèn)證后原生應(yīng)用與H5應(yīng)用身份認(rèn)證統(tǒng)一,便于多端、跨平臺的應(yīng)用合并,解決移動端身份認(rèn)證難題。
3 系統(tǒng)架構(gòu)設(shè)計(jì)
3.1 CAS工作原理
CAS(Central Authentication Service)是由耶魯大學(xué)發(fā)起的一個企業(yè)級的、開源的項(xiàng)目,為WEB應(yīng)用提供可信任的身份單點(diǎn)認(rèn)證服務(wù)。
TGT:TGT是CAS為用戶簽發(fā)的登錄票據(jù),擁有了TGT,用戶就可以證明自己在CAS成功登錄過。
TGC:存放用戶身份認(rèn)證憑證的cookie,在瀏覽器和CAS Server間通訊時使用,并且只能基于安全通道傳輸Https),是CAS Server用來明確用戶身份的憑證。
ST:客戶端應(yīng)用的憑證,不可重復(fù),時效短。
認(rèn)證過程:
(1)用戶訪問A系統(tǒng)資源,判斷無會話被CAS客戶端攔截,并重定向到CAS服務(wù)器,檢查無TGT則返回登錄頁面,并與server和ticket拼接成url返回等待用戶登錄。(2)用戶輸入登錄信息后提交,服務(wù)器接收驗(yàn)證是否有效,有效后返回重定向到server后A資源地址,并設(shè)置CAS服務(wù)器域cookies的TGC,A系統(tǒng)帶著ticket與CAS服務(wù)器驗(yàn)證票是否有效,有效后綁定會話與用戶信息,再次訪問A系統(tǒng)則可以正常訪問。(3)上述通過后在B系統(tǒng)資源時,判斷會話不存在重定向到單點(diǎn)登錄地址,判斷存在TGC,攜帶到服務(wù)器認(rèn)證,判斷用戶登錄過了,則不需要再次登錄即可訪問B系統(tǒng)資源。
3.2 系統(tǒng)架構(gòu)設(shè)計(jì)
原有的系統(tǒng)實(shí)現(xiàn)認(rèn)證方式單一不靈活,隨著更安全高效的認(rèn)證模式的發(fā)展以及認(rèn)證途徑的多樣化,本系統(tǒng)架構(gòu)在原有的基礎(chǔ)上進(jìn)行了優(yōu)化與升級,方便快速構(gòu)建新的認(rèn)證方式,基于SOA架構(gòu)設(shè)計(jì),采用java語言開發(fā),使用關(guān)系數(shù)據(jù)庫及緩存技術(shù)實(shí)現(xiàn),通過身份認(rèn)證模塊接口實(shí)現(xiàn)多種不同方式的身份認(rèn)證,滿足適合本企業(yè)個性化的認(rèn)證需求,最終通過CAS實(shí)現(xiàn)統(tǒng)一身份認(rèn)證。系統(tǒng)數(shù)據(jù)層通過緩存技術(shù)實(shí)現(xiàn)數(shù)據(jù)層的訪問與校驗(yàn),提升認(rèn)證速度,優(yōu)化用戶體驗(yàn),提高系統(tǒng)訪問并發(fā)量,實(shí)現(xiàn)大負(fù)載高可用。
4 系統(tǒng)功能設(shè)計(jì)
系統(tǒng)功能主要是基于CAS認(rèn)證中心,通過接口開發(fā)的獨(dú)立的神東身份認(rèn)證模塊,此模塊可根據(jù)需要集成當(dāng)前流行的各種認(rèn)證方式,具有較好的擴(kuò)展性,后期用戶開發(fā)時勿須研究復(fù)雜的CAS認(rèn)證過程,只需要基于神東身份認(rèn)證模塊開發(fā)新的認(rèn)證接口即可。本系統(tǒng)將結(jié)合企業(yè)自身特點(diǎn),以及用戶使用信息系統(tǒng)的習(xí)慣,實(shí)現(xiàn)如下幾個功能模塊。
4.1 賬號密碼認(rèn)證
基于傳統(tǒng)的身份認(rèn)證方式,為了更好的與舊系統(tǒng)過渡,保留原普通賬號密碼認(rèn)證方式,同時提高密碼強(qiáng)度校驗(yàn)規(guī)則,對于弱口令用戶強(qiáng)制按新密碼規(guī)則修改,密碼規(guī)則包含大小寫字母、數(shù)字、特殊字符。長度不少于8位。
4.2 企業(yè)微信掃碼認(rèn)證
通過企業(yè)微信用戶掃描二維碼,通過企業(yè)微信用戶信息與二維碼token信息進(jìn)行綁定,后臺校驗(yàn)用戶身份,實(shí)現(xiàn)企業(yè)微信掃碼后系統(tǒng)自動登錄功能。該功能的實(shí)現(xiàn),將免除用戶在瀏覽器中輸入賬號密碼,減少賬號密碼被盜的風(fēng)險(xiǎn)提高了用戶認(rèn)證的安全性,因企業(yè)微信的安全可靠性,用戶經(jīng)常使用企業(yè)微信后,將不需要再記住大量的賬號與密碼,解決用戶登錄應(yīng)用系統(tǒng)的煩惱。
4.3 移動APP掃碼認(rèn)證
自動生成二維碼,二維碼設(shè)置2分鐘有效期,超時后重新生成,二維碼由系統(tǒng)隨機(jī)生成,系統(tǒng)通過代碼實(shí)現(xiàn)判斷是否掃碼并確認(rèn)登錄,如確認(rèn)登錄,則系統(tǒng)自動登錄認(rèn)證并綁定用戶信息。
移動APP掃碼功能同企業(yè)微信掃碼功能類似,是基于自建APP掃碼實(shí)現(xiàn),該功能也是通過統(tǒng)一身份認(rèn)證平臺身份認(rèn)證,通過APP掃碼實(shí)現(xiàn)WEB端免密的登錄認(rèn)證方式,此種方式將采用token交換的方式解決登錄認(rèn)證的安全性。
4.4 移動APP通過企業(yè)微信認(rèn)證
神東自建移動APP登錄認(rèn)證方式除了支持傳統(tǒng)的賬號密碼登錄方式,還支持通過企業(yè)微信的sdk一鍵登錄,企業(yè)微信為企業(yè)內(nèi)部的溝通工具,認(rèn)證機(jī)制很安全,移動APP基于企業(yè)微信一鍵登錄,實(shí)現(xiàn)APP端用戶身份認(rèn)證。此功能不需要記住任何用戶名密碼即可實(shí)現(xiàn)認(rèn)證,后臺通過統(tǒng)一的身份鑒權(quán)模塊,最終實(shí)現(xiàn)單點(diǎn)統(tǒng)一認(rèn)證,認(rèn)證成功后,再次進(jìn)入APP后將不再需要登錄,通過靜默登錄功能實(shí)現(xiàn)免登錄。
4.5 短信驗(yàn)證碼掃碼認(rèn)證
短信驗(yàn)證是當(dāng)前較流行的簡單認(rèn)證方式,通過短信接口實(shí)現(xiàn)短信驗(yàn)證碼的發(fā)送,設(shè)置短信驗(yàn)證碼的有效期為1分鐘,可多次發(fā)送驗(yàn)證碼,為確保短信驗(yàn)證安全,后臺會發(fā)送驗(yàn)證token至客戶端,需要客戶提交登錄時發(fā)送到后臺進(jìn)行token校驗(yàn),為確保安全,驗(yàn)證碼指定有效期,過期后不能通過認(rèn)證。移動端短信驗(yàn)證通過一鍵獲取手機(jī)號的方式,驗(yàn)證用戶信息,驗(yàn)證手機(jī)號用戶狀態(tài),通過后自動發(fā)送短信驗(yàn)證碼,為了便于用戶填寫驗(yàn)證碼,系統(tǒng)支持剪切板自動錄入短信驗(yàn)證碼,實(shí)現(xiàn)用戶快速登錄的目標(biāo),此功能極大提高了用戶認(rèn)證的速度,提高了用戶體驗(yàn)。
4.6 十天免登錄
十天免登錄功能基于用戶經(jīng)常訪問系統(tǒng)時每次需要輸入登錄信息很浪費(fèi)時間,為了滿足登錄設(shè)備相對固定,安全意識強(qiáng)的用戶需要,針對部分用戶單獨(dú)授權(quán)實(shí)現(xiàn)十天免登錄,通過勾選免登錄選項(xiàng),實(shí)現(xiàn)十天免登錄,后期訪問系統(tǒng)直接認(rèn)證通過,后臺記錄登錄人ip信息與token驗(yàn)證信息,確保免登錄用戶信息不被偽造。免登錄信息在新的電腦登錄后,舊的電腦將不能自動免登錄,有效保證用戶登錄信息安全,不被非法用戶使用。
4.7 登錄審計(jì)日志
記錄用戶的登錄認(rèn)證方式,登錄成功與否,登錄用戶的客戶端信息如瀏覽器、分辨率、操作系統(tǒng)等信息,便于分析用戶登錄數(shù)據(jù),以便更好的優(yōu)化升級系統(tǒng)。
為確保統(tǒng)一身份認(rèn)證平臺的安全,系統(tǒng)對登錄異常信息進(jìn)行分析。對于錯誤次數(shù)超過規(guī)定次數(shù)的訪問做拒絕處理。
4.8 移動APP靜默登錄認(rèn)證功能
移動端用戶第一次認(rèn)證通過后,后期用戶使用APP時,不再需要輸入驗(yàn)證信息進(jìn)行身份認(rèn)證。系統(tǒng)基于綁定用戶設(shè)備信息以及有效期內(nèi)的token信息共同識別后臺綁定的用戶信息,通過統(tǒng)一身份認(rèn)證平臺后臺實(shí)現(xiàn)靜默身份認(rèn)證,不需要用戶進(jìn)行任何操作即可實(shí)現(xiàn)身份鑒權(quán)的目標(biāo)。系統(tǒng)不僅有效解決了移動端原身份驗(yàn)證不能通過單點(diǎn)認(rèn)證的問題,而且解決了移動端webview應(yīng)用與移動端原生應(yīng)用共用一套身份證驗(yàn)證信息,避免多平臺使用多次認(rèn)證的麻煩,解決不同平臺系統(tǒng)集成的難題,實(shí)現(xiàn)一平臺多架構(gòu)的認(rèn)證機(jī)制,降低了神東移動業(yè)務(wù)集成難度。
4.9 密碼找回、修改功能
統(tǒng)一身份認(rèn)證平臺不僅支持用戶登錄認(rèn)證,同時支持用戶通過短信驗(yàn)證碼找回密碼與修改密碼。實(shí)現(xiàn)用戶密碼統(tǒng)一管理,弱口令密碼強(qiáng)制用戶提升安全級別。
5 系統(tǒng)部署
系統(tǒng)部署一套CAS認(rèn)證服務(wù)器,統(tǒng)一管理一套組織機(jī)構(gòu)、用戶名與密碼信息,通過緩存實(shí)現(xiàn)賬號登錄驗(yàn)證,提高了登錄認(rèn)證的速度,為了便于各子系統(tǒng)集成,統(tǒng)一用戶組織機(jī)構(gòu)與用戶信息,提供子系統(tǒng)用戶信息集成接口,統(tǒng)一維護(hù)機(jī)構(gòu)與用戶信息,減少多點(diǎn)維護(hù)造成的時間浪費(fèi)與數(shù)據(jù)不準(zhǔn)確的問題,使用一整套組織、人員數(shù)據(jù),使統(tǒng)一身份認(rèn)證信息統(tǒng)一可靠。
6 結(jié)束語
神東新統(tǒng)一身份認(rèn)證系統(tǒng)可以實(shí)現(xiàn)神東各業(yè)務(wù)系統(tǒng)一處登錄,多處漫游訪問,使用基于賬號密碼、短信驗(yàn)證碼、企業(yè)微信掃碼、移動APP掃碼等認(rèn)證方式解決多點(diǎn)的身份認(rèn)證問題,不再需要記錄很多用戶名密碼,甚至不需要知道用戶名密碼即可實(shí)現(xiàn)身份的鑒權(quán),解決了用戶登錄系統(tǒng)的麻煩。為了平臺能便于集成各大應(yīng)用系統(tǒng),使信息化系統(tǒng)的更好實(shí)施與落地,本系統(tǒng)采用較通用的認(rèn)證解決方案,適用于企業(yè)各大信息系統(tǒng)的統(tǒng)一身份認(rèn)證的需要。
新的身份認(rèn)證系統(tǒng)上線后,經(jīng)測試,能與現(xiàn)使用的企業(yè)微信平臺充分結(jié)合,擴(kuò)寬了身份認(rèn)證方式,實(shí)現(xiàn)了需求目標(biāo)。為了便于實(shí)現(xiàn)不同平臺的多渠道認(rèn)證,進(jìn)一步加強(qiáng)了系統(tǒng)接口的擴(kuò)展能力,有效解決了不同客戶端使用同一認(rèn)證方式的難題。未來將根據(jù)企業(yè)信息化發(fā)展需要不斷集成新的客戶端,真正實(shí)現(xiàn)一站式集中認(rèn)證,有效解決企業(yè)信息化發(fā)展的瓶頸,降低信息化項(xiàng)目實(shí)施成本。
參考文獻(xiàn):
[1]沈杰,朱程榮.基于Yale-CAS的單點(diǎn)登錄的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007(12):144-146.
[2]蘇國輝.基于CAS和LDAP的單點(diǎn)登錄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].自動化與儀器儀表,2017(010):101-103.
[3]孫甲泉.基于LDAP的CAS的校園統(tǒng)一身份認(rèn)證系統(tǒng)的研究[J].電腦知識與技術(shù),2013(2X):1318-1320.
[4]王崢.基于CAS構(gòu)建門戶平臺的單點(diǎn)認(rèn)證模型[D].北京大學(xué),2008.
[5]王興建,陳平,田小萍.基于微信企業(yè)號的掃碼認(rèn)證授權(quán)的設(shè)計(jì)與實(shí)現(xiàn)[A].中國計(jì)算機(jī)用戶協(xié)會網(wǎng)絡(luò)應(yīng)用分會.中國計(jì)算機(jī)用戶協(xié)會網(wǎng)絡(luò)應(yīng)用分會2018年第二十二屆網(wǎng)絡(luò)新技術(shù)與應(yīng)用年會論文集[C].中國計(jì)算機(jī)用戶協(xié)會網(wǎng)絡(luò)應(yīng)用分會:北京聯(lián)合大學(xué)北京市信息服務(wù)工程重點(diǎn)實(shí)驗(yàn)室,2018:4.
[6]譚立球,費(fèi)耀平,李建華.企業(yè)信息門戶單點(diǎn)登錄系統(tǒng)的實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005,31(17):102-104.
[7]秦怡,馬自衛(wèi).基于CAS模式的統(tǒng)一認(rèn)證與門戶管理的研究與實(shí)現(xiàn)[J].現(xiàn)代圖書情報(bào)技術(shù),2008(12):1-7.
[8]王水霞.神東業(yè)務(wù)協(xié)同平臺設(shè)計(jì)與實(shí)現(xiàn)[J].陜西煤炭,2013,32(002):49-51.
[9]張倩.基于SOA架構(gòu)的企業(yè)應(yīng)用集成的設(shè)計(jì)和實(shí)現(xiàn)[D].北京交通大學(xué),2008.
[10]廖露陽,郭兵.基于Android APP安全登錄認(rèn)證解決方案[J].現(xiàn)代計(jì)算機(jī),2016(12):9-12.
[11]景民昌,唐弟官.開放源碼的CAS單點(diǎn)登錄系統(tǒng)研究[J].現(xiàn)代情報(bào),2009,29(003):125-127.
[12]張冬冬.基于CAS實(shí)現(xiàn)的單點(diǎn)登錄模型的改進(jìn)及其應(yīng)用[D].吉林大學(xué),2011.