SSO 單點登陸

2021-08-22 02:47:54 字數 1351 閱讀 8478

1.單點登陸概述:

單點登入(single sign on),簡稱為 sso,是目前比較流行的企業業務整合的解決方案之一。sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。

很早期的公司,一家公司可能只有乙個server,慢慢的server開始變多了。每個server都要進行註冊登入,退出的時候又要乙個個退出。使用者體驗很不好!。如果不用單點登陸,你可以想象一下,上豆瓣 要登入豆瓣fm、豆瓣讀書、豆瓣電影、豆瓣日記……真的會讓人崩潰的。我們想要另一種登入體驗:一家企業下的服務只要一次註冊,登入的時候只要一次登入,退出的時候只要一次退出。怎麼做?

2.實現單點登陸理論:

想一下是不是只要server之間同步使用者資訊就行了?

什麼東西才是保持登入狀態關鍵的東西?記錄器(session)?那種叫做cookie的紙張?寫在紙張上的id? 是session裡面記錄的資訊跟那個id,cookie只不是記錄id的工具而已。客戶端持有id,服務端持有session,兩者一起用來保持登入狀態。客戶端需要用id來作為憑證,而服務端需要用session來驗證id的有效性(id可能過期、可能根本就是偽造的找不到對於的資訊、id下對應的客戶端還沒有進行登入驗證等)。但是session這東西一開始是每個server自己獨有的,豆瓣fm有自己的session、豆瓣讀書有自己的session,而記錄id的cookie又是不能跨域的。所以,我們要實現一次登入一次退出,只需要想辦法讓各個server的共用乙個session的資訊,讓客戶端在各個網域名稱下都能持有這個id就好了。

再進一步講,只要各個server拿到同乙個id,都能有辦法檢驗出id的有效性、並且能得到id對應的使用者資訊就行了,也就是能檢驗id。也就可以實現單點登陸。

3.實現單點理論:

server端(如何生成、驗證id的方式):

瀏覽器端:

4.技術實現機制:

當使用者第一次訪問應用系統的時候,因為還沒有登入,會被引導到認證系統中進行登入;根據使用者提供的登入資訊,認證系統進行身份校驗,如果通過校驗,應該返回給使用者乙個認證的憑據--ticket;使用者再訪問別的應用的時候,就會將這個ticket帶上,作為自己認證的憑據,應用系統接受到請求之後會把ticket送到認證系統進行校驗,檢查ticket的合法性。如果通過校驗,使用者就可以在不用再次登入的情況下訪問應用系統2和應用系統3了。

要實現sso,需要以下主要的功能:

5. sso優缺點

優點:缺點:

其他待整理的參考文章:

sso單點登陸

在乙個企業發展的過程中,用到的系統會慢慢增多,使用人員在多個系統中操作時需要登入各個系統,而且可能每個系統賬號都不一樣,這對使用人員來說很不方便,於是就產生了單點登入,在乙個系統登入其他的系統就不用登陸。在做單點登入之前先來回顧下單系統登入的操作,首先進入系統登入頁面,填寫登入資訊提交表單,系統後台...

SSO單點登陸

一句話,就是能讓各個不同的網域名稱帶回相同的認證資訊即可。實現方法,就是把其中乙個登陸後,把認證的資訊分別儲存在不同網域名稱下的 cookie,當在驗證是否登陸時,驗證 cookie,如果是子網域名稱,這個則直接用 cookie設定作用域為頂級即可。以下說的是不同的網域名稱,其中是用了 script...

單點登陸SSO原理介紹

sso 是乙個非常大的主題,我對這個主題有著深深的感受,自從廣州 usergroup 的論壇成立以來,無數都在嘗試使用開源的 cas kerberos 也提供另外一種方式的 sso 即基於 windows 域的 sso 還有就是從 2005 年開始一直興旺不衰的 saml 如果將這些免費的 sso ...