单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。
单点登录的使用场景有很多,C/S、B/S架构的系统均可使用,通常是支持快速配置使用。
业内目前实现SSO的方式有很多种,在ToC场景下互联网公司通常使用的是OAuth2协议,而ToB场景下大家通常是囊括百家,既支持OAuth2又支持CAS,还滴支持LDAP。其造成的原因主要是因为在ToB场景下需要对接SSO的系统通常仅支持某个协议,而这类系统又不是同一个协议导致。
而我当前境况下就是既有ToC场景又有ToB场景,在该种情况下,我开始对其业内的各种协议进行整合集成,这一系列文章将对其业内各个协议从基础到深入、从搭建到二次开发进行记录,同时将其整理出来分享给大家。
在我们进行编写CAS Server时会使用到一些自定义的模板页面,用于来实现登录页面自定义或其他页面自定义,之前我们进行尝试编写自定义登录页面时提到过一些,下面我们就对于CAS Server中常见的几种引用方式在本节中进行统一汇总一下。
主要使用的环境如下 服务器系统:windows 10 环境:OpenJDK 11 web中间件:tomcat9 CAS Server:6.3.x 数据库:MariaDB 或 PostgreSQL 快速软件包openjdk11+tomcat9+CASServer.tar
修改服务注册时使用的配置文件,常见的有修改json文件或者修改数据库的方式。 JSON的方式,例如修改如下,其中theme属性后面跟着的就是你所使用的特定模板的名称,该名称和模板文件夹名、配置中的名称都是一致的。
{
"@class": "org.apereo.cas.services.RegexRegisteredService",
"serviceId": "^(https|http|imaps)://.*",
"name": "HTTPS and IMAPS",
"id": 10000001,
"description": "此服务定义授权所有支持HTTPS和IMAPS协议的应用程序url。",
"evaluationOrder": 10000,
"theme": "customized",
"accessStrategy": {
"@class": "org.apereo.cas.services.RemoteEndpointServiceAccessStrategy",
"endpointUrl": "https://localhost:8443",
"acceptableResponseCodes": "200,202,302"
}
}
如果服务注册使用的是JPA模式,则连接相关数据库,查看其自动创建的表regex_registered_service中,有一个theme字段,这里面就是存储的模板名称,我们可以在这里进行修改。
image.png
修改配置文件application-pro.properties或cas.properties,增加如下属性
cas.theme.default-theme-name=customized
直接在resources/templates目录下创建相关需要替换的页面,页面的名称可参见解压后的cas.war中的名称。
注:热修改模板时,需要在配置中启用了热刷新方可,后续我们进行到外部配置使用时会进行讲解该设置。
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。