亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

基于Cookie的SSO登錄分析和實現

2019-11-14 14:41:15
字體:
來源:轉載
供稿:網友

什么是SSO?

現在很多大的互聯網公司都會有很多的應用,比如以下是淘寶網的截圖:



天貓 聚劃算 頭條等都是不同的應用,有的甚至采用完全不同的域名,但是所有在淘寶注冊的用戶都是使用的一套用戶名和口令,如果在這些系統直接切換做不到登陸狀態的同步,體驗是非常差的。再舉個栗子,很多公司內部系統也有很多個,比如HR系統,財務系統,考勤系統等等,如果員工在一個系統登陸了,跳轉到另外一個系統還需要登陸,就會讓人很不爽...

基于此,SSO(Single Sign On)應運而生。當然,我們來現實這個需求的方法有很多種,使用Cookie是其中比較簡單的方式,主要需要解決的問題是:Cookie是不能跨域傳遞的,如何將一個域的Cookie通知給其它應用(不在同一個域)?

so,如果你對cookie機制不太熟悉,請先google,并大致了解為什么cookie會設計成不能跨域等相關問題。

如何實現?

SSO有以下幾種方式實現

共享Cookie

當我們的子系統都在一個父級域名下時,我們可以將Cookie種在父域下,這樣瀏覽器同域名下的Cookie則可以共享,這樣可以通過Cookie加解密的算法獲取用戶sessionID,從而實現SSO。
但是,后面我們發現這種方式有幾種弊端:
a. 所有同域名的系統都能獲取SessionID,易被修改且不安全;
b. 跨域無法使用。

ticket驗證,我們目前采取的是這種方式

這種實現的SSO有以下幾個步驟:
a. 用戶訪問某個子系統,發現如果未登錄,則引導用戶跳轉到SSO登錄頁面;
b. 判斷SSO是否已經登錄;
c. 如果已經登錄,直接跳轉到回調地址,并返回認證ticket;
d. 如果未登錄,用戶正確輸入用戶名/密碼,認證通過跳轉到回調地址,并返回認證ticket;
e. 子系統獲取ticket,調用SSO獲取用戶uid等信息,成功后讓用戶登錄。

前面已經說了,如何通過Cookie來實現SSO,主要是如何解決跨域問題。首先來談談Set-Cookie中的domain屬性。

Cookie domain

為了讓Http協議在一定程度上保持上下文,server在響應的頭部可以加入Set-Cookie來寫入一些數據到客戶端,Set-Cookie中的domain字段用來表示這個cookie所在的域。
栗子:
我們訪問www.cookieexm.com,如果server在返回頭部中加入了Set-Cookie,如果不指定domain,那么默認這個cookie的域就是www.cookieexm.com,也就是只有訪問www.cookieexm.com時客戶端才會把這個cookie返給服務端。
如果我們指定domain.cookieexm.com,那么客戶端在訪問以下域名:www.cookieexm.com www1.cookieexm.com a.cookieexm.com ***.cookieexm.com 時都能夠把cookie返回。
所以,我們得出一條結論:客戶端對cookie的domain的匹配是從結尾進行匹配的,有了這個基礎,我們就可以實現我們的SSO登陸了。

cookie中需要注意的

  • 設置為http-only
  • 涉及登錄憑證(如票據或者用戶名)應該加密
  • cookie不能存放隱私數據

具體方案

假設我們需要在如下子系統 **.a1.a2 **.b1.b2 **.c1.c2間實現單點登錄,首先我們需要一個專門用于單點登陸的認證系統(sso.s1.s2)。假設目前系統處于未登錄狀態,訪問www.a1.a2為例:


 

