CAS單點登錄系列原理簡單介紹

      網友投稿 1173 2022-05-29

      文章目錄

      一、 SSO簡介

      1.1 單點登錄定義

      1.2 單點登錄角色

      1.3 單點登錄分類

      二、 CAS簡介

      2.1 CAS簡單定義

      2.2 CAS體系結構

      2.3 CAS原理

      三、CAS服務端部署

      附錄

      一、 SSO簡介

      1.1 單點登錄定義

      單點登錄(Single sign on),英文名稱縮寫SSO,SSO的意思就是在多系統的環境中,登錄單方系統,就可以在不用再次登錄的情況下訪問相關受信任的系統。也就是說只要登錄一次單體系統就可以。

      1.2 單點登錄角色

      單點登錄一般包括下面三種角色:

      ①用戶(多個);

      ②認證中心(一個);

      ③Web應用(多個)。

      PS:這里所說的web應用可以理解為SSO Client,認證中心可以說是SSO Server。

      1.3 單點登錄分類

      因為http協議是無狀態的協議,所以要保持登錄狀態,必須要存儲登錄信息,按照存儲方式,單點登錄實現方式主要可以分為兩種。

      一種是基于Cookie的,這種比較常見,比如下文介紹的CAS也是基于Cookie的;

      另外一種是基于Session的,其實理解起來就是會話共享,只有實現不同子系統之間的會話共享就能實現單點登錄,詳情可以參考我之前的博客,就是實現會話共享實現單點登錄的,https://blog.csdn.net/u014427391/article/details/78653482

      二、 CAS簡介

      2.1 CAS簡單定義

      CAS(Center Authentication Service)是耶魯大學研究的一款開源的單點登錄項目,主要為web項目提供單點登錄實現,屬于Web SSO。

      CAS Github鏈接

      Apereo CAS官方網站

      2.2 CAS體系結構

      CAS體系結構分為CAS Server和CAS Client。

      CAS Server就是Cas開源的,需要去github下載,然后進行修改;Cas Client

      可以是App或者web端的或者PC端,CAS支持多種開發語言,java、php、C#等等

      PS:圖來自官網,這里簡單介紹一下,從圖可以看出,CAS支持多種方式的認證,一種是LDAP的、比較常見的數據庫Database的JDBC,還有Active Directory等等;支持的協議有Custom Protocol 、 CAS 、 OAuth 、 OpenID 、 RESTful API 、 SAML1.1 、 SAML2.0 等

      2.3 CAS原理

      下面給出一張來自CAS官方的圖片

      CAS登錄等系統分為CAS Server和CAS Client,下面,我根據我的理解稍微解釋一下:

      1、用戶訪問CAS Client請求資源

      2、客戶端程序做了重定向,重定向到CAS Server

      3、CAS Server會對請求做認證,驗證是否有TGC(Ticket Granted Cookie,有TGC說明已經登錄過,不需要再登錄,沒有就返回登錄頁面

      4、認證通過后會生成一個Service Ticket返回Cas Client,客戶端進行Ticket緩存,一般放在Cookie里,我們稱之為TGC(Ticket Granted Cookie)

      5、然后Cas Client就帶著Ticket再次訪問Cas Server,CAS Server進行Ticket驗證

      6、CAS Server對Ticket進行驗證,通過就返回用戶信息,用戶拿到信息后就可以登錄

      看到這個過程,我們大概就能理解CAS是怎么實現的,看起來過程挺多的,不過這些過程都是CAS在后臺做的。CAS Service和CAS Client通訊基于HttpUrlConnection

      注意要點:

      TGT(Ticket Granded Ticket),就是存儲認證憑據的Cookie,有TGT說明已經通過認證

      ST(Service Ticket),是由CAS認證中心生成的一個唯一的不可偽裝的票據,用于認證的

      沒登錄過的或者TGT失效的,訪問時候也跳轉到認證中心,發現沒有TGT,說明沒有通過認證,直接重定向登錄頁面,輸入賬號密碼后,再次重定向到認證中心,驗證通過后,生成ST,返回客戶端保存到TGC

      登錄過的而且TGT沒有失效的,直接帶著去認證中心認證,認證中心發現有TGT,重定向到客戶端,并且帶上ST,客戶端再帶ST去認證中心驗證

      三、CAS服務端部署

      現在博客簡單介紹一下,CAS Server簡單部署實現,CAS是一款開源框架,目前應用比較廣泛。下面簡單介紹一下:

      cas開源到github上,不過只有幾個版本有cas release服務端,其它大部分版本都只有source源碼而已,所以其它版本都需要自己編譯,不想自己編譯的可以下載V4.0.0版本的。

      https://github.com/apereo/cas/releases/tag/v4.0.0

      下載cas server之后,我們就可以簡單部署一下,中間件可以用Tomcat

      cas的安全機制是依靠SSL實現的,所以一般的http非安全鏈接不支持的,雖然是這么說,不過學習練習的話,也可以去掉https要求,下面介紹說一下:

      可以先將cas-server-4.0.0-release.zip解壓到Tomcat的webapp目錄下面,然后需要修改一個配置文件

      (1)、先修改一下cas-server-4.0.0-release的WEB-INF下面的deployerConfigContext.xml

      修改前:

      1

      2

      3

      4

      修改后,PS:加上p:requireSecure=“false”

      1

      2

      3

      (2)、修改WEB-INF下面的spring-configuration文件夾下面的ticketGrantingTicketCookieGenerator.xml

      修改前:

      1

      2

      3

      4

      5

      修改后,PS:改為p:cookieSecure=“false”

      1

      2

      3

      4

      5

      (3)、修改WEB-INF下面的spring-configuration文件夾下面的warnCookieGenerator.xml

      修改前:

      1

      2

      3

      4

      5

      修改后,PS:改為p:cookieSecure=“false”

      1

      2

      3

      4

      5

      6

      (4)、修改CAS默認登錄jsp頁面

      可以注釋WEB-INF\view\jsp\default\ui\casLoginView.jsp頁面如下代碼

      Non-secure Connection

      You are currently accessing CAS over a non-secure connection. Single Sign On WILL NOT WORK. In order to have single sign on work, you MUST log in over HTTPS.

      1

      2

      3

      4

      5

      6

      CAS單點登錄系列之原理簡單介紹

      去掉Https支持要求后,就可以通過http的鏈接登錄cas server了,用戶名是casuser,密碼是Mellon

      PS:可以在deployerConfigContext.xml里看到配置,正規項目是實現jdbc支持

      1

      2

      3

      4

      5

      6

      7

      8

      單點登錄

      單點登出

      附錄

      參考教程:

      Cas專題文章列表

      springboot + shiro + cas4.2.7 實戰

      HTTP

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:nanomsg高性能通信庫的簡單實用分享丨【拜托了,物聯網!】
      下一篇:ModelArts訓練作業快速入門與最佳使用指引
      相關文章
      亚洲国产精品人久久| 亚洲AV综合色区无码一区| 亚洲国产精品福利片在线观看| 亚洲性在线看高清h片| 亚洲AV无码乱码在线观看性色扶| 亚洲欧美日韩一区二区三区| 亚洲日本乱码卡2卡3卡新区| 亚洲a视频在线观看| 亚洲an日韩专区在线| 国产亚洲中文日本不卡二区| 国内精品久久久久影院亚洲| 亚洲久热无码av中文字幕| 亚洲色在线无码国产精品不卡| 亚洲精品欧美综合四区| 久久亚洲精品11p| 在线观看亚洲电影| 亚洲äv永久无码精品天堂久久| 亚洲成A∨人片在线观看不卡 | 亚洲大成色www永久网址| 久久精品国产亚洲AV蜜臀色欲| 亚洲av无码片区一区二区三区| 亚洲国产日韩视频观看| 亚洲综合av一区二区三区不卡 | 亚洲国产日韩精品| 亚洲另类无码专区首页| 午夜亚洲av永久无码精品| 亚洲国产香蕉人人爽成AV片久久| 亚洲精品国精品久久99热| 亚洲午夜久久久影院| 亚洲熟妇无码乱子AV电影| 久久亚洲伊人中字综合精品| 亚洲视频一区在线| 亚洲一欧洲中文字幕在线| 亚洲性色精品一区二区在线| MM1313亚洲精品无码久久| 亚洲男人的天堂一区二区| 亚洲国产精品一区二区第四页| www国产亚洲精品久久久| 精品亚洲成α人无码成α在线观看 | 亚洲国产成人久久99精品| 2019亚洲午夜无码天堂|