因為講了cookie,講了session,這裡我覺得有必要說一下單點登入。我們先來看一下什麼是單點登入:單點登入(single sign on),簡稱為 sso,是目前比較流行的企業業務整合的解決方案之一。sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。
舉例:上豆瓣,要登入豆瓣fm、豆瓣讀書、豆瓣電影、豆瓣日記,如果我們訪問豆瓣讀書、豆瓣電影、豆瓣日記都需要進行一次登入認證,那麼使用者體驗是非常不好的。所以引用了單點登入。只要一次登入就可以訪問所有相互信任的應用系統。
上圖實現的是如何使用cookie進行單點登入
客戶端持有id,服務端持有session,兩者一起用來保持登入狀態。客戶端需要用id來作為憑證,而服務端需要用session來驗證id的有效性。但是session這東西一開始是每個server自己獨有的,豆瓣fm有自己的session、豆瓣讀書有自己的session,而記錄id的cookie又是不能跨域的。所以,我們要實現一次登入一次退出,只需要想辦法讓各個server的共用乙個session的資訊,讓客戶端在各個網域名稱下都能持有這個id就好了。再進一步講,只要各個server拿到同乙個id,都能有辦法檢驗出id的有效性、並且能得到id對應的使用者資訊就行了,也就是能檢驗id。
用最早的「共享session」的方式還是現在的「token」方式,身份標識到了瀏覽器端都要面臨這樣的乙個問題:使用者登入成功拿到token(或者是session-id)後怎麼讓瀏覽器儲存和分享到其它網域名稱下?同網域名稱很簡單,我們可以把token存在cookie裡,把cookie的路徑設定成頂級網域名稱下,這樣所有子域都能讀取cookie中的token。這就是共享cookie的方式。
1、提高使用者的效率。 使用者不再被多次登入困擾,也不需要記住多個 id 和密碼。另外,使用者忘記密碼並求助於支援人員的情況也會減少。
2、提高開發人員的效率。 sso 為開發人員提供了乙個通用的身份驗證框架。實際上,如果 sso 機制是獨立的,那麼開發人員就完全不需要為身份驗證操心。他們可以假設,只要對應用程式的請求附帶乙個使用者名稱,身份驗證就已經完成了。
3、簡化管理。 如果應用程式加入了單點登入協議,管理使用者帳號的負擔就會減輕。簡化的程度取決於應用程式,因為 sso 只處理身份驗證。所以,應用程式可能仍然需要設定使用者的屬性(比如訪問特權)。
1、不利於重構 因為涉及到的系統很多,要重構必須要相容所有的系統,可能很耗時。
2、無人看守桌面 因為只需要登入一次,所有的授權的應用系統都可以訪問,可能導致一些很重要的資訊洩露。
什麼是單點登入
單點登入 single sign on 簡稱為 sso,是目前比較流行的企業業務整合的解決方案之一。sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。企業應用整合 當使用者第一次訪問應用系統1的時候,因為還沒有登入,會被引導到認證系統中進行登入 根據使用者提供的登...
什麼是CAS單點登入
早上遇到別人說的cas單點登入問題,俺在一旁一頭霧水,就看了一下什麼是cas單點登入,由於度娘上基本沒有關於什麼cas單點登入,都是說怎麼部署的,所以寫一下這篇東西記錄一下個人理解。實現原理 我的理解,就是例如乙個使用者先進入乙個應用a,會先訪問cas伺服器,cas發現其沒登入就要求其登入,登入後,...
單點登入是什麼
簡介 單點登入 single sign on 簡稱為 sso,是目前比較流行的企業業務整合的解決方案之一。sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。概述 很早期的公司,一家公司可能只有乙個server,慢慢的server開始變多了。每個server都要進行...