分別看一下每個步驟作用:

  1. 請求www.a1.a2
  2. www.a1.a2收到請求,檢查是否攜帶登錄的cookie,目前沒有登陸過,那么重定向到sso認證中心
  3. SSO提供登陸窗口,用戶輸入用戶名 口令。SSO系統驗證用戶名和口令
  4. 這一步是關鍵,如果登錄成功,首先把SSO系統的Cookie放到客戶端;同時,將用戶的認證信息傳遞通過重定向傳遞給業務方,注意,這個傳遞明顯不能通過cookie來傳遞(不同域嘛),一般是通過加密的querystring。
  5. 業務方的驗證系統收到sso認證信息,再進行認證
  6. 業務方認證通過之后,把認證結果的cookie寫入到.a1.a2,至此,SSO認證完成
  7. 重定向到業務系統www.a1.a2,由前面的結論可知,此時所有以.a1.a2結尾的業務系統都可以使用這個認證之后的cookie
  8. response

說明:
業務認證系統不一定存在,有些不是太敏感的系統可以直接從SSO Authorization重定向到業務系統,并把SSO的認證信息帶過去。

承接上文,此時,如果用戶訪問www.b1.b2應用,如下圖所示:


 

與訪問www.a1.a2不同的是我們在重定向到SSO Authorization時已經不需要再去輸入用戶名,因為sso.s1.s2此時已經存有cookie,直接用cookie驗證。
以上,就是一個簡單的基于Cookie的登陸系統。

 

其中幾個問題需要重點解決

  • 如何高效存儲大量臨時性的信任數據
  • 如何防止信息傳遞過程被篡改
  • 如何讓SSO系統信任登錄系統和免登系統

對于第一個問題,一般可以采用類似與memcached的分布式緩存的方案,既能提供可擴展數據量的機制,也能提供高效訪問

對于第二個問題,一般采取數字簽名的方法,要么通過數字證書簽名,要么通過像md5的方式,這就需要SSO系統返回免登URL的時候對需驗證的參數進行 md5加密,并帶上token一起返回,最后需免登的系統進行驗證信任關系的時候,需把這個token傳給SSO系統,SSO系統通過對token的驗證 就可以辨別信息是否被改過

對于最后一個問題,可以通過白名單來處理,說簡單點只有在白名單上的系統才能請求生產信任關系,同理只有在白名單上的系統才能被免登錄。

 

