国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【實踐篇】基于CAS的單點登錄實踐之路

這篇具有很好參考價值的文章主要介紹了【實踐篇】基于CAS的單點登錄實踐之路。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

作者:京東物流?趙勇萍

前言

上個月我負責的系統(tǒng)SSO升級,對接京東ERP系統(tǒng),這也讓我想起了之前我做過一個單點登錄的項目。想來單點登錄有很多實現(xiàn)方案,不過最主流的還是基于CAS的方案,所以我也就分享一下我的CAS實踐之路。

什么是單點登錄

單點登錄的英文名叫做:Single Sign On(簡稱SSO)。SSO的定義是在多個應用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統(tǒng)。之前我做的系統(tǒng),需要需要設計一套支持單點登錄的鑒權認證系統(tǒng),所有系統(tǒng)都基于一套鑒權系統(tǒng)進行登錄,并且可以實現(xiàn)各個系統(tǒng)之間的互信和跳轉。所以就采用了CAS架構。

什么是CAS

CAS架構的核心是需要搭建一個CAS Server,該服務獨立部署,擁有獨立三級域名,主要負責對用戶的認證工作。他主要組成包括WEB前端提供登錄頁面,票據(jù)模塊,認證模塊。

核心票據(jù):

a. TGT(Ticket Grangting Ticket):TGT是CAS為用戶簽發(fā)的登錄票據(jù),有TGT就表明用戶在CAS上成功登錄過。用戶在CAS認證成功后,會生成一個TGT對象,放入自己的緩存中(Session),同時生成TGC以cookie的形式寫入瀏覽器。當再次訪問CAS時,會先看cookie中是否存在TGC,如果存在則通過TGC獲取TGT,如果獲取到了TGT則代表用戶之前登錄過,通過TGT及訪問來源生成針對來源的ST,用戶就不用再次登錄,以此來實現(xiàn)單點登錄。

b. TGC(Ticket-granting cookie):TGC就是TGT的唯一標識,以cookie的形式存在在CAS Server三級域名下,是CAS Server 用來明確用戶身份的憑證。

c. ST(Service Ticket):ST是CAS為用戶簽發(fā)的訪問某一客戶端的服務票據(jù)。用戶訪問service時,service發(fā)現(xiàn)用戶沒有ST,就會重定向到 CAS Server 去獲取ST。CAS Server 接收到請求后,會先看cookie中是否存在TGC,如果存在則通過TGC獲取TGT,如果獲取到了TGT則代表用戶之前登錄過,通過TGT及訪問來源生成針對來源的ST。用戶憑借ST去訪問service,service拿ST 去CAS Server 上進行驗證,驗證通過service生成用戶session,并返回資源。

基于CAS的系統(tǒng)實踐方案

1. 業(yè)務背景

在我負責的項目系統(tǒng)中,后臺業(yè)務采用的是微服務架構,有統(tǒng)一的業(yè)務網(wǎng)關,所以基于統(tǒng)一的業(yè)務網(wǎng)關,整合客戶其他系統(tǒng)登錄鑒權流程。具體業(yè)務架構圖如下:

在此說明一下,因為登錄系統(tǒng)的用戶體系在不同的系統(tǒng)中,所以我在設計SSO統(tǒng)一登錄認證的時候,把SSO系統(tǒng)與業(yè)務系統(tǒng)結構出來。而用戶體系有兩套,一套叫做采方用戶體系,一套叫做供方用戶體系。所以才會有如圖所示的SSO Server服務,他本身不負責用戶管理,但會通過統(tǒng)一標準接口的方式實現(xiàn)控制反轉,實現(xiàn)對用戶服務的調用。

2. 單點登錄時序圖

時序圖如下:

如圖所示,時序圖標識的是兩個系統(tǒng)通過SSO服務,實現(xiàn)了單點登錄。

3. 單點登錄核心接口說明

3.1 sso認證跳轉接口

調用說明:

由應用側發(fā)起調用認證中心的接口。

URL地址:

https:// sso.com?appId=***&tenantType=1&redirectUri=***

請求方式:302重定向

參數(shù)說明:

appId: 對接SSO認證中心的應用唯一標識,由SSO認證中心通過線下的方式頒發(fā)給各個應用系統(tǒng)。

tenantType: 標記是供方登錄還是采方登錄。采方為1,供方為2.

RedirectUri: 應用回調地址。

3.2 重定向獲取臨時令牌code接口

調用說明:

有認證中心發(fā)起,應用側需實現(xiàn)的接口。認證中心通過302重定向,將code傳給應用側,應用側自行發(fā)起通過臨時令牌code換取accessTokenInfo。

