基于CAS的单点登录SSO[1]: 搭建CAS单点登录demo

来源:互联网 发布:it cost 编辑:程序博客网 时间:2024/06/04 18:58
基于CAS的单点登录SSO[1]: 搭建CAS单点登录demo
作者:家辉,日期:2017-08-08 CSDN博客: http://blog.csdn.net/gobitan
摘要:经过对大量第三方单点登录系统的调研,发现Apereo的CAS是做得最好的,因此,本系列文章将分析CAS。由于CAS涉及的东西较多,直接从CAS源码编译较为复杂。CAS提供了现成的部署包模板,本文以此为例快速搭建初步的CAS demo,环境适用于Mac OS或者Linux环境。

第一步:获取CAS部署包模板CAS Overlay Template
git clone https://github.com/apereo/cas-overlay-template
备注:由于官方代码在持续更新,这里我将这个版本的代码在CSDN存了一份。链接为:http://download.csdn.net/download/gobitan/9947498
在获取下来的cas-overlay-template包中,查看README.md可以找到部署方法。
CAS的版本为5.1.x,要求JDK1.8+。
注意:由于maven官方库https://mvnrepository.com/artifact/org.apereo.cas/cas-server-support-jdbc-drivers中没有5.1.3版本。为了后续扩展,需要将pom.xml中的cas.version属性由“5.1.3”改为“5.1.2”. 如下所示:
<cas.version>5.1.2</cas.version>
第二步:增加Service Registry功能
参考:https://apereo.github.io/cas/5.1.x/installation/JSON-Service-Management.html
<dependency>    <groupId>org.apereo.cas</groupId>    <artifactId>cas-server-support-json-service-registry</artifactId>    <version>${cas.version}</version></dependency>
注意:如果缺失这一步,后面会报错。CAS支持的协议http/https协议就是这里配置的。

第三步:配置域名
在cas-overlay-template/etc/cas/config/cas.properties中默认配置域名如下:
cas.server.name: https://cas.example.org:8443cas.server.prefix: https://cas.example.org:8443/cas
为了能让demo运行,需要在/etc/hosts中加入如下类似配置:
10.191.30.31 cas.example.org
注意:10.191.30.31为部署主机的IP地址,需要更换为您自己的。

第四步:生成服务器端HTTPS证书
cd cas-overlay-template/chmod +x build.shsudo ./build.sh gencert
这一步会在/etc/cas目录下生成thekeystore和cas.cer两个文件。

第五步:构建并运行CAS Server
sudo ./build.shNo commands provided. Defaulting to [run]
第六步:登录CAS
系统内置了一个默认的测试用户名和密码,即casuser/Mellon.
该用户名可以在cas-overlay-template/target/cas/WEB-INF/classesas.authn.accept.users找到。访问https://cas.example.org:8443/cas/login,输入用户名和密码即可登录成功。如下所示:


参考资料:
[1] https://github.com/apereo/cas-overlay-template
[2] https://apereo.github.io/cas/5.1.x/installation/Maven-Overlay-Installation.html
[3] http://maven.apache.org/plugins/maven-war-plugin/overlays.html