一、概述
單點登錄( Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO 的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。
通常情況下運維內控審計系統、 4A 系統或者都包含此項功能,目的是簡化賬號登錄過程并保護賬號和密碼安全,對賬號進行統一管理。
企業應用集成(EAI, )。企業應用集成可以在不同層面上進行:例如在數據存儲層面上的“數據大集中” ,在傳輸層面上的“通用數據交換平臺” ,在應用層面上的“業務流程整合” ,和用戶界面上的“通用企業門戶”等等。事實上,還有一個層面上的集成變得越來越重要,那就是“身份認證”的整合,也就是“單點登錄” 。
在信息安全管理中,訪問控制( )環繞四個過程:;;;。單點登錄( Sign On)屬于 授權系統,除單點登錄外還包括: 和 。( E. (2011) Of )
二、技術實現機制
當用戶第一次訪問應用系統 1 的時候,因為還沒有登錄,會被引導到認證系統中進行登錄;根據用戶提供的登錄信息,認證系統進行身份效驗,如果通過效驗,應該返回給用戶一個認證的憑據--;用戶再訪問別的應用的時候,就會將這個 帶上,作為自己認證的憑據,應用系統接受到請求之后會把 送到認證系統進行效驗,檢查 的合法性。如果通過校驗,用戶就可以在不用再次登錄的情況下訪問應用系統 2 和應用系統 3 了。
三、技術實現及應用優勢3.1 技術實現
以金萬維單點登錄為例:
如圖所示:統一的身份認證系統主要功能是將用戶的登錄信息和用戶信息庫相比較,對用戶進行登錄認證;認證成功后,認證系統應該生成統一的認證標志(),返還給用戶。另外,認證系統還應該對 進行效驗,判斷其有效性。整個系統可以存在兩個以上的認證服務器,這些服務器甚至可以是不同的產品。認證服務器之間要通過標準的通訊協議,互相交換認證信息,就能完成更高級別的單點登錄。
3.2 應用優勢
單點登錄:用戶只需登錄一次單點登錄原理,即可通過單點登錄系統()訪問后臺的多個 應用系統,二次登錄時無需重新輸入用戶名和密碼C/S
單點登錄解決方案:無需修改任何現有的應用系統服務端和客戶端即可實現 C/S 單點登錄系統
即裝即用:通過簡單的配置,無須用戶修改任何現有 B/S、C/S 應用系統即可使用
應用靈活性:內嵌金萬維動態域名解析系統(),可獨立實施,也可結合金萬維異速聯/天聯產品使用基于角色訪問控制:根據用戶的角色和 URL 實現訪問控制功能
全面的日志審計:精確地記錄用戶的日志,可按日期、地址、用戶、資源等信息對日志進行查詢、統計和分析
集群:通過集群功能,實現多臺服務器之間的動態負載均衡
傳輸加密:支持多種對稱和非對稱加密算法,保證用戶信息在傳輸過程中不被竊取和篡改
可擴展性:對后續的業務系統擴充和擴展有良好的兼容性
3.3 存在的問題與需求
奇正藏藥集團公司坐落于蘭州,在西藏、北京、上海等地擁有多個分子公司,并在全國各大城市設有辦事處,隨著業務的快速發展與壯大,集團公司已經意識到信息化是實現企業終極目標的重要手段, 自 2000 年開始, 公司先后實施了 ERP、BPM、HR、EIP、企業郵局、騰訊通平臺、OA、財務等多套管理系統,實現公司各項業務流程及管理流程的信息化、自動化。然而,隨著業務數量的不斷增加,各系統之間互不兼容造成的信息共享性差、需要記憶多套密碼、客戶端維護成本高等問題日益凸顯,一些花巨資購買并實施數月的系統運用效果遠不如預期理
想。
為了確保業務的高效運行與管理的高效執行,企業急需優化信息化方案:
第一, 如何實現公司各種業務流程及信息資源的全面整合?
第二, 如何簡化各種信息系統的使用方式,降低使用成本?
第三, 如何降低信息系統維護與管理成本?
3.4 解決方案
實現資源整合:
為了解決第一個問題,即實現各信息系統之間的全面整合,集團公司引進了企業信息門戶(EIP),即將各種應用系統(諸如 ERP、BPM、HR、OA、企業郵局等)、數據資源和互聯網資源統一集到企業信息門戶之下,根據每個用戶使用特點和角色的不同,形成個性化的應用界面,并通過對事件和消息的處理、傳輸把用戶有機地聯系在一起。
簡化系統應用:
在實施 EIP 的過程中,集團公司使用金萬維單點登錄 解決用戶需要記錄多個系統賬號的問題,用戶只需要在第一次訪問信息系統時,輸入用戶名與密碼,以后再訪問同一個系統資源時,無需再次輸入,由單點登錄系統自動登錄。
降低信息維護成本:
金萬維異速聯(E-)實現 C/S 分布式軟件的集中式部署,將管理系統服務器端與客戶端統一部署在客戶服務器中心,任何授權客戶機都能夠以 WEB 形式訪問,并更新數據,輕松實現了系統在廣域網中的局域網應用。奇正藏藥集團在實施異速聯系統之后,無需在每個用戶客戶機安裝每套信息系統的客戶端軟件,因此對客戶機硬件配置要求降低,另外,無需對每個客戶機進行安裝配置和維護,大大減少了安裝維護的工作量,降低了用戶數量日益增長所產生的信息化成本。
四、單點登錄 SSO 的實現原理(來源 CSDN)
單點登錄 SSO( Sign On)說得簡單點就是在一個多系統共存的環境下,用戶在一處登錄后,就不用在其他系統中登錄,也就是用戶的一次登錄能得到其他所有系統的信任。單點登錄在大型網站里使用得非常頻繁,例如像阿里巴巴這樣的網站,在網站的背后是成百上千的子系統,用戶一次操作或交易可能涉及到幾十個子系統的協作,如果每個子系統都需要用戶認證,不僅用戶會瘋掉,各子系統也會為這種重復認證授權的邏輯搞瘋掉。實現單點登錄說到底就是要解決如何產生和存儲那個信任, 再就是其他系統如何驗證這個信任的有效性,因此要點也就以下幾個:
A.存儲信任
B.驗證信任
只要解決了以上的問題,達到了開頭講得效果就可以說是 SSO。最簡單實現 SSO 的方法就是用 ,實現流程如下所示:
不然發現以上的方案是把信任存儲在客戶端的 里,這種方法雖然實現方便但立馬會讓人質疑兩個問題:
A. 不安全
B. 不能跨域免登
對于第一個問題一般都是通過加密 來處理,第二個問題是硬傷,其實這種方案的思路的就是要把這個信任關系存儲在客戶端,要實現這個也不一定只能用 ,用 flash 也能解決,flash 的 API 就提供了存儲能力。一般說來,大型系統會采取在服務端存儲信任關系的做法,實現流程如下所示:
以上方案就是要把信任關系存儲在單獨的 SSO 系統(暫且這么稱呼它)里單點登錄原理,說起來只是簡單地從客戶端移到了服務端,但其中幾個問題需要重點解決:
A. 如何高效存儲大量臨時性的信任數據
B. 如何防止信息傳遞過程被篡改
C. 如何讓 SSO 系統信任登錄系統和免登系統
對于第一個問題,一般可以采用類似與 的分布式緩存的方案,既能提供可擴展數據量的機制,也能提供高效訪問。對于第二個問題,一般采取數字簽名的方法,要么通過數字證書簽名,要么通過像 md5 的方式,這就需要 SSO 系統返回免登 URL 的時候對需驗證的參數進行 md5 加密,并帶上 token 一起返回,最后需免登的系統進行驗證信任關系的時候,需把這個 token 傳給 SSO 系統,SSO 系統通過對 token 的驗證就可以辨別信息是否被改過。對于最后一個問題,可以通過白名單來處理,說簡單點只有在白名單上的系統才能請求生產信任關系,同理只有在白名單上的系統才能被免登錄。
以上只是提供了些簡單的實現技術,但需要強調的是這只是技術實現而已,僅僅是為了解決上面談到的一些問題,SSO 本身來說并不是什么高科技,有了這個認識比較有利于我們深入探索 SSO。