1、什麼是單點登陸SSO(Single Sign-On)安全
SSO是一種統一認證和受權機制,指訪問同一服務器不一樣應用中的受保護資源的同一用戶,只須要登陸一次,即經過一個應用中的安全驗證後,再訪問其餘應用中的受保護資源時,再也不須要從新登陸驗證。服務器
2、單點登陸解決了什麼問題框架
解決了用戶只須要登陸一次就能夠訪問全部相互信任的應用系統,而不用重複登陸。blog
3、單點登陸的技術實現機制資源
以下圖所示:開發
當用戶第一次訪問應用系統1的時候,由於尚未登陸,會被引導到認證系統中進行登陸;根據用戶提供的登陸信息,認證系統進行身份效驗,若是經過效驗,應該返回給用戶一個認證的憑據--ticket;用戶再訪問別的應用的時候,就會將這個ticket帶上,做爲本身認證的憑據,應用系統接受到請求以後會把ticket送到認證系統進行效驗,檢查ticket的合法性(4,6)。若是經過效驗,用戶就能夠在不用再次登陸的狀況下訪問應用系統2和應用系統3了。效率
從上圖能夠看出sso的實現技術點:登錄
1)全部應用系統共享一個身份認證系統。重構
統一的認證系統是SSO的前提之一。認證系統的主要功能是將用戶的登陸信息和用戶信息庫相比較,對用戶進行登陸認證;認證成功後,認證系統應該生成統一的認證標誌(ticket),返還給用戶。另外,認證系統還應該對ticket進行效驗,判斷其有效性。sso
2)全部應用系統可以識別和提取ticket信息
要實現SSO的功能,讓用戶只登陸一次,就必須讓應用系統可以識別已經登陸過的用戶。應用系統應該能對ticket進行識別和提取,經過與認證系統的通信,能自動判斷當前用戶是否登陸過,從而完成單點登陸的功能。
關於統一身份認證機制:以下圖
①用戶請求訪問業務系統。
②業務系統在系統中查看是否有對應請求的有效令牌,如有,則讀取對應的身份信息,容許其訪問;若沒有或令牌無效,則把用戶重定向到統一身份認證平臺,並攜帶業務系統地址,進入第③步。
③在統一身份認證平臺提供的頁面中,用戶輸入身份憑證信息,平臺驗證此身份憑證信息,如有效,則生成一個有效的令牌給用戶,進入第④步;若無效,則繼續進行認證,直到認證成功或退出爲止。
④用戶攜帶第③步獲取的令牌,再次訪問業務系統。
⑤業務系統獲取用戶攜帶的令牌,提交到認證平臺進行有效性檢查和身份信息獲取。
⑥若令牌經過有效性檢查,則認證平臺會把令牌對應的用戶身份信息返回給業務系統,業務系統把身份信息和有效令牌寫入會話狀態中,容許用戶以此身份信息進行業務系統的各類操做;若令牌未經過有效性檢查,則會再次重定向到認證平臺,返回第③步。
經過統一身份認證平臺獲取的有效令牌,能夠在各個業務系統之間實現應用漫遊。
4、單點登陸的優勢
1)提升用戶的效率。
用戶再也不被屢次登陸困擾,也不須要記住多個 ID 和密碼。另外,用戶忘記密碼並求助於支持人員的狀況也會減小。
2)提升開發人員的效率。
SSO 爲開發人員提供了一個通用的身份驗證框架。實際上,若是 SSO 機制是獨立的,那麼開發人員就徹底不須要爲身份驗證操心。他們能夠假設,只要對應用程序的請求附帶一個用戶名,身份驗證就已經完成了。
3)簡化管理。
若是應用程序加入了單點登陸協議,管理用戶賬號的負擔就會減輕。簡化的程度取決於應用程序,由於 SSO 只處理身份驗證。因此,應用程序可能仍然須要設置用戶的屬性(好比訪問特權)。
5、單點登陸的缺點
1)不利於重構
由於涉及到的系統不少,要重構必需要兼容全部的系統,可能很耗時
2) 無人看守桌面
由於只須要登陸一次,全部的受權的應用系統均可以訪問,可能致使一些很重要的信息泄露。