什么是單點登錄倔幼,php是如何實現(xiàn)單點登錄的

單點登錄SSO(Single Sign On)說得簡單點就是在一個多系統(tǒng)共存的環(huán)境下凤藏,用戶在一處登錄后奸忽,就不用在其他系統(tǒng)中登錄,也就是用戶的一次登錄能得到其他所有系統(tǒng)的信任欠雌。單點登錄在大型網(wǎng)站里使用得非常頻繁富俄;

例如像阿里巴巴這樣的網(wǎng)站而咆,在網(wǎng)站的背后是成百上千的子系統(tǒng),用戶一次操作或交易可能涉及到幾十個子系統(tǒng)的協(xié)作悠瞬,如果每個子系統(tǒng)都需要用戶認(rèn)證浅妆,不僅用戶會瘋掉障癌,各子系統(tǒng)也會為這種重復(fù)認(rèn)證授權(quán)的邏輯搞瘋掉涛浙。實現(xiàn)單點登錄說到底就是要解決如何產(chǎn)生和存儲那個信任,再就是其他系統(tǒng)如何驗證這個信任的有效性轿亮,因此要點也就以下幾個:

1哀托、存儲信任

2、驗證信任

只要解決了以上的問題仓手,達(dá)到了開頭講得效果就可以說是SSO。最簡單實現(xiàn)SSO的方法就是用Cookie呀伙,實現(xiàn)流程如下所示:


不難發(fā)現(xiàn)以上的方案是把信任存儲在客戶端的Cookie里剿另,這種方法雖然實現(xiàn)方便但立馬會讓人質(zhì)疑兩個問題:

1、Cookie不安全

2雨女、不能跨域免登

對于第一個問題一般都是通過加密Cookie來處理氛堕,第二個問題是硬傷,其實這種方案的思路的就是要把這個信任關(guān)系存儲在客戶端括儒,要實現(xiàn)這個也不一定只能用Cookie锐想,用flash也能解決赠摇,flash的Shared Object API就提供了存儲能力。

一般說來抒蚜,大型系統(tǒng)會采取在服務(wù)端存儲信任關(guān)系的做法嗡髓,實現(xiàn)流程如下所示:

以上方案就是要把信任關(guān)系存儲在單獨的SSO系統(tǒng)(暫且這么稱呼它)里饿这,說起來只是簡單地從客戶端移到了服務(wù)端撞秋,但其中幾個問題需要重點解決:

1、如何高效存儲大量臨時性的信任數(shù)據(jù)

2串结、如何防止信息傳遞過程被篡改

3肌割、如何讓SSO系統(tǒng)信任登錄系統(tǒng)和免登系統(tǒng)

對于第一個問題,一般可以采用類似與memcached的分布式緩存的方案弥奸,既能提供可擴(kuò)展數(shù)據(jù)量的機(jī)制盛霎,也能提供高效訪問愤炸。

對于第二個問題剂邮,一般采取數(shù)字簽名的方法横侦,要么通過數(shù)字證書簽名枉侧,要么通過像md5的方式,這就需要SSO系統(tǒng)返回免登URL的時候?qū)π栩炞C的參數(shù)進(jìn)行md5加密榨馁,并帶上token一起返回翼虫,最后需免登的系統(tǒng)進(jìn)行驗證信任關(guān)系的時候,需把這個token傳給SSO系統(tǒng)珍剑,SSO系統(tǒng)通過對token的驗證就可以辨別信息是否被改過。

對于最后一個問題唧瘾,可以通過白名單來處理饰序,說簡單點只有在白名單上的系統(tǒng)才能請求生產(chǎn)信任關(guān)系求豫,同理只有在白名單上的系統(tǒng)才能被免登錄蝠嘉。

希望以上內(nèi)容能幫助到大家phper在進(jìn)階的時候總會遇到一些問題和瓶頸是晨,業(yè)務(wù)代碼寫多了沒有方向感,不知道該從那里入手去提升蚊逢,對此我整理了一些資料烙荷,包括但不限于:分布式架構(gòu)终抽、高可擴(kuò)展桶至、高性能镣屹、高并發(fā)、服務(wù)器性能調(diào)優(yōu)女蜈、TP6持舆,laravel,YII2伪窖,Redis逸寓,Swoole、Swoft覆山、Kafka竹伸、Mysql優(yōu)化、shell腳本汹买、Docker佩伤、微服務(wù)、Nginx等多個知識點高級進(jìn)階干貨需要的可以免費分享給大家需要的(點擊→)我的官方群677079770

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晦毙,一起剝皮案震驚了整個濱河市生巡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌见妒,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疯汁,死亡現(xiàn)場離奇詭異,居然都是意外死亡溢豆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雀哨,“玉大人膊夹,你說我怎么就攤上這事。” “怎么了螟碎?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵华坦,是天一觀的道長。 經(jīng)常有香客問我,道長宇攻,這世上最難降的妖魔是什么妻熊? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮坯钦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好棒动,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布掷漱。 她就那樣靜靜地躺著海雪,像睡著了一般险掀。 火紅的嫁衣襯著肌膚如雪侠鳄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼蒿叠。 笑死,一個胖子當(dāng)著我的面吹牛溯革,可吹牛的內(nèi)容都是我干的抖单。 我是一名探鬼主播刃永,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼枪汪!你這毒婦竟也來了祝沸?” 一聲冷哼從身側(cè)響起涩惑,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤此衅,失蹤者是張志新(化名)和其女友劉穎墨微,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牺蹄,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡鼎天,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年育勺,在試婚紗的時候發(fā)現(xiàn)自己被綠了怀大。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捡多。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡泳梆,死狀恐怖胞皱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤同衣,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布竟块,位于F島的核電站,受9級特大地震影響耐齐,放射性物質(zhì)發(fā)生泄漏浪秘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一埠况、第九天 我趴在偏房一處隱蔽的房頂上張望耸携。 院中可真熱鬧,春花似錦辕翰、人聲如沸夺衍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沟沙。三九已至河劝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間矛紫,已是汗流浹背赎瞎。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留颊咬,地道東北人务甥。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像喳篇,于是被迫代替她去往敵國和親敞临。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

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