成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

單點登錄實現(xiàn)原理及小結(jié)

TigerChain / 1339人閱讀

摘要:用戶登錄成功之后,會與認證中心及各個子系統(tǒng)建立會話,用戶與認證中心建立的會話稱為全局會話,用戶與各個子系統(tǒng)建立的會話稱為局部會話。

在工作中,有這樣一個需求,因為公司有多個管理平臺,每次登錄一個平臺都需要輸入賬號和密碼進行登錄,特別麻煩,所以,希望只需登錄一個平臺的賬號和密碼,其他平臺的不用輸入賬號和密碼也可以自動登錄,即單點登錄,經(jīng)過兩周的研究和實踐,終于完成了該需求,目前公司的兩個管理平臺已經(jīng)實現(xiàn)了單點登錄,現(xiàn)將兩周的研究成果總結(jié)一下。

一、單點登錄概念

什么是單點登錄?單點登錄全稱 Single Sign On(以下簡稱SSO),是指在多系統(tǒng)應用群中登錄一個系統(tǒng),便可在其他所有系統(tǒng)中得到授權(quán)而無需再次登錄,包括單點登錄與單點注銷兩部分。

用戶登錄成功之后,會與sso認證中心及各個子系統(tǒng)建立會話,用戶與sso認證中心建立的會話稱為全局會話,用戶與各個子系統(tǒng)建立的會話稱為局部會話。

二、單點登錄的兩種方式 1.同域名共享cookie

如果你的所有平臺都是在同一個域名下,那么可以使用同域名共享cookie的方式來完成單點登錄的信息共享。

將web應用群中所有子系統(tǒng)的域名統(tǒng)一在一個頂級域名下,例如“*.baidu.com”,然后將它們的cookie域設置為“baidu.com”,這種做法理論上是可以的,甚至早期很多多系統(tǒng)登錄就采用這種同域名共享cookie的方式。

  然而,可行并不代表好,共享 cookie 的方式存在眾多局限。首先,應用群域名得統(tǒng)一;其次,應用群各系統(tǒng)使用的技術(shù)(至少是web服務器)要相同,不然cookie的key值(tomcat為JSESSIONID)不同,無法維持會話,共享cookie的方式是無法實現(xiàn)跨語言技術(shù)平臺登錄的,比如java、php、.net系統(tǒng)之間;第三,cookie本身不安全。

  因此,我們需要一種全新的登錄方式來實現(xiàn)多系統(tǒng)應用群的登錄,這就是單點登錄

2、SSO認證授權(quán)登錄

上一種方法有很大的局限性,如果跨域名,就實現(xiàn)不了,這里我們可以借助第三方授權(quán)來實現(xiàn)。要實現(xiàn)多個平臺單點登錄,前提是多個平臺必須要有一個唯一的賬號,如手機號,郵箱,或用戶名,這樣才可以判斷出是哪個用戶。

具體實現(xiàn)思路

假如公司有兩個不同域名或IP下的管理網(wǎng)站,a.com,b.com,我們想要輸入用戶名和密碼登錄a.com, 即可自動登錄b.com,怎么實現(xiàn)呢?

登錄a.com后會在a平臺產(chǎn)生會話信息,如果我們登錄b.com,怎么判斷該用戶已經(jīng)登錄a平臺了,然后自己登錄?這里我們需要借助第三方平臺來做授權(quán)驗證,即c.com,該授權(quán)中心維護一套共有的賬號和密碼,當用戶訪問 a.com 后,我們會跳轉(zhuǎn)到 c.com,并帶上a.com 這個來源訪問地址,在c.com 中判斷是否有登錄,如果未登錄,則給出登錄界面,登錄成功后,則產(chǎn)生會話信息,同時生成一個授權(quán)Token,保存在c.com cookie 中,然后返回給原地址,如果已經(jīng)登錄(即已經(jīng)授權(quán)過了),則拿到cookie中保存的Token信息然后回跳到原來的訪問地址,a.com 判斷有Token信息,則拿著這個Token發(fā)送http請求到c.com,判斷該Token是否有效,如果有效,則返回給用戶信息,然后a.com拿到信息后,自動登錄a.com;

當訪問 b.com 時,也會去 c.com 中判斷是否已經(jīng)授權(quán)過了,因為a.com 已經(jīng)授過權(quán)了,則會給b.com 返回授權(quán)Token,然后b.com 判斷該Token是否有效,如果有效,則會返回給用戶信息,b.com 自動登錄,這就是單點登錄的一個簡單的流程。

一個完整的流程圖:

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/25571.html

相關(guān)文章

  • CAS 5.2.x 單點登錄 - 實現(xiàn)原理源碼淺析

    摘要:上一篇文章簡單介紹了在本地開發(fā)環(huán)境中搭建服務端和客戶端,對單點登錄過程有了一個直觀的認識之后,本篇將探討單點登錄的實現(xiàn)原理。因此引入服務端作為用戶信息鑒別和傳遞中介,達到單點登錄的效果。為該流程的實現(xiàn)類。表示對返回結(jié)果的處理。 上一篇文章簡單介紹了 CAS 5.2.2 在本地開發(fā)環(huán)境中搭建服務端和客戶端,對單點登錄過程有了一個直觀的認識之后,本篇將探討 CAS 單點登錄的實現(xiàn)原理。 一...

    elisa.yang 評論0 收藏0
  • 前端分享之cookie的使用單點登錄

    摘要:兩個域之間是不是存在跨域問題,主要是根據(jù)協(xié)議域名端口號這三個點進行判斷,只要有一個不一樣就是跨域。例如協(xié)議不同與域名不同與端口號不同與瀏覽器默認情況下無法主動跨域向后端發(fā)送,需要在前端請求時加入配置項。據(jù)此,可以實現(xiàn)單點登錄。 cookie是什么 cookie的英文意思是餅干。在計算機術(shù)語中指服務端存放在客戶端的一段數(shù)據(jù)。這段數(shù)據(jù)在客戶端每次進行http請求時會自動加在http請求報文...

    Backache 評論0 收藏0
  • 前端分享之cookie的使用單點登錄

    摘要:兩個域之間是不是存在跨域問題,主要是根據(jù)協(xié)議域名端口號這三個點進行判斷,只要有一個不一樣就是跨域。例如協(xié)議不同與域名不同與端口號不同與瀏覽器默認情況下無法主動跨域向后端發(fā)送,需要在前端請求時加入配置項。據(jù)此,可以實現(xiàn)單點登錄。 cookie是什么 cookie的英文意思是餅干。在計算機術(shù)語中指服務端存放在客戶端的一段數(shù)據(jù)。這段數(shù)據(jù)在客戶端每次進行http請求時會自動加在http請求報文...

    MudOnTire 評論0 收藏0
  • Python Flask單點登錄問題

    摘要:如果一旦加密算法泄露了,攻擊者可以在本地建立一個實現(xiàn)了登錄接口的假冒父應用,通過綁定來把子應用發(fā)起的請求指向本地的假冒父應用,并作出回應。 1.什么是單點登錄? 單點登錄(Single Sign On),簡稱為 SSO,是目前比較流行的企業(yè)業(yè)務整合的解決方案之一。SSO的定義是在多個應用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統(tǒng)??蛻舳顺钟蠭D,服務端持有session...

    tuomao 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<