聊一聊單點(diǎn)登錄系統(tǒng)

之前做了單點(diǎn)登錄系統(tǒng)育特,然后也查閱了一些資料,參考著這些資料加上自己的理解,本文就聊一聊單點(diǎn)登錄系統(tǒng)以及實(shí)現(xiàn)原理烙无,但并不涉及代碼部分遍尺,希望此文能對(duì)你有所幫助。

我愛(ài)學(xué)習(xí)

首先要說(shuō)明的是迂苛,單點(diǎn)登錄并不是說(shuō)像咱們登錄 QQ 一樣鼓择,只能在一個(gè)設(shè)備登錄,這不叫單點(diǎn)登錄念搬。如果有人這么對(duì)你解釋摆出,要記得保持微笑。

1爷恳、為什么需要單點(diǎn)登錄系統(tǒng)

單點(diǎn)登錄在大型網(wǎng)站里使用得非常頻繁象踊,例如像天貓這樣的網(wǎng)站,在網(wǎng)站的背后是成百上千的子系統(tǒng)栈虚,不信往下看菊碟。

進(jìn)去天貓之后在刺,地址欄是這樣的:

天貓首頁(yè)

然后你想看看男裝蚣驼,地址欄又變成這樣的了:

天貓男裝

然后突然又想看看女鞋,地址欄又變了:

天貓女鞋

你看纯陨,就點(diǎn)了這幾下就涉及到三個(gè)子系統(tǒng),所以說(shuō)像天貓這種大型商城涉及到非常多的子系統(tǒng)咙轩。

用戶一次操作或交易可能涉及到幾十個(gè)子系統(tǒng)的協(xié)作阴颖,如果每個(gè)子系統(tǒng)都需要用戶認(rèn)證,讓用戶輸入用戶名密碼钾菊,不僅用戶會(huì)瘋掉偎肃,各子系統(tǒng)也會(huì)為這種重復(fù)認(rèn)證授權(quán)的邏輯搞瘋掉。

2滞详、單點(diǎn)登錄系統(tǒng)簡(jiǎn)介

單點(diǎn)登錄系統(tǒng)又稱 Single Sign On(以下簡(jiǎn)稱 SSO)喘落,所謂單點(diǎn)登錄就是說(shuō),在相互信任的應(yīng)用中稀火,只需登陸一次即可相互訪問(wèn)赌朋,也就是用戶的一次登錄能得到其他所有系統(tǒng)的信任。

舉個(gè)栗子:

你周末和小伙伴喜滋滋的去了游樂(lè)場(chǎng)玩耍沛慢,進(jìn)游樂(lè)場(chǎng)之后想玩云霄飛車团甲,然后工作人員對(duì)你們一通檢查,你覺(jué)得正常躺苦,檢查就檢查唄。

然后又去玩摩天輪嘀趟,工作人員又是對(duì)你們一通檢查愈诚,耽誤時(shí)間不說(shuō)牛隅,而且已經(jīng)檢查過(guò)了酌泰,再檢查也沒(méi)意義了陵刹,好吧,為了玩耍你忍了授霸。

你又想去玩過(guò)山車了,工作人員又把你攔住了显设,要檢查辛辨,統(tǒng)統(tǒng)檢查,這時(shí)候你可能就不能忍了指攒。

那么這個(gè)時(shí)候如果第一次檢查之后給你發(fā)個(gè)令牌僻焚,以后想玩所有的項(xiàng)目都不需要檢查了,想玩什么玩什么隙弛,多好狞山。

這就是所謂的單點(diǎn)登錄,只需一次登錄就行了总珠。

對(duì)于我們得項(xiàng)目來(lái)說(shuō)勘纯,無(wú)論 web 系統(tǒng)內(nèi)部多么復(fù)雜,對(duì)用戶而言腌逢,都是一個(gè)統(tǒng)一的整體超埋,也就是說(shuō),用戶訪問(wèn) web 系統(tǒng)的整個(gè)應(yīng)用群與訪問(wèn)單個(gè)系統(tǒng)一樣媒惕,登錄/注銷只要一次就夠了来庭。

3、單點(diǎn)登錄系統(tǒng)原理

sso 需要一個(gè)獨(dú)立的認(rèn)證中心肴盏,只有認(rèn)證中心能接受用戶的用戶名密碼等安全信息帽衙,其他系統(tǒng)不提供登錄入口,只接受認(rèn)證中心的間接授權(quán)恍飘。間接授權(quán)通過(guò)令牌實(shí)現(xiàn)谴垫,sso認(rèn)證中心驗(yàn)證用戶的用戶名密碼沒(méi)問(wèn)題,創(chuàng)建授權(quán)令牌乳怎,在接下來(lái)的跳轉(zhuǎn)過(guò)程中前弯,授權(quán)令牌作為參數(shù)發(fā)送給各個(gè)子系統(tǒng),子系統(tǒng)拿到令牌椿胯,即得到了授權(quán)剃根,可以借此創(chuàng)建局部會(huì)話,局部會(huì)話登錄方式與單系統(tǒng)的登錄方式相同廉油。

用戶登錄成功之后苗傅,會(huì)與 sso 認(rèn)證中心及各個(gè)子系統(tǒng)建立會(huì)話,用戶與
sso 認(rèn)證中心建立的會(huì)話稱為全局會(huì)話嘶炭,用戶與各個(gè)子系統(tǒng)建立的會(huì)話稱為局部會(huì)話。

單點(diǎn)登錄的原理如下圖所述:

單點(diǎn)登錄原理圖

