胡麗麗
摘要:本文設(shè)計實現(xiàn)了一個基于SSO的統(tǒng)一用戶管理系統(tǒng),闡述了系統(tǒng)的技術(shù)路線和框架,詳細(xì)描述了系統(tǒng)的分析,并簡要介紹系統(tǒng)的實現(xiàn)方法。最后介紹了統(tǒng)一用戶管理系統(tǒng)在政府用戶管理中的應(yīng)用,研究如何通過統(tǒng)一用戶管理系統(tǒng)為公眾和政府提供信息資源共享與服務(wù)。
關(guān)鍵詞:SSO;統(tǒng)一用戶管理;統(tǒng)一身份認(rèn)證;信息共享
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2017)10-0136-02
目前,政府信息化建設(shè)正快速發(fā)展,覆蓋政府部門業(yè)務(wù)的信息系統(tǒng)已不斷開發(fā)成熟并使用,諸如內(nèi)部OA系統(tǒng)、項目管理系統(tǒng)、政務(wù)服務(wù)管理系統(tǒng)等。而這些信息系統(tǒng)功能需求不一,開發(fā)大多是相互獨立的。這使得用戶完成某項工作需要進(jìn)入不同的系統(tǒng),而每一個系統(tǒng)大都需要用戶輸入用戶名、口令等驗證身份,這樣用戶就得面對多個系統(tǒng)的用戶名、密碼,給用戶訪問業(yè)務(wù)系統(tǒng)帶來了不便性。同時,用戶需要在各個應(yīng)用系統(tǒng)間頻繁切換登陸,業(yè)務(wù)操作的復(fù)雜性增加了,降低了工作效率。因此,需要設(shè)計一個能夠高度整合用戶信息的系統(tǒng),使得用戶能夠單點登陸,多點漫游,這樣基于SSO單點登錄的統(tǒng)一用戶管理系統(tǒng)就應(yīng)運而生。
1 系統(tǒng)架構(gòu)
1.1 技術(shù)路線
統(tǒng)一認(rèn)證和授權(quán)提供了對用戶的認(rèn)證、授權(quán)、加密等管理,對各接入系統(tǒng)提供SSO單點登錄接口,系統(tǒng)提供Web Service接口,同時支持xml和 json兩種數(shù)據(jù)格式來接入各應(yīng)用系統(tǒng);認(rèn)證模式采用基于OAuth2.0技術(shù)的票據(jù)和令牌認(rèn)證資源。
SSO單點登錄就是當(dāng)用戶訪問各子系統(tǒng)的應(yīng)用時,只需要提交一次認(rèn)證信息就可以訪問有訪問權(quán)限的應(yīng)用,從而簡化登錄過程,提高工作效率。通過放置反向代理服務(wù)器,完成所有用戶對后臺Web資源的訪問,可以與所有Web應(yīng)用進(jìn)行集成,與后臺的Web應(yīng)用建立連接,同時,在將用戶的登錄信息傳送給應(yīng)用的整個過程中保持著對用戶的透明性。只要用戶登陸了一次子系統(tǒng),便可以有權(quán)訪問所有的Web應(yīng)用,此過程由代理服務(wù)器完成。
1.2 系統(tǒng)框架
系統(tǒng)主要由兩部分組成,分別是統(tǒng)一身份管理子系統(tǒng)、統(tǒng)一認(rèn)證子系統(tǒng)。統(tǒng)一身份管理子系統(tǒng)主要完成用戶和組織機構(gòu)間關(guān)聯(lián)關(guān)系的構(gòu)建,其中,與用戶有從屬關(guān)系的組織機構(gòu)可以是縱向的,亦可是橫向的;統(tǒng)一認(rèn)證子系統(tǒng)主要實現(xiàn)單點登錄令牌的創(chuàng)建與驗證。系統(tǒng)主要實現(xiàn)以下功能:
(1)組織和權(quán)限管理:統(tǒng)籌規(guī)劃省內(nèi)省直、市(縣區(qū))所關(guān)聯(lián)的所有行政單位,包括部門和工作組管理,統(tǒng)一配置橫向及縱向部門關(guān)聯(lián)信息,方便組織結(jié)構(gòu)代碼便捷易懂,無縫推送到各電子政務(wù)系統(tǒng)。
(2)用戶管理:實現(xiàn)用戶信息的統(tǒng)一管理,其中,這些用戶信息來源于組織機構(gòu)中各部門,包括登陸用戶名、登陸密碼、真實姓名、主組織、附屬組織、所屬角色及用戶順序等基本資料的管理。
(3)權(quán)限管理:包括應(yīng)用資源、角色管理及授權(quán)管理。應(yīng)用資源為接入到統(tǒng)一用戶管理系統(tǒng)中的各類政務(wù)應(yīng)用系統(tǒng);角色管理針對統(tǒng)一用戶管理系統(tǒng)中的用戶角色配置,非政務(wù)應(yīng)用系統(tǒng)中的角色配置;授權(quán)管理用于控制用戶能否訪問相應(yīng)的業(yè)務(wù)系統(tǒng),一般用戶同步給相關(guān)業(yè)務(wù)系統(tǒng)后就默認(rèn)能夠訪問。
(4)安全認(rèn)證管理:針對電子政務(wù)有效性、機密性、完整性、不可抵賴性與審查能力五個方面的安全需求,系統(tǒng)需提供相關(guān)接口實現(xiàn)安全認(rèn)證。
2 系統(tǒng)的功能設(shè)計
根據(jù)系統(tǒng)架構(gòu)的分析設(shè)計,統(tǒng)一用戶管理系統(tǒng)主要基于SSO技術(shù),為用戶提供訪問各應(yīng)用系統(tǒng)相應(yīng)權(quán)限內(nèi)資源入口,實現(xiàn)信息系統(tǒng)間互聯(lián)互通。下面具體分析一下統(tǒng)一身份管理子系統(tǒng)和統(tǒng)一認(rèn)證子系統(tǒng)的功能與設(shè)計方法。
2.1 統(tǒng)一身份管理子系統(tǒng)的設(shè)計
統(tǒng)一身份管理子系統(tǒng)實現(xiàn)用戶、角色、組織、部門、組、資源(即業(yè)務(wù)系統(tǒng))的統(tǒng)一管理。
統(tǒng)一身份管理子系統(tǒng)具有分級分權(quán)管理的功能,即由組織、部門管理員按照系統(tǒng)管理員授予的權(quán)限,管理本地、本部門的用戶信息,如下級單位的管理員可以管理本級人員和策略等。用戶則可以根據(jù)需要做自助服務(wù),如更改自己的密碼或個人信息。如果用戶修改了密碼,則會自動更新到各應(yīng)用系統(tǒng)中 。
新用戶需在用戶資源庫中注冊用戶身份信息,然后由統(tǒng)一用戶管理系統(tǒng)管理員分配可使用資源給用戶,由業(yè)務(wù)系統(tǒng)管理員配置用戶在業(yè)務(wù)系統(tǒng)中的權(quán)限。系統(tǒng)監(jiān)控用戶身份信息數(shù)據(jù)庫,當(dāng)用戶身份信息或可使用資源發(fā)生變化時,自動觸發(fā)身份管理子系統(tǒng)中預(yù)先制定的流程,將用戶信息自動配給各應(yīng)用系統(tǒng)中。如用戶修改了密碼,將會觸發(fā)密碼更新工作流將密碼自動更新到各應(yīng)用系統(tǒng)中。
2.2 統(tǒng)一認(rèn)證子系統(tǒng)的設(shè)計
單點登陸技術(shù)的實現(xiàn)包括令牌的創(chuàng)建與驗證,該過程由統(tǒng)一認(rèn)證子系統(tǒng)完成。主要流程如下:通過底層的SSO認(rèn)證模塊,用戶通過驗證,此時,該用戶在用戶頁面獲得認(rèn)證子系統(tǒng)創(chuàng)建的一個單點登陸令牌ID,令牌ID由cookie返回得到;當(dāng)該用戶訪問其他已關(guān)聯(lián)應(yīng)用系統(tǒng)時,cookie傳遞登陸令牌ID,正被登陸的應(yīng)用系統(tǒng)令牌ID還原登錄令牌,并向SSO驗證令牌是否有效。如果有效,則該應(yīng)用系統(tǒng)可以直接獲取用戶身份信息,而不再需要用戶進(jìn)行再次認(rèn)證。
為實現(xiàn)在復(fù)雜環(huán)境下的單點登錄,統(tǒng)一認(rèn)證子系統(tǒng)提供了LDAP(用戶名口令)認(rèn)證、自注冊認(rèn)證和匿名認(rèn)證等內(nèi)置的認(rèn)證方式,設(shè)計了基于SDK/Web Service/HTTP接口的動態(tài)票據(jù)單點登錄、基于SDK/Web Service/HTTP接口的用戶名密碼單點登錄、基于Agent的單點登錄和基于HTTP重定向技術(shù)表單方式的單點登錄。圖1為統(tǒng)一認(rèn)證子系統(tǒng)體系結(jié)構(gòu)圖。
統(tǒng)一認(rèn)證子系統(tǒng)提供了兩種用戶認(rèn)證界面,可以是基于C/S客戶端的,也可以是基于WEB的 。用戶認(rèn)證界面動態(tài)生成,不同用戶登陸將顯示不同的系統(tǒng)列表,其中,列表由單點登陸系統(tǒng)根據(jù)不同的用戶、組織和客戶端特色化生成,搜集了用戶認(rèn)證信息。用戶界面向最終用戶顯示登陸表單,并將用戶認(rèn)證信息傳回服務(wù)器端。服務(wù)器端調(diào)用平臺的接口API進(jìn)行認(rèn)證。endprint
統(tǒng)一認(rèn)證子系統(tǒng)提供認(rèn)證接口,以便實現(xiàn)其他的業(yè)務(wù)系統(tǒng)與其集成,實現(xiàn)用戶認(rèn)證信息的共享。一旦新的應(yīng)用系統(tǒng)通過接口完成集成,只要用戶通過一次認(rèn)證,用戶信息即可被被集成系統(tǒng)認(rèn)可。其中,新的接入系統(tǒng)無需建立用戶數(shù)據(jù)庫,只在LDAP中擁有一套用戶身份信息(用戶名和密碼,或數(shù)字證書標(biāo)識)即可。
統(tǒng)一認(rèn)證子系統(tǒng)提供Web Service/Http接口,與應(yīng)用系統(tǒng)的開發(fā)語言無關(guān)的需求。為了保證認(rèn)證過程的安全可靠,可以通過使用https對對會過程進(jìn)行加密。
3 系統(tǒng)的實現(xiàn)
根據(jù)系統(tǒng)的模塊分析和設(shè)計,通過采用開發(fā)工具M(jìn)yEclipse8.5,Web服務(wù)器Tomcat7, 存儲管理數(shù)據(jù)庫Oracle,實現(xiàn)統(tǒng)一用戶管理系統(tǒng)的開發(fā)。基于J2EE標(biāo)準(zhǔn)框架,系統(tǒng)通過Bean層、Dao層、Service層和Action層的大量代碼的實現(xiàn),并以大量Jsp頁面展示,通過Struts、Spring、Hibernate及web服務(wù)文件配置,實現(xiàn)了統(tǒng)一用戶管理系統(tǒng)的功能開發(fā)[1]。其中,系統(tǒng)提供基于Web Service和HTTP的兩種API認(rèn)證接口,API接口認(rèn)證方式和接入系統(tǒng)采用的平臺和語言無關(guān)。系統(tǒng)通過commnetAuth和easyAuth兩套認(rèn)證流程,保障用戶的信息安全,控制保障數(shù)據(jù)的隱私性。
4 思考
統(tǒng)一用戶的管理應(yīng)用于多個方面,存在的問題不少,如何有效實現(xiàn)用戶信息整合,全網(wǎng)互聯(lián)互通,保障用戶信息安全,必須做好各項標(biāo)準(zhǔn)規(guī)范的研究和制定,安全管理認(rèn)證流程。各級政府、各部門的信息化水平程度不一,在系統(tǒng)的設(shè)計和實施上要充分考慮到他們的差異性,盡可能多地提供認(rèn)證方式、接口技術(shù),保障系統(tǒng)的順利建設(shè)。
目前,全國各級政府都在建設(shè)統(tǒng)一用戶管理系統(tǒng)(平臺),如何利用本系統(tǒng)實現(xiàn)省、市級用戶管理系統(tǒng)共建共享,這不僅節(jié)約財政投資,還可以實現(xiàn)用戶數(shù)據(jù)的共享與交換,能切實為公眾和政府提供信息資源共享與服務(wù)[2]。
5 結(jié)語
立足于政府業(yè)務(wù)系統(tǒng)用戶管理的需要,統(tǒng)一用戶管理系統(tǒng)的設(shè)計與實現(xiàn),提供組織和用戶管理、統(tǒng)一認(rèn)證、單點登錄、登錄入口等服務(wù),提高政府處理業(yè)務(wù)的協(xié)同能力,降低用戶使用業(yè)務(wù)系統(tǒng)的門檻。
參考文獻(xiàn)
[1]杜聚賓.搞定J2EE:Struts+Spring+Hibernate整合詳解與典型案例[M].北京:電子工業(yè)出版社,2012.
[2]陳海倫.基于SSH框架的信用信息管理系統(tǒng)的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2015,(4X):74-75.endprint