單點(diǎn)登錄系統(tǒng)官主要的關(guān)切是什么

大風(fēng)車考試網(wǎng)

單點(diǎn)登錄系統(tǒng)官主要的關(guān)切是什么

密碼一旦泄露,最大程度的非授權(quán)訪問將可能發(fā)生。

單點(diǎn)登錄的業(yè)務(wù)流程如下:

1. 用戶在登錄頁面進(jìn)行登錄,如果登錄驗(yàn)證不成功,返回登錄頁面重新登錄。

2. 登錄成功后,服務(wù)端通過uuid隨機(jī)生成一個(gè)名為token的字符串(相當(dāng)于來的jsessionid),作為key值,并且將封裝有當(dāng)前登錄用戶信息的對象轉(zhuǎn)成json字符串作為values值,以鍵值對的形式存入Redis緩存數(shù)據(jù)庫。

3. 設(shè)置key的過期時(shí)間,一般設(shè)為半個(gè)小時(shí)。

4. 將token字符串寫入Cookie中,返回給瀏覽器。在這個(gè)過程中,一般我們會(huì)同時(shí)響應(yīng)一個(gè)重定向操作,讓頁面跳轉(zhuǎn)到首頁。

5. 在頁面跳轉(zhuǎn)到首頁以后,我們有一個(gè)要求:就是要在首頁上顯示出當(dāng)前登錄用戶的用戶名。這個(gè)時(shí)候,我們采取的辦法是在首頁加載完畢之后,向單點(diǎn)登錄系統(tǒng)發(fā)送一個(gè)ajax請求,請求的參數(shù)就是Cookie。

6. 單點(diǎn)登錄系統(tǒng)接收到請求之后,取出Cookie里面存放的token字符串,去Redis中查找響應(yīng)的用戶信息,若查不到,會(huì)重定向到登錄頁面重新登錄;若查到,會(huì)將用戶信息由json字符串轉(zhuǎn)成用戶對象,并返給瀏覽器端。同時(shí)重設(shè)key的過期時(shí)間。

7. 瀏覽器拿到返回過來的用戶對象,從中取出用戶名,嵌入到首頁的指定位置即可。注意:在這個(gè)過程中會(huì)產(chǎn)生一個(gè)跨域訪問的問題。

什么是跨域問題?

答:域名不同或者域名相同端口號(hào)不同均可稱為跨域。首頁位置前臺(tái)系統(tǒng)中,首頁通過ajax請求訪問單點(diǎn)登錄系統(tǒng),兩個(gè)系統(tǒng)彼此獨(dú)立,部署在不同的Tomcat服務(wù)器上,端口號(hào)不同,是跨域請求?缬蛘埱竽馨l(fā)過去,并且瀏覽器能得到服務(wù)端返回的用戶信息,但是ajax拿不到這個(gè)響應(yīng)信息,瀏覽器不讓使用。

如何解決跨域訪問問題?

答:使用jsonp技術(shù)。

  • 相關(guān)文章