URL地址:

https://應用域名?code=***

請求方式:GET

參數(shù)說明:

Code: 臨時令牌,有效時間5min

3.3 獲取accessTokenInfo接口

調用說明

由應用側發(fā)起調用認證中心的接口。通過該接口可以獲取accessTokenInfo信息,然后系統(tǒng)自行生成本系統(tǒng)session信息。

URL地址:

https://sso.com/api/token/create?grantType=authorization_code&appId=yuncai&code=***

請求方式:GET

參數(shù)說明:

appId: 對接SSO認證中心的應用唯一標識,由SSO認證中心通過線下的方式頒發(fā)給各個應用系統(tǒng)。

code: 臨時令牌,需加密

加密規(guī)則如下:

  1. Code先進行base64加密

  2. 用認證中心給的privateKey進行加密(RSA加密)。

  3. 加密后進行URLCode轉碼。

返回參數(shù):

{
  “accessToken”:  “****”,  //token令牌
  “expiresIn”: 7200,        //過期時間
  “user”: {
    “username”: “zhangsan”,
       “fullName”: “張三”,
      “userId”: “1212”,
      “phone”: “13100000000”,
      “email”: zhangsan@test.com,
      “tenantId”: “S2131123”,
      “tenantType”: 1
  }
}


3.4 刷新Token接口

調用說明:

由應用側發(fā)起調用認證中心的接口。當token快到失效期時,通過該接口可以刷新accessTokenInfo信息,然后系統(tǒng)自行生成本系統(tǒng)session信息。

URL地址:

https://sso.com/api/token/refresh?appId=yuncai&accessToken=***

請求方式:GET

參數(shù)說明:

appId: 對接SSO認證中心的應用唯一標識,由SSO認證中心通過線下的方式頒發(fā)給各個應用系統(tǒng)。

accessToken: 需要刷新的token值。

4. 單點登出邏輯

有單點登錄,也會有單點登出,這樣才會形成業(yè)務閉環(huán),對于單點登出邏輯,基本類似登錄的逆操作,時序圖如下:

5. 單點登出核心接口說明

5.1 登出sso認證中心跳轉接口

調用說明:

由應用側發(fā)起調用認證中心的接口。

URL地址:

https://sso.com/logout?redirectUri=***

請求方式:GET

參數(shù)說明

RedirectUri: 應用回調地址。

5.2 應用系統(tǒng)退出接口

調用說明

有認證中心發(fā)起,應用側需實現(xiàn)的接口。通過該接口觸發(fā)個應用系統(tǒng)清除緩存和session相關信息,實現(xiàn)系統(tǒng)登出。

URL地址:

https://應用系統(tǒng)域名/ssoLogout

請求方式:GET

 header: logoutRequest:=accessToken

總結

對于CAS這種單點登錄的架構,他是非常依賴于cookie的安全性的。所以CAS的安全性也在一定程度上取決于cookie的安全性,所有增強cookie安全性的措施,對于增強CAS都是有效的。

最后提一句,一定要使用HTTPS協(xié)議哦。文章來源地址http://www.zghlxwxcb.cn/news/detail-412322.html

