搜尋
首頁常見問題單一登入是什麼意思?

單一登入是什麼意思?

Jun 28, 2020 pm 04:38 PM
sso

單一登入SSO是指在多個應用系統中,使用者只需要登入一次就可以存取所有互信的應用系統,是企業業務整合的解決方案之一,其優點:1、提高使用者的效率;2、提高開發人員的效率;3、簡化管理。

單一登入是什麼意思?

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

一次註冊。一次註冊不難,想一下是不是只要Server之間同步使用者資訊就行了?可以,但這樣描述不太完整,後續講用戶註冊的時候詳細說。實際上使用者資訊的管理才是SSO真正的困難,只是作為初學者,我們的困難在於實現SSO的技術!我們先討論實現手段。

一次登入與一次登出。回頭看看普通商場的故事,什麼東西才是保持登入狀態關鍵的東西?記錄器(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;

##單一登入實作方法

server端

以server群如何產生、驗證ID的方式大致分為兩種:

「共享Cookie」這個就是上面提到的共享session的方式,我倒覺得叫「共享session」來好一點,本質上cookie只是儲存session-id的介質,session-id也可以放在每一個請求的url裡。據說這種方式不安全,我沒去細究,哪位大神可以推薦下相關的資料,我後期補上。其實也是,畢竟session這項機制一開始就是一個server一個session的,把session拿出來讓所有server共享確實有點奇怪。

SSO-Token方式因為共享session的方式不安全,所以我們不再以session-id作為身分的識別。我們另外產生一種標識,把它取名SSO-Token(或Ticket),這種標識是整個server群唯一的,並且所有server群都能驗證這個token,同時能拿到token背後代表的用戶的信息。我們要討論的也是這種方式,一會上具體流程圖。

瀏覽器端

單一登入還有非常關鍵的一步,這一步跟server端驗證token的方式無關,用最早的「共享session」的方式還是現在的「token 」方式,身分識別到了瀏覽器端都要面臨這樣的一個問題:使用者登入成功拿到token(或者是session-id)後怎麼讓瀏覽器儲存和分享到其它網域下?同域名很簡單,把token存在cookie裡,把cookie的路徑設定成頂級網域下,讓所有子網域都能讀取cookie中的token。這就是共享cookie的方式(這才叫共享Cookie嘛,上面那個應該叫共享session)。例如:Google公司,google.com是他的頂級域名,信箱服務的mail.google.com和地圖服務的map.google.com都是它的子網域。但是,跨域的時候怎麼辦?谷歌公司還有一個域名,youtube.com,提供視訊服務  。

推薦教學:《

PHP



#

以上是單一登入是什麼意思?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!