宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見(jiàn)問(wèn)題
產(chǎn)品動(dòng)態(tài)
精選推薦

什么是SSO?

管理 管理 編輯 刪除

SSO(Single Sign On)單點(diǎn)登錄。SSO是在多個(gè)應(yīng)用系統(tǒng)中,用戶(hù)只需要登錄一次就可以訪問(wèn)所有相互信任的應(yīng)用系統(tǒng)。它包括可以將這次主要的登錄映射到其他應(yīng)用中用于同一個(gè)用戶(hù)的登錄的機(jī)制。它是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。

當(dāng)用戶(hù)第一次訪問(wèn)應(yīng)用系統(tǒng)1的時(shí)候,因?yàn)檫€沒(méi)有登錄,會(huì)被引導(dǎo)到認(rèn)證系統(tǒng)中進(jìn)行登錄;根據(jù)用戶(hù)提供的登錄信息,認(rèn)證系統(tǒng)進(jìn)行身份校驗(yàn),如果通過(guò)校驗(yàn),應(yīng)該返回給用戶(hù)一個(gè)認(rèn)證的憑據(jù)--ticket;用戶(hù)再訪問(wèn)別的應(yīng)用的時(shí)候就會(huì)將這個(gè)ticket帶上,作為自己認(rèn)證的憑據(jù),應(yīng)用系統(tǒng)接受到請(qǐng)求之后會(huì)把ticket送到認(rèn)證系統(tǒng)進(jìn)行校驗(yàn),檢查ticket的合法性。如果通過(guò)校驗(yàn),用戶(hù)就可以在不用再次登錄的情況下訪問(wèn)應(yīng)用系統(tǒng)2和應(yīng)用系統(tǒng)3了。

WEB-SSO
用戶(hù)在訪問(wèn)頁(yè)面1的時(shí)候進(jìn)行了登錄,但是客戶(hù)端的每個(gè)請(qǐng)求都是單獨(dú)的連接,當(dāng)客戶(hù)再次訪問(wèn)頁(yè)面2的時(shí)候,如何才能告訴Web服務(wù)器,客戶(hù)剛才已經(jīng)登錄過(guò)了呢?瀏覽器和服務(wù)器之間有約定:通過(guò)使用cookie技術(shù)來(lái)維護(hù)應(yīng)用的狀態(tài)。Cookie是可以被Web服務(wù)器設(shè)置的字符串,并且可以保存在瀏覽器中。當(dāng)瀏覽器訪問(wèn)了頁(yè)面1時(shí),web服務(wù)器設(shè)置了一個(gè)cookie,并將這個(gè)cookie和頁(yè)面1一起返回給瀏覽器,瀏覽器接到cookie之后,就會(huì)保存起來(lái),在它訪問(wèn)頁(yè)面2的時(shí)候會(huì)把這個(gè)cookie也帶上,Web服務(wù)器接到請(qǐng)求時(shí)也能讀出cookie的值,根據(jù)cookie值的內(nèi)容就可以判斷和恢復(fù)一些用戶(hù)的信息狀態(tài)。Web-SSO完全可以利用Cookie技術(shù)來(lái)完成用戶(hù)登錄信息的保存,將瀏覽器中的Cookie和上文中的Ticket結(jié)合起來(lái),完成SSO的功能。

SSO單點(diǎn)登錄
一個(gè)企業(yè)可能有很多個(gè)系統(tǒng),這些系統(tǒng)之間有一些關(guān)聯(lián)性,每個(gè)系統(tǒng)都有一個(gè)獨(dú)立的登錄模塊,但隨企業(yè)的發(fā)展,用到的系統(tǒng)可能越來(lái)越多,每次都要一個(gè)一個(gè)登錄你會(huì)越來(lái)越不方便, 單點(diǎn)登錄就應(yīng)運(yùn)而生 即 登錄其中的任意一個(gè)系統(tǒng),在其他的系統(tǒng)也達(dá)到登錄的狀態(tài)
它的解釋是:在多個(gè)應(yīng)用系統(tǒng)中,只需要登錄一次,就可以訪問(wèn)其他相互信任的應(yīng)用系統(tǒng)。
如下圖,用戶(hù)要登錄Application1、Application2、Application3中的任意一個(gè) 都會(huì)跳轉(zhuǎn)到 SSO系統(tǒng),在SSO完成登錄,同時(shí) 其他系統(tǒng)也就完成登錄了。

82b99202304271613513639.png

普通的登錄機(jī)制

d694a20230427161405480.png