到了這里,關于【實踐篇】基于CAS的單點登錄實踐之路的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 「ML 實踐篇」模型訓練

    「ML 實踐篇」模型訓練

    在訓練不同機器學習算法模型時,遇到的各類訓練算法大多對用戶都是一個黑匣子,而理解它們實際怎么工作,對用戶是很有幫助的; 快速定位到合適的模型與正確的訓練算法,找到一套適當?shù)某瑓?shù)等; 更高效的執(zhí)行錯誤調試、錯誤分析等; 有助于理解、構建和訓練神經(jīng)

    2023年04月16日
    瀏覽(25)
  • 程序員職業(yè)規(guī)劃-實踐篇

    程序員職業(yè)規(guī)劃-實踐篇

    你是否認真思考過3-5年、10年: 你想成為什么樣的人 ? 作為一名技術人,我們應認真規(guī)劃自己的職業(yè)發(fā)展,不再焦慮、為自己加速~ 一塊留言來聊聊吧~ 你該去什么樣的公司、做什么樣的事情、拿多少錢,都取決于一個問題: 你想成為什么樣的人 ? 你是否認真思考過3-5年、

    2024年02月05日
    瀏覽(28)
  • 【實踐篇】推薦算法PaaS化探索與實踐 | 京東云技術團隊

    【實踐篇】推薦算法PaaS化探索與實踐 | 京東云技術團隊

    作者:京東零售 崔寧 目前,推薦算法部支持了主站、企業(yè)業(yè)務、全渠道等20+業(yè)務線的900+推薦場景,通過梳理大促運營、各垂直業(yè)務線推薦場景的共性需求,對現(xiàn)有推薦算法能力進行沉淀和積累,并通過算法PaaS化打造通用化的推薦能力,提升各業(yè)務場景推薦賦能效率,高效賦

    2024年02月15日
    瀏覽(26)
  • 「ML 實踐篇」分類系統(tǒng):圖片數(shù)字識別

    「ML 實踐篇」分類系統(tǒng):圖片數(shù)字識別

    目的 :使用 MNIST 數(shù)據(jù)集,建立數(shù)字圖像識別模型,識別任意圖像中的數(shù)字; MNIST ,一組由美國高中生和人口調查局員工手寫的 70000 個數(shù)字圖片;每張圖片都用其代表的數(shù)字標記;因廣泛被應用于機器學習入門,被稱作機器學習領域的 Hello World ;也可用于測試新分類算法的

    2023年04月08日
    瀏覽(28)
  • 微服務實戰(zhàn)系列之ZooKeeper(實踐篇)

    微服務實戰(zhàn)系列之ZooKeeper(實踐篇)

    關于 ZooKeeper ,博主已完整的通過庖丁解牛式的 “解法” ,完成了概述。我想掌握了這些基礎原理和概念后,工作的問題自然迎刃而解,甚至offer也可能手到擒來,真實一舉兩得,美極了。 為了更有直觀的體驗,強化概念,博主特別獻上一篇實踐文章。理論聯(lián)系實踐,才能學

    2024年01月21日
    瀏覽(31)
  • 【實踐篇】領域驅動設計:DDD工程參考架構

    不同團隊落地DDD所采取的應用架構風格可能不同,并沒有統(tǒng)一的、標準的DDD工程架構。有些團隊可能遵循經(jīng)典的DDD四層架構,或改進的DDD四層架構,有些團隊可能綜合考慮分層架構、整潔架構、六邊形架構等多種架構風格,有些在實踐中可能引入CQRS解決讀模型與寫模型的差異

    2024年02月05日
    瀏覽(26)
  • Redis【實踐篇】之RedisTemplate基本操作

    Redis【實踐篇】之RedisTemplate基本操作

    在SpringBoot中,可以使用RedisTemplate來操作Redis數(shù)據(jù)庫。RedisTemplate是Spring Data Redis提供的一個強大的Redis客戶端,它支持各種Redis數(shù)據(jù)結構,并提供了許多方便的方法來操作這些數(shù)據(jù)結構。下面是一些RedisTemplate的用法示例: 在此示例中,創(chuàng)建了一個RedisTemplate對象,并設置了key和

    2024年02月16日
    瀏覽(31)
  • 瑞芯微RK3568開發(fā):GPIO實踐篇

    瑞芯微RK3568開發(fā):GPIO實踐篇

    ? ? ? ? SOC平臺各類GPIO構建原理是大道一統(tǒng)的,在各個諸如狀態(tài)、數(shù)據(jù)、中斷和屏蔽等寄存器具體含義用法,有少許差異。玩好RK的GPIO,需要先理解這類通用接口的框架。 ? ? ? ? 介紹RK3568的GPIO,認為講2類重要地址和記錄幾種編程實踐方法即可。 一、2類地址 ? ? ? ? RK

    2024年02月10日
    瀏覽(163)
  • 【實踐篇】DDD腳手架及編碼規(guī)范

    我們團隊一直在持續(xù)推進業(yè)務系統(tǒng)的體系化治理工作,在這個過程中我們沉淀了自己的DDD腳手架項目。腳手架項目是體系化治理過程中比較重要的一環(huán),它的作用有兩點: (1)可以對新建的項目進行統(tǒng)一的規(guī)范; (2)對于指導老項目進行DDD的改造提供指導。 本文主要是梳

    2024年02月11日
    瀏覽(28)
  • 【Redis實踐篇】使用Redisson 優(yōu)雅實現(xiàn)項目實踐過程中的5種場景

    【Redis實踐篇】使用Redisson 優(yōu)雅實現(xiàn)項目實踐過程中的5種場景

    Redisson是一個基于Redis的分布式Java對象和數(shù)據(jù)結構庫,它提供了豐富的功能和易于使用的API,使開發(fā)人員能夠輕松地在分布式環(huán)境中操作和管理數(shù)據(jù)。 作為一個分布式對象和數(shù)據(jù)結構庫,Redisson提供了許多常見的數(shù)據(jù)結構和算法的實現(xiàn),包括通用對象桶、二進制流、地理空間

    2024年02月13日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包