cas版本 5.3.x,此版本下一個版本v6.0.x需要JDK11,目前個人常用還僅限於JDK8。
架構
系統組件
CAS服務端和衆多客戶端組成CAS系統架構的2大物理組件,2大組件通過各種協議進行通信交互。
CAS 服務端
CAS 服務端是java servlet應用,構建在spring framework之上,它的主要作用是進行用戶身份認證和賦予用戶進入相關啓動了CAS功能的被稱爲CAS客戶端的應用服務,完成這些功能是通過發出和驗證票據。當用戶登錄成功,CAS服務端會發出一個TGT,服務端會話創建。ST票據信息會在用戶以TGT作爲token在瀏覽器地址中訪問應用服務。ST隨後被CAS服務端通過後臺通道校驗。這些交互過程在CAS 協議中進行了詳細的描述。
CAS 客戶端
術語"CAS客戶端”有兩層不同的含義。cas客戶端可以是任何啓用了CAS的應用程序,可以通過受支持的協議與CAS服務端通信。cas客戶端是軟件包,可以與各種軟件平臺和應用程序集成,以便通過某些身份驗證協議(如CAS、SAML、OAuth)與CAS服務端通信。支持多個軟件平臺和產品的CAS客戶端已經開發完成。
支持的平臺:
- Apache httpd Server (mod_auth_cas module)
- Java (Java CAS Client)
- .NET (.NET CAS Client)
- PHP (phpCAS)
- Perl (PerlCAS)
- Python (pycas)
- Ruby (rubycas-client)
支持的應用產品
- Canvas
- Atlassian Confluence
- Atlassian JIRA
- Drupal
- Liferay
- uPortal
- …
當術語“CAS客戶端”在本手冊中沒有進一步限定時,它是指集成組件,如Java CAS客戶端,而不是依賴於CAS服務端的應用程序。
支持的協議:
客戶端通過幾種受支持的協議之一與服務器通信。所有受支持的協議在概念上都是相似的,但是有些協議具有某些特性,使它們適合於特定的應用程序或場景。例如,CAS協議支持委託(代理)身份驗證,SAML協議支持屬性釋放和單點退出。
軟件組件
將CAS服務器描述爲三層子系統是很有幫助的:
- Web (Spring MVC/Spring Webflow)
- Ticketing
- Authentication
幾乎所有的部署考慮和組件配置都涉及到這三個子系統。Web層是與所有外部系統(包括CAS客戶端)通信的端點。Web層委託給票據子系統生成用於CAS客戶端訪問的票據。SSO會話從成功身份驗證的票據頒發票據開始,因此票據子系統經常委託給身份驗證子系統。
Spring Framework
CAS使用了Spring框架的許多方面;最值得注意的是Spring MVC和Spring Webflow。Spring爲核心CAS代碼庫和部署人員提供了一個完整的、可擴展的框架;通過連接CAS和Spring API擴展點,可以直接定製或擴展CAS行爲。Spring的一般知識有助於理解一些框架組件之間的相互作用,但這不是嚴格要求的。
Spring Boot
CAS也主要基於Spring Boot,這使它能夠以Spring平臺和第三方庫的觀點創建獨立的web應用程序,儘可能避免XML配置的麻煩。Spring Boot允許CAS隱藏其組件及其配置的大部分內部複雜性,並提供自動配置模塊,這些模塊可以簡單而自動地配置正在運行的應用程序上下文,而不需要太多的手動干預。