单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。
单点登录的使用场景有很多,C/S、B/S架构的系统均可使用,通常是支持快速配置使用。
业内目前实现SSO的方式有很多种,在ToC场景下互联网公司通常使用的是OAuth2协议,而ToB场景下大家通常是囊括百家,既支持OAuth2又支持CAS,还滴支持LDAP。其造成的原因主要是因为在ToB场景下需要对接SSO的系统通常仅支持某个协议,而这类系统又不是同一个协议导致。
而我当前境况下就是既有ToC场景又有ToB场景,在该种情况下,我开始对其业内的各种协议进行整合集成,这一系列文章将对其业内各个协议从基础到深入、从搭建到二次开发进行记录,同时将其整理出来分享给大家。
本节我将继续对于登录页面进行改造,改造的原则是在原有基础上进行去除或修改部分样式,从而达到我们需要的效果,同时保留CAS Server一些其他方面的设置功能,便于我们后续章节进行尝试其他登录方式时还能继续使用这些页面。
主要使用的环境如下 服务器系统:windows 10 环境:OpenJDK 11 web中间件:tomcat9 CAS Server:6.3.x 数据库:MariaDB 或 PostgreSQL 快速软件包openjdk11+tomcat9+CASServer.tar
下面开始我们的实现。
<!--<div th:replace="fragments/header :: header">
<a href="fragments/header.html">Header</a> fragment will go here
</div>
<div class="mdc-drawer-scrim"></div>-->
在application-dev.properties配置文件中增加如下配置。
#######
# 页面配置
#
# 是否启用侧边抽屉菜单
cas.drawer-menu.enabled=false
# 顶部显示名称
cas.theme.name=SSO
# 顶部logo
cas.logo.file=
# 是否启用通知
cas.notifications-menu.enabled=false
注释掉页面loginform.html文件中31行
<!--<i class="mdi mdi-security"></i>-->
并修改messages_zh_CN.properties文件中的screen.welcome.instructions属性
screen.welcome.instructions=统一身份认证
去除loginform.html页面中298行出于安全考虑,一旦您访问过那些需要您提供凭证信息的应用时...
相关的提醒。
<!--<div th:replace="fragments/loginsidebar :: loginsidebar"/>-->
暂时去除忘记密码功能 修改页面pmlinks.html中的31-35行
<!--<div th:unless="${passwordManagementEnabled}">
<br />
<span class="fa fa-question-circle"></span>
<span th:utext="#{screen.pm.button.forgotpwd('https://sso.cnhuashao.com/sso/updatePwd')}">忘记密码?</span>
</div>-->
注:后续我们进行编写忘记密码时也需要使用这里。
image.png
到这里,我们的登录页面看起来更舒服一些了,下一节我们将学习如何设置默认的跳转页面,这样便于我们快速使用到我们的实际系统中。
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。