單點登錄(Single Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。
“共享html' target='_blank'>Cookie”即共享session的方式,本質上cookie只是存儲session-id的介質,session-id也可以放在每次請求的url里面.session機制是一個server一個session
SSO-Token方式是因為共享session的方式不安全,所以我們不再以session-id作為身份的標識,我們另外生成一種標識,把它取名為SSO-Token,這種標識在整個server群唯一的,所以所有的server群都能驗證整個token,同時拿到token 就代表拿到用戶的信息
瀏覽器端單點登錄還有非常關鍵的一步,這一步跟server端驗證token的方式無關,用最早的“共享session”的方式還是現在的“token”方式,身份標識到了瀏覽器端都要面臨這樣的一個問題:用戶登錄成功拿到token(或者是session-id)后怎么讓瀏覽器存儲和分享到其它域名下?同域名很簡單,把token存在cookie里,把cookie的路徑設置成頂級域名下,這樣所有子域都能讀取cookie中的token。這就是共享cookie的方式(這才叫共享Cookie嘛,上面那個應該叫共享session)。比如:谷歌公司,google.com是他的頂級域名,郵箱服務的mail.google.com和地圖服務的map.google.com都是它的子域。但是,跨域的時候怎么辦?谷歌公司還有一個域名,youtube.com,提供視頻服務[2] 。
技術實現的機制當用戶第一次訪問應用系統的時候,因為還沒有登錄,會被
引導到認證系統中進行登錄;根據用戶提供的登錄信息,認證系統進行身份校驗,如果通過校驗,應該返回給用戶一個認證的憑據--ticket;用戶再訪問別的應用的時候,就會將這個ticket帶上,作為自己認證的憑據,應用系統接受到請求之后會把ticket送到認證系統進行校驗,檢查ticket的合法性。如果通過校驗,用戶就可以在不用再次登錄的情況下訪問應用系統2和應用系統3了。
要實現SSO,需要以下主要的功能:
所有應用系統共享一個身份認證系統。
統一的認證系統是SSO的前提之一。認證系統的主要功能是將用戶的登錄信息和用戶信息庫相比較,對用戶進行登錄認證;認證成功后,認證系統應該生成統一的認證標志(ticket),返還給用戶。另外,認證系統還應該對ticket進行效驗,判斷其有效性。
所有應用系統能夠識別和提取ticket信息
要實現SSO的功能,讓用戶只登錄一次,就必須讓應用系統能夠識別已經登錄過的用戶。應用系統應該能對ticket進行識別和提取,通過與認證系統的通訊,能自動判斷當前用戶是否登錄過,從而完成單點登錄的功能。
相關推薦:
利用php實現簡單的后臺注冊登錄(附代碼)
以上就是如何使用PHP實現單點登錄的方法分析的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答