對(duì)上圖簡(jiǎn)要說(shuō)明:

  • 用戶訪問(wèn)系統(tǒng)1抑进,系統(tǒng) 1 發(fā)現(xiàn)用戶未登錄睡陪,跳轉(zhuǎn)至 sso 認(rèn)證中心,并將自己的地址作為參數(shù)信殊;
  • sso 認(rèn)證中心發(fā)現(xiàn)用戶未登錄汁果,將用戶引導(dǎo)至登錄頁(yè)面;
  • 用戶輸入用戶名密碼提交登錄申請(qǐng)鲸伴;
  • sso 認(rèn)證中心校驗(yàn)用戶信息晋控,創(chuàng)建用戶與 sso 認(rèn)證中心之間的會(huì)話,稱為全局會(huì)話仲吏,同時(shí)創(chuàng)建授權(quán)令牌蝌焚;
  • sso 認(rèn)證中心帶著令牌跳轉(zhuǎn)會(huì)最初的請(qǐng)求地址(系統(tǒng) 1);
  • 系統(tǒng) 1 拿到令牌许帐,去 sso 認(rèn)證中心校驗(yàn)令牌是否有效毕谴;
  • sso 認(rèn)證中心校驗(yàn)令牌,返回有效循帐,注冊(cè)系統(tǒng) 1舀武;
  • 系統(tǒng)1使用該令牌創(chuàng)建與用戶的會(huì)話,稱為局部會(huì)話瘪匿,返回受保護(hù)資源
    用戶訪問(wèn)系統(tǒng) 2;
  • 系統(tǒng) 2 發(fā)現(xiàn)用戶未登錄,跳轉(zhuǎn)至 sso 認(rèn)證中心嘁锯,并將自己的地址作為參數(shù)聂薪;
  • sso 認(rèn)證中心發(fā)現(xiàn)用戶已登錄,跳轉(zhuǎn)回系統(tǒng) 2 的地址仁锯,并附上令牌昭雌;
  • 系統(tǒng) 2 拿到令牌蝇率,去 sso 認(rèn)證中心校驗(yàn)令牌是否有效峡扩;
  • sso 認(rèn)證中心校驗(yàn)令牌汁汗,返回有效妇斤,注冊(cè)系統(tǒng) 2站超;
  • 系統(tǒng) 2 使用該令牌創(chuàng)建與用戶的局部會(huì)話乖酬。

4、單點(diǎn)注銷

單點(diǎn)注銷就是說(shuō)媳纬,在一個(gè)子系統(tǒng)中注銷施掏,所有子系統(tǒng)的會(huì)話都將被銷毀,如下圖所示:

單點(diǎn)注銷

sso 認(rèn)證中心一直監(jiān)聽(tīng)全局會(huì)話的狀態(tài)素挽,一旦全局會(huì)話銷毀狸驳,監(jiān)聽(tīng)器將通知所有注冊(cè)系統(tǒng)執(zhí)行注銷操作。

下面對(duì)上圖簡(jiǎn)要說(shuō)明:

  • 用戶向系統(tǒng) 1 發(fā)起注銷請(qǐng)求撰糠;
  • 系統(tǒng) 1 根據(jù)用戶與系統(tǒng) 1 建立的會(huì)話 id 拿到令牌阅酪,向 sso 認(rèn)證中心發(fā)起注銷請(qǐng)求;
  • sso 認(rèn)證中心校驗(yàn)令牌有效术辐,銷毀全局會(huì)話辉词,同時(shí)取出所有用此令牌注冊(cè)的系統(tǒng)地址瑞躺;
  • sso 認(rèn)證中心向所有注冊(cè)系統(tǒng)發(fā)起注銷請(qǐng)求;
  • 各注冊(cè)系統(tǒng)接收 sso 認(rèn)證中心的注銷請(qǐng)求曼振,銷毀局部會(huì)話甲雅;
  • sso 認(rèn)證中心引導(dǎo)用戶至登錄頁(yè)面。

希望你幫助到你,還請(qǐng)大家多多關(guān)注荠商,謝謝嘍~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市焦蘑,隨后出現(xiàn)的幾起案子拼卵,更是在濱河造成了極大的恐慌壤蚜,老刑警劉巖墩蔓,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異颂斜,居然都是意外死亡沃疮,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門邑茄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)肺缕,“玉大人授帕,你說(shuō)我怎么就攤上這事⊥罚” “怎么了芥映?”我有些...
    開(kāi)封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵奈偏,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我霎苗,道長(zhǎng)唁盏,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任昆淡,我火速辦了婚禮刽严,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘眨补。我一直安慰自己,他們只是感情好含思,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布甘晤。 她就那樣靜靜地躺著线婚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪塞弊。 梳的紋絲不亂的頭發(fā)上居砖,一...
    開(kāi)封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天驴娃,我揣著相機(jī)與錄音,去河邊找鬼蔗草。 笑死疆柔,一個(gè)胖子當(dāng)著我的面吹牛旷档,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鞋屈,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼厂庇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了替蛉?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤它浅,失蹤者是張志新(化名)和其女友劉穎罚缕,沒(méi)想到半個(gè)月后怎静,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡腌乡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年与纽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了塘装。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡僚碎,死狀恐怖勺阐,靈堂內(nèi)的尸體忽然破棺而出矛双,到底是詐尸還是另有隱情,我是刑警寧澤懒闷,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布栈幸,位于F島的核電站侦镇,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏壳繁。R本人自食惡果不足惜荔棉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一润樱、第九天 我趴在偏房一處隱蔽的房頂上張望羡棵。 院中可真熱鬧,春花似錦店展、人聲如沸秃流。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)嚣伐。三九已至,卻和暖如春放典,著一層夾襖步出監(jiān)牢的瞬間船万,已是汗流浹背刻撒。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工骨田, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耿导,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓态贤,卻偏偏與公主長(zhǎng)得像舱呻,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悠汽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容