實現機制
當用戶第一次訪問套用系統1的時候,因為還沒有登錄,會被引導到認證系統中進行登錄;根據用戶提供的登錄信息,認證系統進行身份校驗,如果通過校驗,應該返回給用戶一個認證的憑據--ticket;用戶再訪問別的套用的時候就會將這個ticket帶上,作為自己認證的憑據,套用系統接受到請求之後會把ticket送到認證系統進行校驗,檢查ticket的合法性。如果通過校驗,用戶就可以在不用再次登錄的情況下訪問套用系統2和套用系統3了。
要實現SSO,需要以下主要的功能:
系統共享
統一的認證系統是SSO的前提之一。認證系統的主要功能是將用戶的登錄信息和用戶信息庫相比較,對用戶進行登錄認證;認證成功後,認證系統應該生成統一的認證標誌(ticket),返還給用戶。另外,認證系統還應該對ticket進行校驗,判斷其有效性。
信息識別
要實現SSO的功能,讓用戶只登錄一次,就必須讓套用系統能夠識別已經登錄過的用戶。套用系統應該能對ticket進行識別和提取,通過與認證系統的通訊,能自動判斷當前用戶是否登錄過,從而完成單點登錄的功能。
另外:
1、單一的用戶信息資料庫並不是必須的,有許多系統不能將所有的用戶信息都集中存儲,應該允許用戶信息放置在不同的存儲中,事實上,只要統一認證系統,統一ticket的產生和校驗,無論用戶信息存儲在什麼地方,都能實現單點登錄。
2、統一的認證系統並不是說只有單個的認證伺服器
當用戶在訪問套用系統1時,由第一個認證伺服器進行認證後,得到由此伺服器產生的ticket。當他訪問套用系統2的時候,認證伺服器2能夠識別此ticket是由第一個伺服器產生的,通過認證伺服器之間標準的通訊協定(例如SAML)來交換認證信息,仍然能夠完成SSO的功能。
WEB-SSO
用戶在訪問頁面1的時候進行了登錄,但是客戶端的每個請求都是單獨的連線,當客戶再次訪問頁面2的時候,如何才能告訴Web伺服器,客戶剛才已經登錄過了呢?瀏覽器和伺服器之間有約定:通過使用cookie技術來維護套用的狀態。Cookie是可以被Web伺服器設定的字元串,並且可以保存在瀏覽器中。當瀏覽器訪問了頁面1時,web伺服器設定了一個cookie,並將這個cookie和頁面1一起返回給瀏覽器,瀏覽器接到cookie之後,就會保存起來,在它訪問頁面2的時候會把這個cookie也帶上,Web伺服器接到請求時也能讀出cookie的值,根據cookie值的內容就可以判斷和恢復一些用戶的信息狀態。Web-SSO完全可以利用Cookie技術來完成用戶登錄信息的保存,將瀏覽器中的Cookie和上文中的Ticket結合起來,完成SSO的功能。
為了完成一個簡單的SSO的功能,需要兩個部分的合作:
1、統一的身份認證服務。
2、修改Web套用,使得每個套用都通過這個統一的認證服務來進行身份校驗。
很多的網站都有用到SSO技術,
新浪的用戶登錄也是用到的SSO技術.
實現SSO的技術主要有:
(1)基於cookies實現,需要注意如下幾點:如果是基於兩個域名之間傳遞sessionid的方法可能在windows中成立,在unix&linux中可能會出現問題;可以基於資料庫實現;在安全性方面可能會作更多的考慮。另外,關於跨域問題,雖然cookies本身不跨域,但可以利用它實現跨域的SSO。
(2) Broker-based(基於經紀人),例如Kerberos等;這種技術的特點就是,有一個集中的認證和用戶帳號管理的伺服器。經紀人給被用於進一步請求的電子的身份存取。中央資料庫的使用減少了管理的代價,並為認證提供一個公共和獨立的"第三方"。例如Kerberos,Sesame,IBM KryptoKnight(憑證庫思想)等。Kerberos是由麻省理工大學發明的安全認證服務,當前版本V5,已經被UNIX和Windows作為默認的安全認證服務集成進作業系統。
(3) Agent-based(基於代理人)在這種解決方案中,有一個自動地為不同的應用程式認證用戶身份的代理程式。這個代理程式需要設計有不同的功能。比如,它可以使用口令表或加密密鑰來自動地將認證的負擔從用戶移開。代理人被放在伺服器上面,在伺服器的認證系統和客戶端認證方法之間充當一個"翻譯"。例如SSH等。
(4) Token-based,例如SecurID,WebID,現在被廣泛使用的口令認證,比如FTP,郵件伺服器的登錄認證,這是一種簡單易用的方式,實現一個口令在多種套用當中使用。
(5) 基於網關Agent and Broker-based,這裡不作介紹。
(6) 基於安全斷言標記語言(SAML)實現,SAML(Security Assertion Markup Language,安全斷言標記語言)的出現大大簡化了SSO,並被OASIS批准為SSO的執行標準。開源組織OpenSAML 實現了 SAML 規範。
(7)CAS由耶魯大學開發的單點登錄系統(SSO,single sign-on),套用廣泛,具有獨立於平台的,易於理解,支持代理功能。
其他含義
SSO Sun-synchronous orbit太陽同步軌道的英文縮寫
SSO Ship Security Officer船舶保全員的英文縮寫
SSO Schedule of System Operation 系統運作時間表(常用於機電工程的前期規劃設計)
技術套用
技術實現
以金萬維單點登錄為例:如圖所示:統一的身份認證系統主要功能是將用戶的登錄信息和用戶信息庫相比較,判斷其有效性。整個系統可以存在兩個以上的認證伺服器,這些伺服器甚至可以是不同的產品。認證伺服器之間要通過標準的通訊協定,互相交換認證信息,就能完成更高級別的單點登錄。
套用優勢
單點登錄:用戶只需登錄一次,即可通過單點登錄系統(eTrueSSO)訪問後台的多個 套用系統,二次登入時無需重新輸入用戶名和密碼
C/S單點登錄解決方案:無需修改任何現有的套用系統服務端和客戶端即可實現C/S單點登錄系統
即裝即用:通過簡單的配置,無須用戶修改任何現有B/S、C/S套用系統即可使用
套用靈活性:內嵌金萬維動態域名解析系統(gnHost),可獨立實施,也可結合金萬維異速聯/天聯產品使用
基於角色訪問控制:根據用戶的角色和URL實現訪問控制功能
全面的日誌審計:精確地記錄用戶的日誌,可按日期、地址、用戶、資源等信息對日誌進行查詢、統計和分析
集群:通過集群功能,實現多台伺服器之間的動態負載均衡
傳輸加密:支持多種對稱和非對稱加密算法,保證用戶信息在傳輸過程中不被竊取和篡改
可擴展性:對後續的業務系統擴充和擴展有良好的兼容性
套用缺點
1)不利於重構
因為涉及到的系統很多,要重構必須要兼容所有的系統,可能很耗時
2) 無人看守桌面
因為只需要登錄一次,所有的授權的套用系統都可以訪問,可能導致一些很重要的信息泄露。
套用案例
存在問題
某某集團公司坐落於蘭州,在西藏、北京、上海等地擁有多個分子公司,並在全國各大城市設有辦事處,隨著業務的快速發展與壯大,集團公司已經意識到信息化是實現企業終極目標的重要手段,自2000年開始,公司先後實施了ERP、BPM、HR、EIP、企業郵局、騰訊通平台、OA、財務等 多套管理系統,實現公司各項業務流程及管理流程的信息化、自動化。然而,隨著業務數量的不斷增加,各系統之間互不兼容造成的信息共享性差、需要記憶多套密碼、客戶端維護成本高等問題日益凸顯,一些花巨資購買並實施數月的系統運用效果遠不如預期理想。
為了確保業務的高效運行與管理的高效執行,企業急需最佳化信息化方案:
第一, 如何實現公司各種業務流程及信息資源的全面整合?
第二, 如何簡化各種信息系統的使用方式,降低使用成本?
第三, 如何降低信息系統維護與管理成本?
解決方案
實現資源整合:
為了解決第一個問題,即實現各信息系統之間的全面整合,集團公司引進了企業信息門戶(EIP),即將各種套用系統(諸如ERP、BPM、HR、OA、企業郵局等)、數據資源和網際網路資源統一集到企業信息門戶之下,根據每個用戶使用特點和角色的不同,形成個性化的套用界面,並通過對事件和訊息的處理、傳輸把用戶有機地聯繫在一起。
簡化系統套用:
在實施EIP的過程中,集團公司使用單點登錄eTureSSO解決用戶需要記錄多個系統賬號的問題,用戶只需要在第一次訪問信息系統時,輸入用戶名與密碼,以後再訪問同一個系統資源時,無需再次輸入,由單點登錄系統自動登錄。
降低信息維護成本:
(E-SoonLink)實現C/S分散式軟體的集中式部署,將管理系統伺服器端與客戶端統一部署在客戶伺服器中心,任何授權客戶機都能夠以WEB形式訪問,並更新數據,輕鬆實現了系統在廣域網中的區域網路套用。集團在實施異速聯繫統之後,無需在每個用戶客戶機安裝每套信息系統的客戶端軟體,因此對客戶機硬體配置要求降低,另外,無需對每個客戶機進行安裝配置和維護,大大減少了安裝維護的工作量,降低了用戶數量日益增長所產生的信息化成本。
sso
在交換設備中表示基於狀態的切換與不停頓轉發一起使用(NSF/SSO) ,它具有如下特點:
Active/Standby主控板運行在同步模式
冗餘的MSFC處於hot-standby模式
交換機處理器同步二層連線埠的狀態信息
PFCs同步L2/L3的FIB轉發信息庫,Netflow和ACL訪問控制表
1.Active/Standby主控板運行在同步模式
2.冗餘的MSFC處於hot-standby模式
3.交換機處理器同步二層連線埠的狀態信息
4.PFCs同步L2/L3的FIB轉發信息庫,Netflow和ACL訪問控制表
Learn how to enable nonstop forwarding with stateful switchover (NSF/SSO).Config SSO first
Router> enable
Router# configure terminal
Router(config)# redundancy
Router(config-red)# mode sso
Router(config-red)# end
Router# show redundancy states
Multicast MLS on by default
enable in routing process
router(config)#router ospf 120
router(config-router)nsf
e.g.:NSF/SSO: MPLS VPN
Cisco Catalyst 4500 E-Series High Availability
NSF/SSO: L2VPN Pseudowire Redundancy
保護SSO 讓vSphere更穩固
簡單說,你可以設定一個HA備份節點,在主SSO失效時接管SSO功能。這種方式需要占用更多伺服器資源,但需要的基礎設施資源已經很便宜,特別是虛擬化之後。VMware演示了如何使用免費的Apache軟體創建基本的SSO伺服器負載平衡組。要搭建一套帶負載平衡的SSO基礎設施,需要對證書和負載平衡技術有足夠的了解。
假定正在使用虛擬化基礎架構,任何承載SSO伺服器站點虛擬機的物理主機出現故障,SSO站點虛擬機都會通過HA機制從備份節點重新啟動,從而接管SSO功能。當然,這並不能修復配置錯誤。如果要應對配置錯誤的情形,快照非常有用,即使你因為配置失誤而把SSO弄丟了,你也可以很容易回滾快照進行恢復。只要你能決定,這種投入肯定是值得的。但可惜,即使是一些我曾經工作過的大型組織都沒有採用這類措施。如果有正常運行的HA系統,確實沒有必要。
如果需要運行多個站點並期望實現單一管理體系,方法會略有區別。多站點安裝過程需要在SSO安裝選項下拉,選擇多站點。從本質上說,使用多站點模式意味著在多主控模式下為每個站點設定了自己單獨的主節點。區別是,當您設定多站點模式時,你需要一個SSO伺服器將這些站點連結到一起。
這種安裝模式的一個潛在問題是,不同站點彼此之間將不會複製資料庫。在實際案例中,對於大多數站點,資料庫複製並不重要。資料庫偶爾會需要複製,但是只要你選擇外部獨立的身份驗證系統進行身份驗證,如OpenLDAP或微軟AD,就幾乎不會有這種複製需要。