不同域名cookie共享_cookie在二级域名间共享完成sso
單點(diǎn)登錄(SingleSignOn,SSO)就是用戶完成一次應(yīng)用系統(tǒng)登錄,便可以免登訪問(wèn)多個(gè)其它應(yīng)用系統(tǒng),這里所說(shuō)的應(yīng)用系統(tǒng)是相互信任的。
通常SSO都是企業(yè)內(nèi)部多個(gè)應(yīng)用之間,一個(gè)企業(yè)一般有一個(gè)頂級(jí)域名,應(yīng)用系統(tǒng)使用二級(jí)域名來(lái)區(qū)分,只要實(shí)現(xiàn)了cookie在二級(jí)域名之間共享,那就實(shí)現(xiàn)了一次登錄,到處免登。
比如頂級(jí)域名為 .star.com,現(xiàn)有app1.star.com,app2.star.com,兩個(gè)應(yīng)用都有自己(登錄鑒權(quán)等)攔截操作,攔截這部分在代碼形態(tài)上是可以單獨(dú)剝離出來(lái)的。
此時(shí)可以單獨(dú)部署一個(gè)用來(lái)登錄鑒權(quán)的cas.star.com,未登錄攔截時(shí)跳轉(zhuǎn)cas.star.com發(fā)起登錄,也可以直接由應(yīng)用自己發(fā)起登錄操作,這里就以應(yīng)用自己發(fā)起登錄操作。
只需解決兩個(gè)問(wèn)題:
1.在app1或app2登錄完成后,寫入瀏覽器cookie,域名設(shè)置為star.com,這樣二級(jí)域名下的應(yīng)用都可以共享這個(gè)cookie。
2.cookie關(guān)聯(lián)的session要寫入公共中間件,通常使用redis保存,以便session可以在多個(gè)應(yīng)用間共享。
畫個(gè)圖比較清晰一些,這就是同域下共享cookie的方案,但是不同域之間cookie是無(wú)法共享的,所以有了cas的解決方案,算是本方案的一個(gè)升級(jí),本質(zhì)上還是如何實(shí)現(xiàn)session共享的問(wèn)題。
總結(jié)
以上是生活随笔為你收集整理的不同域名cookie共享_cookie在二级域名间共享完成sso的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python装饰器功能是冒泡排序怎么做_
- 下一篇: swift 组件化_打造完备的iOS组件