前言
下一篇:CAS單點登入-基礎搭建
介紹
CAS
CAS是一個單點登入框架, 是 Yale 大學發起的一個開源專案,旨在為 Web 應用系統提供一種可靠的單點登入方法,CAS 在 2004 年 12 月正式成為 JA-SIG 的一個專案。程式碼目前在github上管理
SSO
單點登入,英文全稱:Single Sign On(SSO)
SSO是指在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。
舉例
這裡我們就用淘寶和天貓舉例來展示一下單點登入吧
![CAS單點登入-簡介](https://i.iter01.com/images/3dee205cf494c1f5e6639edbb5d8d5ed2925e6f4d099ef36bb90905895686a95.png)
![CAS單點登入-簡介](https://i.iter01.com/images/cac266e895a6fd3de2daab921e642cae7acf3a3f7626a95090233cc1d77bdae6.png)
如圖,我們兩個網站都是沒有登入的,現在我們登入淘寶,然後不登入天貓直接重新整理。
![CAS單點登入-簡介](https://i.iter01.com/images/127240e7d7be5dbd9a22ca62ac9f6cd5b94e51e498997c4d36a90b19edfe31a1.png)
![CAS單點登入-簡介](https://i.iter01.com/images/ed3ffc1b02e8dcf3fa04724db2eb0d5a32dab75823efda71c1558cf060e01f69.png)
由此,我們可以看出,在淘寶登陸上的時候,天貓自動登入了。這就是單點登入,一處登入,處處執行。
特徵
CAS專案支援以下功能:
- CAS v1,v2和v3協議
- SAML v1和v2協議
- OAuth v2協議
- OpenID和OpenID連線協議
- WS-Federation被動請求者協議
- 通過JAAS,LDAP,RDBMS,X.509,Radius,SPNEGO,JWT,Remote,Trusted,BASIC,Apache Shiro,MongoDb,Pac4J等進行身份驗證。
- 委派身份驗證到WS-FED,Facebook,Twitter,SAML IdP,OpenID,OpenID Connect,CAS等。
- 通過ABAC授權,時間/日期,REST,Internet2的Grouper等。
- 通過Hazelcast,Ehcache,JPA,Memcached,Apache Ignite,MongoDb,Redis,DynamoDb,Couchbase等進行HA叢集部署。
- 由JSON,LDAP,YAML,JPA,Couchbase,MongoDb,DynamoDb,Redis等支援的應用程式註冊。
- 通過Duo Security,YubiKey,RSA,Google Authenticator等進行多因素身份驗證。
- 用於管理日誌記錄,監視,統計,配置,客戶端註冊等的管理UI。
- 全域性和每應用程式使用者介面主題和品牌。
- 密碼管理和密碼策略實施。
CAS的基礎建立在:Spring Boot和 Spring Cloud之上。
流程圖
cas協議的流程圖
![cas](https://i.iter01.com/images/6be0e6e3f4d714fdb51ad312f8ae11a75798762046fff5785f024221412d4a49.png)