CAS實(shí)現(xiàn)SSO單點(diǎn)登錄原理

CAS 簡(jiǎn)介

CAS 初識(shí)

  1. CAS : Central Authentication Service 開(kāi)源的項(xiàng)目爷肝;為 Web 應(yīng)用系統(tǒng)提供一種可靠的單點(diǎn)登錄(SSO)解決方法
  2. 從結(jié)構(gòu)體系看, CAS 包括兩部分: CAS Server 和 CAS Client 陆错。CAS Server 負(fù)責(zé)完成對(duì)用戶的認(rèn)證工作 , 需要獨(dú)立部署 , CAS Server 會(huì)處理用戶名 / 密碼等憑證(Credentials) 灯抛。 CAS Client
    負(fù)責(zé)處理對(duì)客戶端受保護(hù)資源的訪問(wèn)請(qǐng)求,需要對(duì)請(qǐng)求方進(jìn)行身份認(rèn)證時(shí)音瓷,重定向到 CAS Server 進(jìn)行認(rèn)證对嚼。

SSO 單點(diǎn)登錄

  1. SSO初識(shí)

單點(diǎn)登錄( Single Sign-On , 簡(jiǎn)稱 SSO )是目前比較流行的服務(wù)于企業(yè)業(yè)務(wù)整合的解決方案之一, SSO 使得在多個(gè)應(yīng)用系統(tǒng)中绳慎,用戶只需要 登錄一次 就可以訪問(wèn)所有相互信任的應(yīng)用系統(tǒng)纵竖。

  1. SSO 實(shí)現(xiàn)模式的原則

     1. 所有的認(rèn)證登錄都在 SSO 認(rèn)證中心進(jìn)行;
     2. SSO 認(rèn)證中心通過(guò)一些方法來(lái)告訴 Web 應(yīng)用當(dāng)前訪問(wèn)用戶究竟是不是已通過(guò)認(rèn)證  的用戶杏愤;
     3.  SSO 認(rèn)證中心和所有的 Web 應(yīng)用建立一種信任關(guān)系靡砌,也就是說(shuō) web 應(yīng)用必須信任認(rèn)證中心。(單點(diǎn)信任)
    

以下內(nèi)容摘錄,自己描述的差勁

CAS 實(shí)現(xiàn)SSO 單點(diǎn)登錄-基礎(chǔ)模式

基礎(chǔ)模式 SSO 訪問(wèn)流程主要有以下步驟:

  1. 訪問(wèn)服務(wù): SSO 客戶端發(fā)送請(qǐng)求訪問(wèn)應(yīng)用系統(tǒng)提供的服務(wù)資源珊楼。

  2. 定向認(rèn)證: SSO 客戶端會(huì)重定向用戶請(qǐng)求到 SSO 服務(wù)器通殃。

  3. 用戶認(rèn)證:用戶身份認(rèn)證。

  4. 發(fā)放票據(jù): SSO 服務(wù)器會(huì)產(chǎn)生一個(gè)隨機(jī)的 Service Ticket 厕宗。

  5. 驗(yàn)證票據(jù): SSO 服務(wù)器驗(yàn)證票據(jù) Service Ticket 的合法性画舌,驗(yàn)證通過(guò)后,允許客戶端訪問(wèn)服務(wù)已慢。

  6. 傳輸用戶信息: SSO 服務(wù)器驗(yàn)證票據(jù)通過(guò)后曲聂,傳輸用戶認(rèn)證結(jié)果信息給客戶端

  7. CAS 最基本的協(xié)議過(guò)程:


    base.jpg

    ???如 上圖: CAS Client 與受保護(hù)的客戶端應(yīng)用部署在一起,以 Filter 方式保護(hù) Web 應(yīng)用的受保護(hù)資源佑惠,過(guò)濾從客戶端過(guò)來(lái)的每一個(gè) Web 請(qǐng)求朋腋,同 時(shí), CAS Client 會(huì)分析 HTTP 請(qǐng)求中是否包含請(qǐng)求 Service Ticket( ST 上圖中的 Ticket) 膜楷,如果沒(méi)有乍丈,則說(shuō)明該用戶是沒(méi)有經(jīng)過(guò)認(rèn)證的;于是 CAS Client 會(huì)重定向用戶請(qǐng)求到 CAS Server ( Step 2 )把将,并傳遞 Service (要訪問(wèn)的目的資源地址)。 Step 3 是用戶認(rèn)證過(guò)程忆矛,如果用戶提供了正確的 Credentials 察蹲, CAS Server 隨機(jī)產(chǎn)生一個(gè)相當(dāng)長(zhǎng)度请垛、唯一、不可偽造的 Service Ticket 洽议,并緩存以待將來(lái)驗(yàn)證宗收,并且重定向用戶到 Service 所在地址(附帶剛才產(chǎn)生的 Service Ticket ) , 并為客戶端瀏覽器設(shè)置一個(gè) Ticket Granted Cookie ( TGC ) ; CAS Client 在拿到 Service 和新產(chǎn)生的 Ticket 過(guò)后亚兄,在 Step 5 和 Step6 中與 CAS Server 進(jìn)行身份核實(shí)混稽,以確保 Service Ticket 的合法性。
    ???在該協(xié)議中审胚,所有與 CAS Server 的交互均采用 SSL 協(xié)議匈勋,以確保 ST 和 TGC 的安全性。協(xié)議工作過(guò)程中會(huì)有 2 次重定向 的過(guò)程膳叨。但是 CAS Client 與 CAS Server 之間進(jìn)行 Ticket 驗(yàn)證的過(guò)程對(duì)于用戶是透明的(使用 HttpsURLConnection )洽洁。

  8. CAS 請(qǐng)求認(rèn)證時(shí)序圖如下:


    時(shí)序.png

