(中車青島四方機車車輛股份有限公司,山東 青島 266111)
門戶系統需要利用統一的入口實現資源和應用集成,以便為用戶提供多層次的服務。登錄門戶系統時,用戶只需要登錄一次就可訪問多個應用系統,避免系統多次對用戶身份進行認證,從而為用戶獲取資源提供便利。因此,加強門戶系統單點登錄技術的研究,是系統提供一站式服務的重要基礎保障。
在大數據、云計算等信息技術取得快速發(fā)展的背景下,門戶系統可以完成統一協作平臺的建立,提供統一時搜索引擎,實現各種系統的連接以及數據的整合,為信息資源的整合利用提供了技術支撐。通過門戶系統,用戶可以對與之相關的業(yè)務系統進行訪問。按照傳統登錄方案,無論登錄哪個系統都要完成身份認證;在每個系統擁有單獨登錄信息的情況下,實現系統切換需要重新輸入登錄信息。在各種信息管理系統不斷增多的情況下,用戶需要記憶的信息也會增多,這就會導致用戶在登錄門戶系統時有較大的負擔,無法充分發(fā)揮系統集成資源的作用[1]。此外,用戶如果要完成多個系統的同時登錄,就需要完成復雜的操作。因此就給系統應用集成帶來困難,在影響用戶工作效率的同時,增加了系統出錯的概率。
結合門戶系統登錄存在的問題,研究人員加強了單點登錄技術的應用,將各系統身份認證步驟整合在一起,提供專門的身份認證服務,確保用戶通過1次登錄就可以在互信應用中隨意切換。單點登錄作為用戶管理機制的1種,能夠提供統一認證和授權行為的管理服務,用戶身份一經認證就可以授權給各種應用系統。從技術應用原理上來看,在用戶通過客戶端打開門戶系統的登錄窗口后,輸入的用戶名、密碼等將被系統服務器接收,經過驗證后順利進行系統登錄。在對門戶系統中的應用服務進行訪問時,系統可以完成賬號、密碼的自動匹配和校驗,實現系統之間用戶身份的快速認證,因此用戶無需重復輸入賬號密碼。
采用單點登錄方案,需要實現信息數據和界面的集成。針對門戶系統提供的基礎服務,采用抽取、重組和鏈接等技術實現系統之間信息流程的整合,對系統應用和數據進行集成。結合用戶需要,在門戶系統中展現的各類系統數據需要得到集成,確保應用界面、圖表等可以集中展示。根據用戶實際關注的內容,在門戶系統界面上進行各種應用的集中展示,能夠方便用戶實現各種系統的快速登錄,確保各種數據信息得到快速處理,進而為用戶獲取資源提供便利。
結合門戶系統的單點登錄技術方案,對各個應用系統擁有的認證模塊和權限控制模塊進行整合,完成門戶系統設計,實現對各種應用系統的統一訪問控制。從總體技術架構上來看,單點登錄技術架構由目錄接口層、目錄服務層和訪問接口層構成。在目錄接口層,可以實現各種系統用戶身份認證目錄服務器的連接。采用輕量級的目錄訪問協議,為各種系統提供數據信息交換接口,保證各系統的相互訪問需求能夠得到滿足。按照標準的LDAP協議標準,實現單點登錄的門戶系統可以與各種系統交互用戶的身份驗證信息,為系統之間用戶身份相互驗證功能的實現提供技術支持。在目錄服務層,需要采用微軟活動目錄服務技術提供統一驗證基準記錄;需要擁有完善配置的服務器來存儲用戶和系統的各種資源信息,同時也包括訪問權限信息可以在系統驗證用戶身份時提供參考標準[2]。在該層支撐下,門戶系統將擁有對各種連接系統的管理權限,因此可以為單點登錄技術的實現提供保障。在訪問接口層,需要集中提供認證服務的驗證接口模塊,對不同應用系統需要提供不同的模塊,以便利用應用程序實現接口服務的集中認證。
在門戶系統與各應用系統之間,采取了服務器-客戶端的通信模式,需要由服務器負責進行用戶信息數據的接收,然后為各應用系統提供成功登錄的證明。在整個過程中,系統需要完成加密數據庫的建立,從而實現用戶認證信息的存儲。在成功完成登錄半靜態(tài)調度(SPS)S驗證后,可以從加密數據庫中獲得用戶信息,用于訪問其他系統服務器。而在門戶系統數據庫中,需要存放登錄表單。在用戶第一次訪問階段,需要利用系統的應用程序對用戶登錄各種系統的信息進行集成,形成登錄表單(見表1),作為用戶通過門戶系統訪問各種應用系統的憑證。在應用程序中,需要對表單中的字段編號、順序等進行設置,確保用戶的登錄表單能夠自動生成,實現用戶不同賬戶信息的映射,必要時重新建立表單定向。在對數據庫中的憑證進行檢查時,采取適合的方式,從憑證存儲區(qū)獲取憑證,完成相應系統的登錄。
采用通用接口對應用程序進行調用,在用戶身份認證的基礎上保證數據傳輸的安全。實際應用中,在對用戶身份進行認證時,需要采用證書機制和安全套接層(SSL)代理機制,在完成信息認證后向應用系統傳輸信息。在SSL客戶端和服務器之間,需要監(jiān)理加密通道,保證數據安全傳輸。客戶端的界面操作,包括登錄代理、CA認證服務器、憑證數據庫、SSL通信、LDAP目錄服務器等。它可以用于用戶數字證書進行申請、保存和注銷的管理,以加強對用戶信息安全的保護。在各系統之間,擁有共享密鑰,數據庫與相應的認證服務被稱為密鑰分發(fā)中心。在登錄門戶系統后,經過密鑰分發(fā)中心成功認證的用戶可以獲得安全認證憑證,在訪問其他應用系統時出示這一憑證就可以獲得應用服務[3]。在第三方認證上,通過代理可以提供統一的認證機制,同時完成對已經應用的認證模塊的修改。
在用戶憑證的管理上,采用 LADP服務器進行憑證保存,其核心為目錄信息樹,他可以對用戶基本信息、權限角色信息等進行存儲。在用戶完成1次登錄后,可以獲得用戶登錄和授權信息,并在數據庫(DB)中保存。在通過標準目錄訪問協議接口進行系統登錄時,可以完成對目錄信息的訪問,實現用戶信息驗證,然后通過單點登錄完成各應用系統的統一登錄。對應用系統進行訪問時,認證服務器可以從LDAP服務器中獲取信息,并根據信息從數據庫中調取憑證,完成從用戶身份到憑證的映射。在信息映射方面,用戶注冊時可以生成全局唯一的ID,按照認證應用類型、訪問方式等在對應注冊文件中進行保存。采用標準接口,可以使后續(xù)應用系統的接入符合接口驗證標準,保證系統之間能夠順利實現信息交換。用戶登錄門戶系統后,可以利用憑證管理器實現對憑證對象的緩存。如果用戶需要對應用系統進行訪問,可以先通過管理器完成對憑證對象的查找,避免因反復創(chuàng)建憑證而導致系統運行效率過低。
在實現企業(yè)門戶系統開發(fā)方案的過程中,需要先對企業(yè)現有的各種應用系統的登錄功能進行改造,確保系統單點登錄技術能夠順利實現。具體來講,就是按照之前的技術路線對各業(yè)務系統進行集中改造,利用門戶系統使各種應用系統的多賬號問題得到解決。門戶系統部署在IBM L924服務器上,共包括2臺、而安全認證網關在獨立的IBM L922服務器上部署,各服務器統一配置Windows Server 2016系統,各系統連接用戶數最大能夠達到1 300。通過采用B/S架構,在門戶系統中對各系統的用戶管理和登錄管理等模塊進行集成;首先,對登錄網頁進行修改,將登錄界面及相關ID、密碼等代碼刪除;其次增設安全認證網關接口函數,可以通過調用函數對原本ID等代碼進行獲??;最后,采用URL地址將門戶系統網頁打開后,就可以完成絕對URL地址的設定,確保獲取的代碼可以順利傳遞至系統的主網頁。各應用系統的入口網頁和主網頁在相同的服務器上運行,并設置了相同的目錄,在客戶端登錄時將被安全認證網關隔離,難以利用內存實現ID等代碼的傳遞。因此,還要利用URL參數傳遞方式,并通過增設IP和加密,在服務器上建立相應的文該文件,利用字符序列進行加密和解密,使系統各層的安全漏洞得到有效解決。在從安全認證網關對證書管理系統的ID進行獲取時,需要保證其與用戶管理模板擁有相同的ID。直接利用接口函數獲取用戶ID,在關鍵信息輸入框里對ID等信息進行編輯,然后調用接口函數,并從目錄數據庫中獲取信息。在網關中將登陸頁面設定為門戶系統的入口頁面,然后將各應用系統的入口地址設定為安全認證網關,就可以完成對系統登錄的改造。
門戶系統與各應用系統間實現單點登錄,需做好對各應用系統主數據表的對照,保證用戶信息得到科學映射,從而建立相應的用戶映射表,為后續(xù)各種數據信息的調用和認證提供支持。
在各系統間開展臨時會話時,需要建立會話表,其中包括FlashID、FlashEID等通用字段以及對應系統的信息字段,確保信息數據可以在系統間正常傳遞。如圖1所示,通過做好主數據表的關系設置,可以使數據信息得到一一映射,為單點登錄功能的實現提供了數據支撐。采用單點登錄技術實現注冊操作,可以直接定向至注冊頁面、返回登錄頁面和自動生成ID。完成用戶信息創(chuàng)建后,會將驗證信息存儲到門戶系統儲存在用戶本地終端上的數據(Cookie)以及相關數據庫中,完成基本映射表的創(chuàng)建,使用戶主數據表的關系得到確認。在修改信息時,需要重新完成非關鍵信息和映射關系的設定,并對信息進行保存,傳入本地Cookie和臨時會話表并完成時域(Session)狀態(tài)變量的創(chuàng)建。利用門戶系統對用戶身份進行驗證,將自動生成Cookie和安全憑據(TSC)信息,利用Cookie和Session對用戶登錄狀態(tài)進行確認。TSC為安全憑據,可以作為用戶認證身份的憑據。而Cookie可以通過數據加密保證數據的安全,只要確認其驗證信息有效就可以根據Session中的變量進行業(yè)務系統加載。
表1 用戶登錄信息主表
用戶首次登錄任何一個應用系統時,在用戶名和密碼輸入后,系統將發(fā)起網絡會話,向門戶系統SSO發(fā)出登錄認證服務申請。如圖2所示,門戶系統根據站點請求,將對用戶名和密碼的合法性進行驗證,根據客戶端安全認證網關的目標地址對USB Key用戶證書進行獲取,傳遞給服務器確認是否合法。確認通過驗證后,可以生成TSC對會話用戶進行標識,并在臨時會話表中對站點標識符進行記錄。門戶系統將獲得的用戶信息數據和TSC返給應用系統后,子站應用系統可以完成系統登錄處理。如果請求無法通過驗證,應用系統只能接受到錯誤代碼。完成狀態(tài)碼校驗后,可以利用Cookie對驗證信息進行保存,并對相關數據進行記錄。未通過驗證,將提示登陸失敗。由于用戶注冊和認證都將在門戶系統中實現,因此各應用系統無需提供登錄服務,只需要通過門戶系統授權后就能實現單點登錄操作,讓用戶直接進入業(yè)務界面處理相關業(yè)務。
圖1 系統主數據表關系
圖 2 用戶身份首次驗證流程
實現單點登錄就意味用戶在完成一次登錄后,進入權限允許的其他應用系統時不需要再次登錄。因為此時用戶所在客戶端瀏覽器中存儲了之前登錄門戶系統后的Cookie,可以直接將Cookie發(fā)送至門戶系統完成認證。在實際操作時,需要利用站點Cookie開展網絡會話,驗證登錄狀態(tài),查找userset、Flashrun等映射表中的關鍵信息。確認用戶權限可以進行其他系統的登錄后,系統將跳轉至登錄界面實現自動登錄,使用戶在正常業(yè)務界面進行操作。如果用戶權限不允許,門戶系統將提示用戶無法完成登錄狀態(tài)轉移。
對單點登錄技術的實際效果進行分析,可以發(fā)現除首次登錄門戶系統網頁時響應速度較慢以外,其他實現登錄狀態(tài)轉移的操作可以在3 s~5 s獲得響應,可以達到理想的登錄效果。
采用單點登錄技術,要求用戶在完成系統操作后注銷退出,以免給系統使用的安全性帶來較大的威脅。在注銷操作時,同樣可以實現單點注銷,通過1次操作將所有應用系統中的臨時會話等信息刪除。在應用系統中點擊退出按鈕后,系統將向門戶系統發(fā)送注銷申請,并將本地會話取消。門戶系統根據申請,向之前用戶登錄的應用系統發(fā)出注銷指令,將系統隨機FlashID清除,確保其他登錄系統的運行代碼都處于終止狀態(tài),并恢復到原本的狀態(tài)值,繼而使用戶退出全部系統。
總的來說,單點登錄技術的應用,使用戶通過一次身份驗證就可以實現各種應用系統的切換登錄,為門戶系統的一站式服務提供了有效的保障,為用戶獲取信息資源提供了更便利的途徑。在實際應用中,單點登錄技術還需要不斷地探索與創(chuàng)新,通過制定科學的研究方案,提升單點登錄的技術水平,讓它為用戶帶來更好的操作體驗。