普通的登錄狀態(tài)是通過(guò)瀏覽器端的Cookie與服務(wù)器端的Session共同保證的,我們輸入用戶(hù)名密碼進(jìn)行登錄,服務(wù)器會(huì)返回給瀏覽器一個(gè)Cookie(多組鍵值對(duì)組成),這個(gè)Cookie是這個(gè)用戶(hù)的唯一標(biāo)識(shí),同時(shí)在服務(wù)器端生成一個(gè)對(duì)應(yīng)這個(gè)Cookie的Session,以后瀏覽器在對(duì)服務(wù)器進(jìn)行請(qǐng)求時(shí)都會(huì)帶上這個(gè)Cookie,服務(wù)器收到請(qǐng)求后 會(huì)根據(jù)Cookie去找對(duì)應(yīng)的Session,通過(guò)Session判斷用戶(hù)是不是登錄狀態(tài)

SSO實(shí)現(xiàn)機(jī)制

同域下的單點(diǎn)登錄
一個(gè)企業(yè)一般情況下只有一個(gè)域名,通過(guò)二級(jí)域名區(qū)分不同的系統(tǒng)。比如我們有個(gè)域名叫做:a.com,同時(shí)有兩個(gè)業(yè)務(wù)系統(tǒng)分別為:app1.a.com和app2.a.com。我們要做單點(diǎn)登錄(SSO),需要一個(gè)登錄系統(tǒng),叫做:sso.a.com。

我們只要在sso.a.com登錄,app1.a.com和app2.a.com就也登錄了。通過(guò)上面的登陸認(rèn)證機(jī)制,我們可以知道,在sso.a.com中登錄了,其實(shí)是在sso.a.com的服務(wù)端的session中記錄了登錄狀態(tài),同時(shí)在瀏覽器端(Browser)的sso.a.com下寫(xiě)入了Cookie。那么我們?cè)趺床拍茏宎pp1.a.com和app2.a.com登錄呢?這里有兩個(gè)問(wèn)題:

Cookie是不能跨域的,我們Cookie的domain屬性是sso.a.com,在給app1.a.com和app2.a.com發(fā)送請(qǐng)求是帶不上的。
sso、app1和app2是不同的應(yīng)用,它們的session存在自己的應(yīng)用內(nèi),是不共享的。

d0805202304271614411806.png

那么我們?nèi)绾谓鉀Q這兩個(gè)問(wèn)題呢?針對(duì)第一個(gè)問(wèn)題,sso登錄以后,可以將Cookie的域設(shè)置為頂域,即.a.com,這樣所有子域的系統(tǒng)都可以訪問(wèn)到頂域的Cookie。我們?cè)谠O(shè)置Cookie時(shí),只能設(shè)置頂域和自己的域,不能設(shè)置其他的域。比如:我們不能在自己的系統(tǒng)中給baidu.com的域設(shè)置Cookie。

Cookie的問(wèn)題解決了,我們?cè)賮?lái)看看session的問(wèn)題。我們?cè)趕so系統(tǒng)登錄了,這時(shí)再訪問(wèn)app1,Cookie也帶到了app1的服務(wù)端(Server),app1的服務(wù)端怎么找到這個(gè)Cookie對(duì)應(yīng)的Session呢?這里就要把3個(gè)系統(tǒng)的Session共享,如圖所示。共享Session的解決方案有很多,例如:Spring-Session。這樣第2個(gè)問(wèn)題也解決了。

同域下的單點(diǎn)登錄就實(shí)現(xiàn)了,但這還不是真正的單點(diǎn)登錄。

不同域下的單點(diǎn)登錄
同域下的單點(diǎn)登錄是巧用了Cookie頂域的特性。如果是不同域呢?不同域之間Cookie是不共享的,怎么辦?
這里我們就要說(shuō)一說(shuō)CAS流程了,這個(gè)流程是單點(diǎn)登錄的標(biāo)準(zhǔn)流程。

b241f202304271616061696.png

上圖是CAS官網(wǎng)上的標(biāo)準(zhǔn)流程,具體流程如下:

用戶(hù)訪問(wèn)app系統(tǒng),app系統(tǒng)是需要登錄的,但用戶(hù)現(xiàn)在沒(méi)有登錄。
跳轉(zhuǎn)到CAS server,即SSO登錄系統(tǒng),以后圖中的CAS Server我們統(tǒng)一叫做SSO系統(tǒng)。 SSO系統(tǒng)也沒(méi)有登錄,彈出用戶(hù)登錄頁(yè)。
用戶(hù)填寫(xiě)用戶(hù)名、密碼,SSO系統(tǒng)進(jìn)行認(rèn)證后,將登錄狀態(tài)寫(xiě)入SSO的session,瀏覽器(Browser)中寫(xiě)入SSO域下的Cookie。
SSO系統(tǒng)登錄完成后會(huì)生成一個(gè)ST(Service Ticket),然后跳轉(zhuǎn)到app系統(tǒng),同時(shí)將ST作為參數(shù)傳遞給app系統(tǒng)。
app系統(tǒng)拿到ST后,從后臺(tái)向SSO發(fā)送請(qǐng)求,驗(yàn)證ST是否有效。
驗(yàn)證通過(guò)后,app系統(tǒng)將登錄狀態(tài)寫(xiě)入session并設(shè)置app域下的Cookie。
至此,跨域單點(diǎn)登錄就完成了。以后我們?cè)僭L問(wèn)app系統(tǒng)時(shí),app就是登錄的。接下來(lái),我們?cè)倏纯丛L問(wèn)app2系統(tǒng)時(shí)的流程。

