找人做彩票網(wǎng)站多少錢seo推廣論壇
單點(diǎn)登錄(Single Sign On,簡(jiǎn)稱 SSO)簡(jiǎn)單來說就是用戶只需在一處登錄,不用在其他多系統(tǒng)環(huán)境下重復(fù)登錄。用戶的一次登錄就能得到其他所有系統(tǒng)的信任。
為什么需要單點(diǎn)登錄
單點(diǎn)登錄在大型網(wǎng)站應(yīng)用頻繁,比如阿里旗下有淘寶、天貓等,用戶的一次操作或交易就可能涉及到其他眾多子系統(tǒng)的協(xié)作。使用單點(diǎn)登錄就可以讓用戶登錄一次,免去頻繁登錄授權(quán)的苦惱。
早期的單系統(tǒng)登錄
用戶在登錄界面輸入自己的用戶名和密碼之后,瀏覽器向服務(wù)器發(fā)送登錄請(qǐng)求,服務(wù)器驗(yàn)證通過用戶信息后放入 session,并將 sessionId 放入 Cookie,隨后返回給瀏覽器。登錄過后的請(qǐng)求都將在 Cookie 中攜帶 sessionId,服務(wù)器通過 sessionId 獲取用戶信息,最后返回響應(yīng)信息。
單點(diǎn)登錄的實(shí)現(xiàn)方式
如果一處登錄的 session 能夠共享,那么多個(gè)應(yīng)用系統(tǒng)之間的登錄狀態(tài)也可以共享了。所以單點(diǎn)登錄的關(guān)鍵在于,如何讓 sessionId (或 Token)在多個(gè)域中共享。
同域下的單點(diǎn)登錄
一個(gè)企業(yè)一般情況下只有一個(gè)域名,子系統(tǒng)使用二級(jí)域名。比如百度搜索是一級(jí)域名:https://www.baidu.com,貼吧使用的是二級(jí)域名https://tieba.baidu.com。如果我們要實(shí)現(xiàn)單點(diǎn)登錄,可以將 Cookie 的域設(shè)置為頂域,即 https://www.baidu.com,這樣其余的子域系統(tǒng)都可以訪問頂域的 Cookie 了。
當(dāng)然,上面做法缺點(diǎn)也很明顯,它不支持跨域。這還不是真正的單點(diǎn)登錄。
不同域下的單點(diǎn)登錄
要實(shí)現(xiàn)不同域下的單點(diǎn)登錄, 我們需要一個(gè) SSO 認(rèn)證中心來專門處理登錄請(qǐng)求。所有的請(qǐng)求(登錄、退出、獲取用戶信息、當(dāng)前用戶狀態(tài))都請(qǐng)求 SSO 系統(tǒng),SSO 系統(tǒng)維護(hù)用戶信息。流程如下:
首次登錄時(shí):
- 用戶登錄某應(yīng)用網(wǎng)站,瀏覽器將用戶的登錄重定向到 SSO 認(rèn)證中心
- SSO 進(jìn)行檢查和校驗(yàn)是否有現(xiàn)有的 SSO Cookie
- 由于首次登錄,并且用戶瀏覽器不存在 SSO Cookie,因此請(qǐng)求用戶使用 SSO 配置的連接登錄。
- 用戶登錄后,將設(shè)置 SSO Cookie,用戶將被重定向到應(yīng)用程序,并使用包含用戶相關(guān)的身份信息的令牌(Token)
后續(xù)登錄中:
-
應(yīng)用網(wǎng)站將用戶重定向到 SSO 認(rèn)證中心
-
SSO 認(rèn)證中心 檢查是否存在現(xiàn)有的 SSO Cookie
-
SSO 認(rèn)證中心驗(yàn)證 SSO Cookie 是否有效
-
無效,用戶被重定向到應(yīng)用網(wǎng)站的登錄頁面
-
有效,用戶將被重定向到應(yīng)用程序,并帶有包含用戶相關(guān)身份信息的令牌(Token)。
-
其實(shí),SSO 認(rèn)證中心相當(dāng)于一個(gè)登錄中介,它統(tǒng)一管理用戶在多系統(tǒng)下的登錄操作。
-
使用 SSO 的好處就是簡(jiǎn)化登錄流程,用戶友好且安全。
在多系統(tǒng)下的登錄操作。
使用 SSO 的好處就是簡(jiǎn)化登錄流程,用戶友好且安全。