CAS 之 Apereo CAS 簡介(一)


CAS 之 Apereo CAS 簡介(一)

Background(背景)

隨着公司業務的不斷擴展,后台接入子系統不斷增多,那么我們將針對不同的平台進行拆分為各自對應的子系統,
權限是不變的,那么我們不能每個子系統都單獨進行登錄認證,不然管理人員進行切換系統時會瘋掉。
那么,經過考察選用開源框架 Apereo CAS , 選定版本為 5.2.0。目前系統已在線,並已穩定。
接下來我會將系統進行脫敏整理出一套完善的基於微服務的CAS單點系統實施方案。
由於CAS是相對比較大的工程,所以建議使用者認真閱讀官方文檔進行調整。


Intro(介紹)

Central Authentication Service (CAS),通常稱為CAS。 CAS是一種針對Web的企業多語言單點登錄解決方案,並嘗試成為您的身份驗證和授權需求的綜合平台。

下面是官方的一段簡述:

CAS Enterprise Single Sign-On

  • Spring Webflow/Spring Boot Java server component.
  • 可拔插認證支持 (LDAP, Database, X.509, SPNEGO, JAAS, JWT, RADIUS, MongoDb, etc)
  • 多種協議支持 (CAS, SAML, WS-Federation, OAuth2, OpenID, OpenID Connect, REST)
  • 通過各種提供商支持多因素身份驗證 (Duo Security, FIDO U2F, YubiKey, Google Authenticator, Microsoft Azure, Authy etc)
  • 支持外部提供者的委托認證,例如: ADFS, Facebook, Twitter, SAML2 IdPs, etc.
  • Built-in support for password management, notifications, terms of use and impersonation.
  • Support for attribute release including user consent.
  • 實時監控和跟蹤應用程序行為,統計信息和日志。
  • 用特定的認證策略管理和注冊客戶端應用程序和服務。
  • 跨平台的客戶端支持 (Java, .Net, PHP, Perl, Apache, etc).
  • Integrations with InCommon, Box, Office365, ServiceNow, Salesforce, Workday, WebAdvisor, Drupal, Blackboard, Moodle, Google Apps, etc.

由以上可以看出, Central Authentication Service (CAS) 支持的功能廣泛。

Architecture(架構)

Architecture

System Components (系統組件)

CAS服務器和CAS客戶端組成CAS系統架構的兩個物理組件,它們通過各種協議進行通信。

CAS Server(CAS服務器)

CAS服務器是基於Spring框架構建的Java servlet,其主要職責是驗證用戶並通過發布和驗證票證來授予對啟用CAS的服務(通常稱為CAS客戶端)的訪問權限。 當服務器在成功登錄時向用戶發出票證授予票證(TGT)時,將創建SSO會話。 根據用戶的請求,通過使用TGT作為標記的瀏覽器重定向向服務發出服務票據(ST)。 ST隨后通過反向信道通信在CAS服務器上進行驗證。 CAS Protocol文檔中詳細描述了這些交互。

CAS Clients(CAS客戶端)

術語“CAS客戶”在其通用中有兩個不同的含義。 CAS客戶端是可以通過支持的協議與服務器進行通信的任何CAS支持的應用程序。 CAS客戶端也是一個軟件包,可以與各種軟件平台和應用程序集成,以便通過某種身份驗證協議(例如CAS,SAML,OAuth)與CAS服務器進行通信。 已經開發了支持多種軟件平台和產品的CAS客戶端。

Platforms: (軟件平台)

Applications:(平台)

  • Canvas
  • Atlassian Confluence
  • Atlassian JIRA
  • Drupal
  • Liferay
  • uPortal

Supported Protocols (支持協議)

客戶端通過幾種支持的協議與服務器進行通信。 所有支持的協議在概念上都是相似的,但有些協議的特征或特征使得它們適用於特定的應用程序或用例。 例如,CAS協議支持委托(代理)認證,並且SAML協議支持屬性發布和單一注銷。

Supported protocols:

Software Components(軟件組件)

根據三層子系統來描述CAS服務器是有幫助的:

幾乎所有的部署考慮和組件配置都涉及這三個子系統。 Web層是與包括CAS客戶端在內的所有外部系統進行通信的端點。 Web層委托票務子系統為CAS客戶端訪問生成票證。 SSO會話以成功認證時頒發票證授予票證開始,因此票務子系統經常委托給認證子系統。
認證系統通常只在SSO會話開始時處理請求,盡管還有其他情況可以調用它(例如強制認證)。

Conclusions(結論)

由上圖可以看出, Central Authentication Service (CAS) 在很多大公司內進行了很好的應用。

Recommendations(建議)

It is recommended to deploy CAS locally using the WAR Overlay method.

  1. 建議使用WAR Overlay方法在本地部署CAS。
  2. 建議明白幾點
    • 2.1 何種應用在何種情況下產生何種事物用於何種目的,白話一點就是要清楚 一種事物的生命周期及變換過程
    • 2.2 一種新的事物的產生必然有其緣由,知其然知其所以然 才能不斷地成長。
    • 2.3 一般情況下,相對完善的事物產生的同時,都會有與之對應的文檔。那么學習的最好途徑就是仔細閱讀實踐。
    • 2.4 即使是官方推出的,對自身應用來講也不一定是最好的,要根據實際情況進行對應的實踐驗證。
    • 2.5 盡信書不如無書。

參考資料

Apereo CAS
https://github.com/apereo/cas


原創聲明

作者:隨風浮雲
出處:http://www.cnblogs.com/ljmatlight
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明。
文中有不妥或者錯誤的地方,歡迎勘誤,如果你有更好的建議,可以給我留言討論,共同進步。
互聯網技術時效性較強,引用請慎重。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM