【工慾善其事必先利其器·單點登錄】CAS SSO介紹

CAS旨在爲WEB應用提供企業級的單點登錄解決方案,它是基於JAVA語言開發,是一個開源的並且文檔非常完善的組件,支持以下可插拔認證方式:LDAP,database,X.509,2-factor,支持多種協議:CAS,SAML,Oauth,OpenID,並且提供Java、.Net、PHP、Perl、Python、Ruby、Apache、uPortal等的客戶端依賴包,還集成了uPortal、BlueSocket、TikiWiki、Mule、Liferay、Moodle、Google等的登錄實現,還有活躍的社區支持,在世界各地得到了廣泛的應用。

官網地址:https://www.apereo.org/projects/cas

文檔中心:https://apereo.github.io/cas/4.2.x/index.html

CAS的架構

CAS組件

CAS由CAS Server(服務端)和CAS Clients(客戶端)兩部分組成,這兩部分通過多種協議進行通信交互實現單點登錄。

CAS Server(服務端)

CAS服務器是基於Spring框架上的Java 應用,其主要職責是通過發出和驗證票據,對用戶進行身份驗證並授予對啓用了CAS的服務(通常稱爲CAS客戶端)的訪問權。當服務器向成功登錄的用戶發出票據授予票據(TGT)時,將創建SSO會話。應用戶的請求,使用TGT作爲令牌通過瀏覽器重定向向服務發出服務票據(ST)。ST隨後在CAS服務器上通過反向通道通信進行驗證。這些交互在CAS協議文檔中有詳細的描述。

CAS Server的組成

幾乎所有的部署考慮和組件配置都涉及到這三個子系統。Web層是與所有外部系統(包括CAS客戶端)通信的端點。Web層將業務請求委託給票務子系統(Ticketing),以生成用於CAS客戶端訪問的票據。SSO會話依賴認證子系統(Authentication)成功認證身份後生成票據。

CAS使用了Spring框架的許多特性,特別是Spring MVC和Spring Webflow。以Spring爲基礎的CAS爲開發人員提供了一個完整的、可擴展的框架,通過實現CAS和Spring API擴展點來定製或擴展CAS非常簡單。熟悉Spring的一般知識有助於理解CAS組件之間的相互作用。能夠使用基於xml的配置是安裝、定製和擴展CAS的必備基礎。能夠使用XML,特別是Spring IOC容器是安裝CAS的先決條件。

CAS Clients(客戶端)

術語“CAS客戶端”在通常的使用中有兩個不同的含義。CAS客戶端一方面指任何啓用了CAS的應用程序,可以通過受支持的協議與服務器通信。CAS客戶端另一方面也指代一個軟件包,這個軟件包可以與各種軟件平臺和應用程序集成,以便通過某些身份驗證協議(如CAS、SAML、OAuth)與CAS服務器通信。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章