CAS SSO & SLO

在前面我们介绍了CAS Server 以及CAS Management。还介绍了CAS 结合LDAP来进行验证。

众所周知,CAS 本身是一个SSO 与 SLO 框架,接下来我们就来记录一下如何使用CAS 来实现SSO 和 SLO.

环境介绍

前面的介绍中,我们已经实现了gitlab 集成CAS+ LDAP 来实现登录验证,接下来我们还是采用gitlab,再加上WordPress 的方式实现和模拟SSO 以及SLO。

整体的方案如下图所示。

实验环境架构

在之前的文章中,我们介绍CAS 都是使用的目前的最新版本 6.4.0。截止笔者整理这篇教程的时候,CAS 6.4.0 还未正式发布。也正式因为如此,在实验过程遇到了很多无法解决的问题,查遍全网也没有找到原因以及对应的解决方案。

因此,我们将CAS 的版本降低,来满足我们的实验要求。CAS应该降低到哪一个版本,这里也没有很好的依据。最终是根据Wordpress 的CAS 插件支持的最高版本决定了。

因此最终的 实验环境如下

  • WP-cassify (WordPress 的CAS插件。截止实验时,这个插件最高支持CAS 5.3.x,因此我们的CAS也选择在5.3.x)

  • CAS 5.3.x

  • Gitlab CE 13.8.2

  • openldap-2.4.44-20.el7.x86_64

  • JDK 8

安装包的准备

由于 CAS 的版本降低到了 5.3.x。 所以需要重新构建cas.war,以及cas-management.war。

cas

clone 下来 cas-overlay-template。 参照之前的介绍修改cas.properties 和 maven 的配置。

在pom.xml 中添加如下的依赖。这些依赖在使用过程中,都需要用到。

然后构建出来 cas.war 文件。

cas-management

clone 下来 cas-management-overlay 项目。参照之前的介绍修改 management.properties 和maven 配置。

然后构建出来 cas-management.war 文件。

HTTPS

CAS 框架作为一个认证登录框架,安全是首位重要的。在实验过程中,可以使用http来进行。我们这里配置一下 HTTPS .

必须使用https来配置CAS.

生成证书

生成证书的时候,需要注意要使用域名进行生成,使用ip生成的话,会有问题arrow-up-right

启用生成的这个证书

更新配置

CAS

CAS 5.3.x 版本的配置,与 后来版本的配置有着巨大的差异。这里将所有的配置罗列下来,以备参考。

CAS Management

更新一下 cas-management的配置

CAS Service

将 CAS Management, WordPress , Gitlab的服务注册到 CAS 中。本次实验采用 JSON 存储,手动配置的方式来注册这些服务。

CasManagement-10000003.json

Gitlab-10000004.json

Wordpress-10000005.json

NOTE:在后面服务正常启动后,可以在 /etc/cas/services-repo 目录下,看到这些服务被以json文件的形式存储在磁盘上。

WordPress

Wordpress 中关于CAS 的配置是基于 WP Cassify 插件来的。可以查看下面的一个截图。

WP Cassify配置

gitlab

gitlab 的配置与之前没有什么大的不同。依然贴在下面供参考。

上面说的这些 配置都更新好以后,就可以进行 SSO & SLO 测试了。

Actuator 界面

CAS 框架本身提供了 可以用于管理SSO Session 以及 查看 服务运行状态的接口。 在前面的配置中已经涵盖了,这里我们主要是贴一下截截图,仅供参考。

CAS actuator

参考

提升

  • Service 注册尽量采用DB 来存储

  • 管理界面要加上权限验证

  • 集群部署

  • tomcat session 高可用

Last updated

Was this helpful?