轉載地址:http://www.jianshu.com/p/baa94d5f1673


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区视频在线播放| 2019中文字幕在线观看| 欧美人在线观看| 久久久中文字幕| 亚洲va久久久噜噜噜| 国产一区二区免费| 亚洲影院色在线观看免费| 亚洲专区在线视频| 日韩电影免费观看中文字幕| 午夜精品久久久久久久99热浪潮| 中文字幕日韩综合av| 成人在线观看视频网站| 热久久美女精品天天吊色| 国产在线98福利播放视频| 亚洲欧美制服另类日韩| www.日本久久久久com.| 久久躁日日躁aaaaxxxx| 欧美性色视频在线| 国产精品综合久久久| 亚洲精品成a人在线观看| 国产精品免费久久久| 日本中文字幕久久看| 久久香蕉精品香蕉| 成人激情视频免费在线| 韩国三级日本三级少妇99| 久久久精品999| 国产网站欧美日韩免费精品在线观看| 成人精品福利视频| 欧美成人性色生活仑片| 国产性色av一区二区| 久久影视电视剧免费网站| 亚洲欧美日韩国产成人| 国产精品视频久久久久| 欧美视频二区36p| 色琪琪综合男人的天堂aⅴ视频| 97精品一区二区视频在线观看| 午夜精品久久久久久久久久久久| 国产91九色视频| 国产欧美精品xxxx另类| 国产精品久久久久99| 91精品国产成人| 久久精品电影网站| 欧美中文字幕视频在线观看| 欧美成人亚洲成人日韩成人| 精品国内亚洲在观看18黄| 欧美电影在线观看高清| 一区二区三区美女xx视频| 久久久久久尹人网香蕉| 中文字幕日韩专区| 中文字幕久精品免费视频| 亚洲在线一区二区| 欧美一区二区大胆人体摄影专业网站| 欧美一区在线直播| 国产美女精彩久久| 亚洲第一网中文字幕| 久久久www成人免费精品| 久久精品99国产精品酒店日本| 国产精品伦子伦免费视频| 亚洲aⅴ男人的天堂在线观看| 成人性生交大片免费看视频直播| 亚洲日本欧美中文幕| 欧美日韩国产一中文字不卡| 国产成人高清激情视频在线观看| 成人日韩av在线| 久久精品在线播放| 色婷婷综合久久久久| 日韩国产精品亚洲а∨天堂免| 日韩在线观看免费高清| 久久97久久97精品免视看| 一区二区福利视频| 欧美精品videosex极品1| 国产日韩欧美夫妻视频在线观看| 最近2019年日本中文免费字幕| 久久夜色撩人精品| 久久在精品线影院精品国产| 国产69精品久久久久9| 精品国产视频在线| 俺去亚洲欧洲欧美日韩| 欧美孕妇孕交黑巨大网站| 亚洲一区二区中文字幕| 亚洲国产天堂久久综合网| 国产精品久久视频| 成人97在线观看视频| 成人午夜激情免费视频| 亚洲网址你懂得| 日韩精品免费视频| 不卡av在线网站| 欧美性猛交xxxx乱大交极品| 亚洲2020天天堂在线观看| 国产一区二区三区三区在线观看| 亚洲人成网站在线播| 国产精品夜色7777狼人| 久久久久久久999精品视频| 亚洲欧美日韩国产中文专区| 亚洲欧美日韩国产精品| 日本成熟性欧美| 狠狠久久五月精品中文字幕| 亚洲欧美日韩爽爽影院| 日韩中文av在线| 国产国语刺激对白av不卡| 亚洲a一级视频| 精品国产91久久久久久老师| 亚洲午夜女主播在线直播| 97热在线精品视频在线观看| 亚洲国产欧美一区二区三区同亚洲| 精品国产拍在线观看| 日韩欧美极品在线观看| 日韩经典第一页| 国产精品在线看| 欧美日韩亚洲国产一区| 日韩电影网在线| 国产日韩欧美在线视频观看| 日韩av毛片网| 亚洲第一精品夜夜躁人人躁| 国产欧美日韩视频| 国产精品久久久久久网站| 日韩av综合网站| 久久亚洲欧美日韩精品专区| 一本大道久久加勒比香蕉| 国产在线视频2019最新视频| 在线视频欧美日韩精品| 91最新国产视频| 亚洲男人天堂久| 久久男人的天堂| 国产精品一区二区三区久久久| 亚洲国产97在线精品一区| 亚洲欧美日韩另类| 在线播放日韩av| 91成人性视频| 日韩av片永久免费网站| 日韩少妇与小伙激情| 国产美女精彩久久| 国模极品一区二区三区| 久久久人成影片一区二区三区观看| 欧美小视频在线观看| 亚洲欧美国产高清va在线播| 青草青草久热精品视频在线观看| 成人有码在线视频| 国产精品自拍小视频| 国产精品国产自产拍高清av水多| 黄色一区二区在线观看| 国产欧美 在线欧美| 欧美日韩亚洲精品一区二区三区| 亚洲伊人一本大道中文字幕| 九色精品美女在线| 久久亚洲精品国产亚洲老地址| 欧美成人在线免费| 色先锋资源久久综合5566| 久久久久日韩精品久久久男男| 中国日韩欧美久久久久久久久| 色青青草原桃花久久综合| 亚洲www在线观看| 亚洲曰本av电影| 亚洲伊人久久大香线蕉av| 欧美黑人狂野猛交老妇| 国产精品美女在线观看| 欧美另类xxx| 国产美女久久久| 国产精品成人va在线观看| 国产精品高潮视频| 亚洲精品国产综合久久| 久久久久这里只有精品| 国产欧美韩国高清| 亚洲精品理论电影|