400-650-7353

精品課程

單點(diǎn)登錄的實(shí)現(xiàn) 程序如何實(shí)現(xiàn)單點(diǎn)登錄

發(fā)布: Java培訓(xùn) 發(fā)布時(shí)間:2021-07-16 16:14:37

推薦答案
品牌型號(hào):聯(lián)想 YOGA 14c/系統(tǒng)版本:windows7

單點(diǎn)登錄SSO(Single Sign On)就是在一個(gè)多系統(tǒng)共存的環(huán)境下,用戶在一處登錄后,就不用在其他系統(tǒng)中登錄,也就是用戶的一次登錄能得到其他所有系統(tǒng)的信任,下面是主要的單點(diǎn)登錄方式。

以Cookie作為憑證媒介

最簡(jiǎn)單的單點(diǎn)登錄實(shí)現(xiàn)方式,是使用cookie作為媒介,存放用戶憑證。 用戶登錄父應(yīng)用之后,應(yīng)用返回一個(gè)加密的cookie,當(dāng)用戶訪問子應(yīng)用的時(shí)候,攜帶上這個(gè)cookie,授權(quán)應(yīng)用解密cookie并進(jìn)行校驗(yàn),校驗(yàn)通過則登錄當(dāng)前用戶。

通過JSONP實(shí)現(xiàn)

對(duì)于跨域問題,可以使用JSONP實(shí)現(xiàn)。 用戶在父應(yīng)用中登錄后,跟Session匹配的Cookie會(huì)存到客戶端中,當(dāng)用戶需要登錄子應(yīng)用的時(shí)候,授權(quán)應(yīng)用訪問父應(yīng)用提供的JSONP接口,并在請(qǐng)求中帶上父應(yīng)用域名下的Cookie,父應(yīng)用接收到請(qǐng)求,驗(yàn)證用戶的登錄狀態(tài),返回加密的信息,子應(yīng)用通過解析返回來的加密信息來驗(yàn)證用戶,如果通過驗(yàn)證則登錄用戶。

通過頁(yè)面重定向的方式

最后一種介紹的方式,是通過父應(yīng)用和子應(yīng)用來回重定向中進(jìn)行通信,實(shí)現(xiàn)信息的安全傳遞。 父應(yīng)用提供一個(gè)GET方式的登錄接口,用戶通過子應(yīng)用重定向連接的方式訪問這個(gè)接口,如果用戶還沒有登錄,則返回一個(gè)的登錄頁(yè)面,用戶輸入賬號(hào)密碼進(jìn)行登錄。如果用戶已經(jīng)登錄了,則生成加密的Token,并且重定向到子應(yīng)用提供的驗(yàn)證Token的接口,通過解密和校驗(yàn)之后,子應(yīng)用登錄當(dāng)前用戶。

使用獨(dú)立登錄系統(tǒng)

一般說來,大型應(yīng)用會(huì)把授權(quán)的邏輯與用戶信息的相關(guān)邏輯獨(dú)立成一個(gè)應(yīng)用,稱為用戶中心。 用戶中心不處理業(yè)務(wù)邏輯,只是處理用戶信息的管理以及授權(quán)給第三方應(yīng)用。第三方應(yīng)用需要登錄的時(shí)候,則把用戶的登錄請(qǐng)求轉(zhuǎn)發(fā)給用戶中心進(jìn)行處理,用戶處理完畢返回憑證,第三方應(yīng)用驗(yàn)證憑證,通過后就登錄用戶。
 

單點(diǎn)登錄的實(shí)現(xiàn)
其它答案
牛仔很忙2020-06-22 18:56:36

實(shí)現(xiàn)方式一:父域 Cookie

只需要將 Cookie 的 domain 屬性設(shè)置為父域的域名(主域名),同時(shí)將 Cookie 的 path 屬性設(shè)置為根路徑,這樣所有的子域應(yīng)用就都可以訪問到這個(gè) Cookie 了。不過這要求應(yīng)用系統(tǒng)的域名需建立在一個(gè)共同的主域名之下,如 tieba.baidu.com 和 map.baidu.com,它們都建立在 baidu.com 這個(gè)主域名之下,那么它們就可以通過這種方式來實(shí)現(xiàn)單點(diǎn)登錄。

實(shí)現(xiàn)方式二:認(rèn)證中心

我們可以部署一個(gè)認(rèn)證中心,認(rèn)證中心就是一個(gè)專門負(fù)責(zé)處理登錄請(qǐng)求的獨(dú)立的 Web 服務(wù)。用戶統(tǒng)一在認(rèn)證中心進(jìn)行登錄,登錄成功后,認(rèn)證中心記錄用戶的登錄狀態(tài),并將 Token 寫入 Cookie。

實(shí)現(xiàn)方式三:LocalStorage 跨域

可以選擇將 Session ID (或 Token )保存到瀏覽器的 LocalStorage 中,讓前端在每次向后端發(fā)送請(qǐng)求時(shí),主動(dòng)將 LocalStorage 的數(shù)據(jù)傳遞給服務(wù)端。這些都是由前端來控制的,后端需要做的僅僅是在用戶登錄成功后,將 Session ID (或 Token )放在響應(yīng)體中傳遞給前端。在這樣的場(chǎng)景下,單點(diǎn)登錄完全可以在前端實(shí)現(xiàn)。前端拿到 Session ID (或 Token )后,除了將它寫入自己的 LocalStorage 中之外,還可以通過特殊手段將它寫入多個(gè)其他域下的 LocalStorage 中。


中公旗下IT培訓(xùn)品牌

  • 中公教育品牌

     中公教育是一家中國(guó)領(lǐng)先的全品類職業(yè)教育機(jī)構(gòu),提供超過100個(gè)品類的綜合職業(yè)就業(yè)培訓(xùn)服務(wù)。公司在全國(guó)超過1000個(gè)直營(yíng)網(wǎng)點(diǎn)展開經(jīng)營(yíng),深度覆蓋300多個(gè)地級(jí)市,并正在快速向數(shù)千個(gè)縣城和高校擴(kuò)張。

  • 完善就業(yè)體系

    通過階段性授課機(jī)制,和每階段的定期考核,先讓學(xué)員能夠?qū)W會(huì)所學(xué)內(nèi)容,才能找打合適工作。最后一個(gè)階段為就業(yè)課程,從技術(shù)和面試兩個(gè)方面加深就業(yè)能力,并且還有不定期的雙選會(huì)供大家選擇。

  • 全程面授+實(shí)戰(zhàn)技術(shù)

    線下課程全程是師資面對(duì)面教學(xué),不會(huì)存在上課只對(duì)著大屏幕上課的情況,有問題都可以在課上得到解答。并且優(yōu)就業(yè)通過自主研發(fā)大綱和學(xué)習(xí)路線,并且定期更新課程所學(xué)技術(shù),讓大家所學(xué)技術(shù)不落伍。

中公優(yōu)就業(yè)專業(yè)職業(yè)規(guī)劃老師

為您詳細(xì)答疑解惑,更能領(lǐng)取免費(fèi)課程

相關(guān)問題

更多課程

專業(yè)課程老師將第一時(shí)間為您解答

立即答疑
修改
優(yōu)就業(yè):ujiuye

關(guān)注中公優(yōu)就業(yè)官方微信

  • 關(guān)注微信回復(fù)關(guān)鍵詞“大禮包”,領(lǐng)80G學(xué)習(xí)資料