隨着公司業務的不斷擴展,後臺接入子系統不斷增多,那麼咱們將針對不一樣的平臺進行拆分爲各自對應的子系統,
權限是不變的,那麼咱們不能每一個子系統都單獨進行登陸認證,否則管理人員進行切換系統時會瘋掉。
那麼,通過考察選用開源框架 Apereo CAS
, 選定版本爲 5.2.0
。目前系統已在線,並已穩定。
接下來我會將系統進行脫敏整理出一套完善的基於微服務的CAS
單點系統實施方案。
因爲CAS
是相對比較大的工程,因此建議使用者認真閱讀官方文檔進行調整。php
Central Authentication Service (CAS)
,一般稱爲CAS。 CAS是一種針對Web的企業多語言單點登陸解決方案,並嘗試成爲您的身份驗證和受權需求的綜合平臺。html
下面是官方的一段簡述:java
CAS Enterprise Single Sign-Ongit
由以上能夠看出, Central Authentication Service (CAS)
支持的功能普遍。github
CAS服務器和CAS客戶端組成CAS系統架構的兩個物理組件,它們經過各類協議進行通訊。瀏覽器
CAS服務器是基於Spring框架構建的Java servlet,其主要職責是驗證用戶並經過發佈和驗證票證來授予對啓用CAS的服務(一般稱爲CAS客戶端)的訪問權限。 當服務器在成功登陸時向用戶發出票證授予票證(TGT)時,將建立SSO會話。 根據用戶的請求,經過使用TGT做爲標記的瀏覽器重定向向服務發出服務票據(ST)。 ST隨後經過反向信道通訊在CAS服務器上進行驗證。 CAS Protocol文檔中詳細描述了這些交互。ruby
術語「CAS客戶」在其通用中有兩個不一樣的含義。 CAS客戶端是能夠經過支持的協議與服務器進行通訊的任何CAS支持的應用程序。 CAS客戶端也是一個軟件包,能夠與各類軟件平臺和應用程序集成,以便經過某種身份驗證協議(例如CAS,SAML,OAuth)與CAS服務器進行通訊。 已經開發了支持多種軟件平臺和產品的CAS客戶端。服務器
Platforms: (軟件平臺)架構
Applications:(平臺)框架
客戶端經過幾種支持的協議與服務器進行通訊。 全部支持的協議在概念上都是類似的,但有些協議的特徵或特徵使得它們適用於特定的應用程序或用例。 例如,CAS協議支持委託(代理)認證,而且SAML協議支持屬性發布和單一註銷。
Supported protocols:
根據三層子系統來描述CAS服務器是有幫助的:
幾乎全部的部署考慮和組件配置都涉及這三個子系統。 Web層是與包括CAS客戶端在內的全部外部系統進行通訊的端點。 Web層委託票務子系統爲CAS客戶端訪問生成票證。 SSO會話以成功認證時頒發票證授予票證開始,所以票務子系統常常委託給認證子系統。
認證系統一般只在SSO會話開始時處理請求,儘管還有其餘狀況能夠調用它(例如強制認證)。
由上圖能夠看出, Central Authentication Service (CAS)
在不少大公司內進行了很好的應用。
It is recommended to deploy CAS locally using the WAR Overlay method.
一種事物的生命週期及變換過程
。知其然知其因此然
才能不斷地成長。做者:隨風浮雲
出處:http://www.cnblogs.com/ljmatlight 本文版權歸做者全部,歡迎轉載,但未經做者贊成必須保留此段聲明。 文中有不妥或者錯誤的地方,歡迎勘誤,若是你有更好的建議,能夠給我留言討論,共同進步。 互聯網技術時效性較強,引用請慎重。