1.什么是 CAS
CAS 全称叫做中央认证服务,英文是 Central Authentication Service。
这是由耶鲁大学发起的一个开源项目,目的是帮助 Web 应用系统构建一种可靠的单点登录解决方案,从目前企业实际项目来看,CAS 还是非常受欢迎的一种单点登录解决方案。
1.1 CAS 架构
CAS 分为两部分:
一个是 CAS Server,这是单点验证服务,作用类似于我们OAuth2+JWT 方案中的授权服务器,用来校验用户名/密码等,一般来说都是独立部署。
另一个则是 CAS Client,相当于就是一个一个的(微)服务。
我们来看 CAS 的官方给出的一个架构图:
图片
可以看到,用户访问的是 CAS Clients,CAS Clients 和 CAS Server 之间的通信支持多种协议,CAS Server 处理具体的认证事宜,CAS Server 对数据源的支持也非常多样化。
CAS Client 支持的平台有:
Apache httpd Server (mod_auth_cas module)
Java (Java CAS Client)
.NET (.NET CAS Client)
PHP (phpCAS)
Perl (PerlCAS)
Python (pycas)
Ruby (rubycas-client)
CAS 支持的通信协议有:
CAS (versions 1, 2, and 3)
SAML 1.1 and 2
OpenID Connect
OpenID
OAuth 2.0
WS Federation