CAS 是开源的企业级SSO系统,好多世界500强的企业都在用。
架构
CAS的架构如下图:
系统组成
CAS 系统分为CAS Server和CAS Clients
CAS Server即使用java spring框架编码的服务端,提供给客户端认证的接口,认证通过后提供ticket。
CAS Clients即使用CAS Server提供服务的客户端,通过支持的协议与服务端进行通信。
支持的平台:
- Apache httpd Server (mod_auth_cas module)
- Java (Java CAS Client)
- .NET (.NET CAS Client)
- PHP (phpCAS)
- Perl (PerlCAS)
- Python (pycas)
- Ruby (rubycas-client)
支持的应用:
- Outlook Web Application (ClearPass + .NET CAS Client)
- Atlassian Confluence
- Atlassian JIRA
- Drupal
- Liferay
- uPortal
支持的协议:
- CAS (versions 1, 2, and 3)
- SAML 1.1
- OpenID
- OAuth (1.0, 2.0)
安装
- 下载CAS
访问 https://www.apereo.org/projects/cas/download-cas
点击要下载的版本, CAS v4.2.1
在打开的页面下载 CAS 的源码 - 解压 CAS 源码,得到目录 cas-4.2.1
- 命令进入 CAS 源码目录 cas-4.2.1
- 执行命令 gradle :cas-server-webapp:build 编译 CAS 的 webapp
- 编译结束后得到 cas-4.2.1/cas-server-webapp/build/libs/cas-server-webapp-4.2.1.war
- 复制 cas-server-webapp-4.2.1.war 到
/webapps 下并重命名为 cas.war - CAS Server 默认需要使用 https,Tomcat 启用 https,请参考 Tomcat 启用 https
- 启动 Tomcat
- 访问 https://127.0.0.01:8443/cas
- 输入用户名 casuser,密码 Mellon
- 登陆成功
1
2
3CAS 默认的用户名密码 casuser/Mellon 是不是不好记?没关系,可以修改 cas/WEB-INF/cas.properties 中的 accept.authn.users 为你想要的,例如修改为
accept.authn.users=admin::admin
accept.authn.users=admin::Passw0rd,alice::Passw0rd
CAS的认证逻辑
5.2.x 版本安装步骤
- 下载源码 https://github.com/apereo/cas/archive/v5.2.1.zip
- 解压
- cd cas-server-5.2.1
- 编辑 vim gradle/wrapper/gradle-wrapper.properties
1
2#distributionUrl=https\://services.gradle.org/distributions/gradle-3.1-bin.zip
distributionUrl=https\://downloads.gradle.org/distributions/gradle-3.1-bin.zip