日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

單點登錄 (SingleSign-On,SSO) ,是一種幫助用戶快捷訪問網絡中多個站點的安全通信技術。單點登錄系統基于一種安全的通信協議,該協議通過多個系統之間的用戶身份信息的交換來實現單點登錄。使用單點登錄系統時,用戶只需要登錄一次,就可以訪問多個系統,不需要記憶多個口令密碼。

云程平臺支持CAS、OAuth2、JWT三種主流的單點登錄技術,客戶可根據需求選擇對應技術方案。

一、CAS總體架構介紹

CAS(Central Authentication Service)是 Yale大學發起的一個企業級的、開源的項目,旨在為 Web 應用系統提供一種可靠的單點登錄解決方法。CAS的目標是允許用戶訪問多個應用程序只提供一次用戶憑據(如用戶名和密碼)。

CAS 體系包含兩個部分: CAS Server 和 CAS Client。CAS Server 需要獨立部署,主要負責對用戶的認證工作;CAS Client 負責處理對客戶端受保護資源的訪問請求,需要登錄時,重定向到 CAS Server。

 

CAS 具有以下特點:

  • 一個開放的,文檔齊全的協議。
  • 開源的JAVA服務器組件。
  • CAS Client 支持非常多的客戶端(這里指單點登錄系統中的各個 Web 應用),包括 Java, .NET, php, Perl, Apache, uPortal, Ruby 等。
  • 文檔社區化和實現的支持。
  • 具有廣泛的客戶群的支持。

CAS官方文檔:https://apereo.github.io/cas/5.3.x/index.html#

二、CAS單點原理和集成流程

在 CAS 的整個登錄過程中,有三個重要的概念。

  1. TGT:TGT 全稱叫做 Ticket Granting Ticket,這個相當于我們平時所見到的 HttpSession 的作用,用戶登錄成功后,用戶的基本信息,如用戶名、登錄有效期等信息,都將存儲在此。
  2. TGC:TGC 全稱叫做 Ticket Granting Cookie,TGC 以 Cookie 的形式保存在瀏覽器中,根據 TGC 可以幫助用戶找到對應的 TGT,所以這個 TGC 有點類似與會話 ID。
  3. ST:ST 全稱是 Service Ticket,這是 CAS Sever 通過 TGT 給用戶發放的一張票據,用戶在訪問其他服務時,發現沒有 Cookie 或者 ST ,那么就會 302 到 CAS Server 獲取 ST,然后會攜帶著 ST 302 回來,CAS Client 則通過 ST 去 CAS Server 上獲取用戶的登錄狀態。

CAS的單點登錄SSO流程如下, 應用系統要做單點登錄,需要跟CAS服務進行集成,首先要理解CAS集成流程和原理。

 

  1. 用戶通過瀏覽器訪問應用1,應用1 發現用戶沒有登錄,于是返回 302,并且攜帶上一個 service 參數,讓用戶去 CAS Server 上登錄。
  2. 瀏覽器自動重定向到 CAS Server 上,CAS Server 獲取用戶 Cookie 中攜帶的 TGC,去校驗用戶是否已經登錄,如果已經登錄,則完成身份校驗(此時 CAS Server 可以根據用戶的 TGC 找到 TGT,進而獲取用戶的信息);如果未登錄,則重定向到 CAS Server 的登錄頁面,用戶輸入用戶名/密碼,CAS Server 會生成 TGT,并且根據 TGT 簽發一個 ST,再將 TGC 放在用戶的 Cookie 中,完成身份校驗。
  3. CAS Server 完成身份校驗之后,會將 ST 拼接在 service 中,返回 302,瀏覽器將首先將 TGC 存在 Cookie 中,然后根據 302 的指示,攜帶上 ST 重定向到應用1。
  4. 應用1 收到瀏覽器傳來的 ST 之后,拿去 CAS Server 上校驗,去判斷用戶的登錄狀態,如果用戶登錄合法,CAS Server 就會返回用戶信息給 應用1。
  5. 瀏覽器再去訪問應用2,應用2 發現用戶未登錄,重定向到 CAS Server。
  6. CAS Server 發現此時用戶實際上已經登錄了,于是又重定向回應用2,同時攜帶上 ST。
  7. 應用2 拿著 ST 去 CAS Server 上校驗,獲取用戶的登錄信息。
  8. 在整個登錄過程中,瀏覽器分別和 CAS Server、應用1、應用2 建立了會話,其中,和 CAS Server 建立的會話稱之為全局會話,和應用1、應用2 建立的會話稱之為局部會話;一旦局部會話成功建立,以后用戶再去訪問應用1、應用2 就不會經過 CAS Server 了。

三、CAS服務端如何部署

云程平臺對CAS 5.3.x版本無縫集成,并對CAS認證校驗進行了擴展,項目上請使用平臺提供的CAS 5.3.x運行包。運行CAS之前需要在數據庫先執行平臺的腳本,CAS獲取用戶信息需訪問平臺的SYS_USER表。

1 修改數據庫連接

打開 casWEB-INFclassesApplication.properties

修改如下配置:

#數據庫配置

spring.datasource.driver-class-name=com.MySQL.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/yuncheng2021?characterEncoding=UTF-8&useUnicode=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource
spring.jpa.database=mysql
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

2 啟動cas

需要準備Tomcat,把cas包放到tomcat/webapps目錄下,在tomcat/bin目錄下執行startup.bat(windows)或startup.sh(linux)。

啟動成功后訪問cas地址,界面如下圖所示:

 

四、云程如何對接CAS

平臺后端CAS配置

云程平臺后端已集成CAS代碼,在yml配置文件中配置cas服務地址即可。

application.yml 進行如下配置:

#cas單點登錄
cas:
prefixUrl: http://cas.example.org:8443/cas

平臺前端CAS配置

修改
public/config/bootConfig.js

VUE_APP_SSO設置為true

VUE_APP_CAS_BASE_URL配置單點登錄服務地址

//單點登錄是否開啟
VUE_APP_SSO:true,
//單點登錄地址
VUE_APP_CAS_BASE_URL:"http://cas.example.org:8443/cas"

分享到:
標簽:單點 登錄
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定