CAS 如何實(shí)現(xiàn) SSO

???當(dāng)用戶訪問(wèn)另一個(gè)應(yīng)用的服務(wù)再次被重定向到 CAS Server 的時(shí)候, CAS Server 會(huì)主動(dòng)獲到這個(gè) TGC cookie 菲嘴,然后做下面的事情:

  1. 如果 User 持有 TGC 且其還沒(méi)失效饿自,那么就走基礎(chǔ)協(xié)議圖的 Step4 ,達(dá)到了 SSO 的效果龄坪;
  2. 如果 TGC 失效昭雌,那么用戶還是要重新認(rèn)證 ( 走基礎(chǔ)協(xié)議圖的 Step3) 。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末健田,一起剝皮案震驚了整個(gè)濱河市烛卧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌抄课,老刑警劉巖唱星,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異跟磨,居然都是意外死亡间聊,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門抵拘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)哎榴,“玉大人,你說(shuō)我怎么就攤上這事僵蛛∩序颍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵充尉,是天一觀的道長(zhǎng)飘言。 經(jīng)常有香客問(wèn)我,道長(zhǎng)驼侠,這世上最難降的妖魔是什么姿鸿? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任谆吴,我火速辦了婚禮,結(jié)果婚禮上苛预,老公的妹妹穿的比我還像新娘句狼。我一直安慰自己,他們只是感情好热某,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布腻菇。 她就那樣靜靜地躺著,像睡著了一般昔馋。 火紅的嫁衣襯著肌膚如雪筹吐。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,624評(píng)論 1 305
  • 那天绒极,我揣著相機(jī)與錄音骏令,去河邊找鬼。 笑死垄提,一個(gè)胖子當(dāng)著我的面吹牛榔袋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播铡俐,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼凰兑,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了审丘?” 一聲冷哼從身側(cè)響起吏够,我...
    開(kāi)封第一講書(shū)人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滩报,沒(méi)想到半個(gè)月后锅知,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體阔拳,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡商膊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仗嗦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片可训。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昌妹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出握截,到底是詐尸還是另有隱情飞崖,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布谨胞,位于F島的核電站固歪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏胯努。R本人自食惡果不足惜昼牛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一术瓮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贰健,春花似錦、人聲如沸恬汁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)氓侧。三九已至脊另,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間约巷,已是汗流浹背偎痛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留独郎,地道東北人踩麦。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像氓癌,于是被迫代替她去往敵國(guó)和親谓谦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

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