蘇星曄 徐方南
【摘 要】 隨著企業信息化的不斷發展,企業應用系統越來越趨于多樣化和復雜化,用戶對服務質量的要求也越來越高,統一身份認技術已成為各系統必不可少的一部分。本文通過對統一身份認技術中的單點登錄的相關技術進行研究,梳理了實現單點登錄的主要方式。
【關鍵詞】 統一身份認證 單點登錄
一、前言
隨著信息網絡技術的發展,許多企業都建立了大量的應用系統。由于每個應用系統都有各自的登錄界面和安全策略,用戶都需要單獨進行注冊后才能登錄。于是,用戶需要記憶與不同系統對應的用戶名和密碼來進行身份認證,這無疑增加了出錯的可能性及操作的復雜度。
因此,提出了統一身份認證的概念,即將不同的認證方式進行整合和統一,在多個應用系統中,用戶只需要認證身份一次,認證后就可以訪問具有相應權限的其他應用系統,從而實現單點登錄和統一身份認證。
二、單點登錄的實現方式
2.1基于cookie的方式
Cookie是Web服務器通過HTTP響應在客戶端瀏覽器中保存的信息,可以包含任何內容,但通常包含用戶會話狀態信息。目前,cookie已廣泛應用于Web中,如Microsoft的Passport單點登錄服務就是借助于cookie記錄來完成的。例如在同一個應用系統中,用戶在訪問頁面A時進行了登錄,Web服務器會設置一個cookie,并將這個cookie和頁面A一起返回給用戶的瀏覽器,瀏覽器接收cookie后,就會保存起來。
當用戶再次訪問頁面B時,Web服務器接收到請求可以讀取出用戶的cookie的值,根據cookie的值內容就可以獲得用戶的狀態信息,從而判斷出用戶是否能夠訪問頁面B。
2.2基于票據的方式
美國麻省理工學院于1993年推出了基于票據的單點登錄認證協議kerberos,該協議的特點就是,有一個管理用戶帳號的票據認證服務器,票據認證服務器扮演著經紀人的角色,所有的認證都是由它完成,并在成功認證操作之后生成的票據。
客戶端在訪問系統資源之前向票據認證服務器進行身份認證,當用戶通過身份認證后,票據認證服務器為用戶產生一張認證票據,并返回給用戶,用戶可以憑借這張認證票據來訪問所有授權的應用服務器。
2.3基于代理的方式
基于代理agent的單點登錄方法,通過在統一認證服務器部署一個進行代理認證的“代理”程序,當客戶端向應用服務器發送登錄請求時,自動地為不同的應用程序認證用戶身份,它可以使用口令表或加密密鑰來自動地將認證的負擔從用戶移開,從而,統一認證服務器充當了服務器的認證系統和客戶端認證方法之間的“翻譯”。
2.4基于網關的方式
基于安全網關的單點登錄,就是采用一個實現安全控制功能的Web反向代理作為用戶訪問部署在其后面的不同信息系統,應用系統的關卡(即網關),只有在安全網關完成身份鑒別的用戶才能通過安全網關訪問部署在其后面的系統。客戶端在通過網關認證后獲得訪問服務的權限,在訪問內網其它網站時,將不再需要重新輸入用戶名和密碼,由網關代替用戶填寫內部網站的用戶名和密碼,向內部網站提交認證信息,并將認證通過后網站返回的用戶登錄成功的Web頁面轉發給遠程用戶。該項技術也稱 “二次填表”,以代理網關為中心,要求對所有應用系統的身份認證和訪問都必須通過代理網關實現單點登錄,容易造成代理網關的效率問題甚至導致整個系統的癱瘓。
2.5基于SAML安全斷言標記語言的方式
目前主要有C/S架構系統與B/S架構系統用于實現單點登錄,C/S架構系統與B/S架構系統采用不同的平臺、不同的信息交互模式、而且業界廠商實現SSO方式多樣,存在各種使用場景的限制,難以兼容,因此很難實現統一的單點登錄功能。
而在互聯網的情境中,用戶期望這樣的能力,即從與一個域上的應用的交互跳轉到與另一域上的另一應用的交互,而極少關心每一特定域間的信息屏障。
在利用SAML進行單點登錄的方式中,統一身份認證服務器采用SAML安全斷言標記語言作為會話令牌,會話令牌中包括的用戶憑證通常由統一身份認證服務器進行數字簽名,這樣收到此會話令牌的網絡站點可以確認會話令牌發行者的身份,通過會話令牌就可以判斷認證斷言,從而認證了用戶端的用戶身份信息。
此后,用戶再次請求登錄其他網站時,只需向其他網站出示會話令牌即可。
三、結語
根據上述對實現單點登錄各種方式的分析,可以看到各方式的優缺點,具體如何選擇實現方式應結合具體工作的實際情況,確保統一身份認證系統的安全性、可靠性和高效性。
參 考 文 獻
[1]淡艷,尹謙,單點登錄系統模型分析,成都大學學報(自然科學報),2008年第2期:123-126.