用戶(hù)訪問(wèn)app2系統(tǒng),app2系統(tǒng)沒(méi)有登錄,跳轉(zhuǎn)到SSO。
由于SSO已經(jīng)登錄了,不需要重新登錄認(rèn)證。
SSO生成ST,瀏覽器跳轉(zhuǎn)到app2系統(tǒng),并將ST作為參數(shù)傳遞給app2。
app2拿到ST,后臺(tái)訪問(wèn)SSO,驗(yàn)證ST是否有效。
驗(yàn)證成功后,app2將登錄狀態(tài)寫(xiě)入session,并在app2域下寫(xiě)入Cookie。
這樣,app2系統(tǒng)不需要走登錄流程,就已經(jīng)是登錄了。SSO,app和app2在不同的域,它們之間的session不共享也是沒(méi)問(wèn)題的。

有人就會(huì)想,SSO系統(tǒng)登錄后,跳回原業(yè)務(wù)系統(tǒng)時(shí),帶了個(gè)參數(shù)ST,業(yè)務(wù)系統(tǒng)還要拿ST再次訪問(wèn)SSO進(jìn)行驗(yàn)證,覺(jué)得這個(gè)步驟有點(diǎn)多余。他想SSO登錄認(rèn)證通過(guò)后,通過(guò)回調(diào)地址將用戶(hù)信息返回給原業(yè)務(wù)系統(tǒng),原業(yè)務(wù)系統(tǒng)直接設(shè)置登錄狀態(tài),這樣流程簡(jiǎn)單,也完成了登錄,不是很好嗎?

其實(shí)這樣問(wèn)題時(shí)很?chē)?yán)重的,如果我在SSO沒(méi)有登錄,而是直接在瀏覽器中敲入回調(diào)的地址,并帶上偽造的用戶(hù)信息,是不是業(yè)務(wù)系統(tǒng)也認(rèn)為登錄了呢?這是很可怕的。單點(diǎn)登錄,資源都在各個(gè)業(yè)務(wù)系統(tǒng)這邊,不在SSO那一方。 用戶(hù)在給SSO服務(wù)器提供了用戶(hù)名密碼后,作為業(yè)務(wù)系統(tǒng)并不知道這件事。 SSO隨便給業(yè)務(wù)系統(tǒng)一個(gè)ST,那么業(yè)務(wù)系統(tǒng)是不能確定這個(gè)ST是用戶(hù)偽造的,還是真的有效,所以要拿著這個(gè)ST去SSO服務(wù)器再問(wèn)一下,這個(gè)用戶(hù)給我的ST是否有效,是有效的我才能讓這個(gè)用戶(hù)訪問(wèn)。

請(qǐng)登錄后查看

CRMEB-慕白寒窗雪 最后編輯于2023-04-27 16:16:37

快捷回復(fù)
回復(fù)
回復(fù)
回復(fù)({{post_count}}) {{!is_user ? '我的回復(fù)' :'全部回復(fù)'}}
排序 默認(rèn)正序 回復(fù)倒序 點(diǎn)贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無(wú)簡(jiǎn)介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復(fù) {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)
查看更多
打賞
已打賞¥{{reward_price}}
1405
{{like_count}}
{{collect_count}}
添加回復(fù) ({{post_count}})

相關(guān)推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見(jiàn)問(wèn)題 產(chǎn)品動(dòng)態(tài) 精選推薦 首頁(yè)頭條 首頁(yè)動(dòng)態(tài) 首頁(yè)推薦
取 消 確 定
回復(fù)
回復(fù)
問(wèn)題:
問(wèn)題自動(dòng)獲取的帖子內(nèi)容,不準(zhǔn)確時(shí)需要手動(dòng)修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當(dāng)前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請(qǐng)輸入 0.1-{{reward_max_price}} 范圍內(nèi)的數(shù)值
打賞成功
¥{{price}}
完成 確認(rèn)打賞

微信登錄/注冊(cè)

切換手機(jī)號(hào)登錄

{{ bind_phone ? '綁定手機(jī)' : '手機(jī)登錄'}}

{{codeText}}
切換微信登錄/注冊(cè)
暫不綁定
CRMEB客服

CRMEB咨詢(xún)熱線(xiàn) 咨詢(xún)熱線(xiàn)

400-8888-794

微信掃碼咨詢(xún)

CRMEB開(kāi)源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服