单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。
单点登录的使用场景有很多,C/S、B/S架构的系统均可使用,通常是支持快速配置使用。
业内目前实现SSO的方式有很多种,在ToC场景下互联网公司通常使用的是OAuth2协议,而ToB场景下大家通常是囊括百家,既支持OAuth2又支持CAS,还滴支持LDAP。其造成的原因主要是因为在ToB场景下需要对接SSO的系统通常仅支持某个协议,而这类系统又不是同一个协议导致。
而我当前境况下就是既有ToC场景又有ToB场景,在该种情况下,我开始对其业内的各种协议进行整合集成,这一系列文章将对其业内各个协议从基础到深入、从搭建到二次开发进行记录,同时将其整理出来分享给大家。
CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS 是 耶鲁大学 (Yale University)发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的 单点登录 方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。
其主结构由CAS Server、CAS Client两部分组成。下图为官方提供的结构图,大家可以作为参考进行理解。
补充:我进行翻阅了一些资料和科学上网上面论坛的 文章 ,发现我该节文章存在错误,特此对于大家进行补充说明:
${configurationKey} 属于文档中的快速替换标记,无法有效使用到配置文件中,无法做到公共属性使用。本节下面的操作无效了,只能根据不同的组件替换${configurationKey}为文档中的标记。就如我们之前编写的那样。
例如:官方文档中Password encoding settings for this feature are available here under the configuration key cas.authn.file .这时我们点击跳转后的位置中使用的${configurationKey}需要替换为cas.authn.file进行使用。
随着我们对于CAS Server的深入研究,各类组件发现其都需要使用一些公共的配置,而这些公共的配置中还有部分的差异化,为了降低application-dev.properties文件中配置的复杂性,我们去查阅了官方文档,并对其进行了更改,下面我们就以之前我们在第二节中的配置进行修改。
1、打开application-dev.properties修改如下:
注:
2、在IDEA中的Terminal输入如下,进行编译
3、启动tomcat并进行访问测试,登录正常。
至此我们的配置变更完成,其中${configurationKey}.开头的配置都是共用配置,至于哪些配置可以共用,可以参见 官方文档 进行查阅配置。
下一节,我们将利用公共配置,配置其他的组件来使用,欢迎大家持续关注。
SSO统一身份认证——CAS Server6.3.x多组件共用配置(八)
例如:官方文档中Password encoding settings for this feature are available here under the configuration key cas.authn.file .这时我们点击跳转后的位置中使用的${configurationKey}需要替换为cas.authn.file进行使用。随着我们对于CAS Server的深入研究,各类组件发现其都需要使用一些公共的配置,而这...
聊聊单点登录(SSO)中的CAS认证
在信息技术中,如同游乐场的通票系统,Single Sign-On (SSO) 提供了一种简化登录体验的方法。SSO允许用户在一个公司的不同产品或服务之间共享一个身份认证,无需每次都进行独立登录。想象一下,用户只需在主门户(CAS Server)进行一次登录,即可访问所有子系统(APP1, APP2等)的资源。CAS(Central A...
【实践篇】基于CAS的单点登录实践之路
在数字化转型的时代,京东物流的赵勇萍深入探讨了如何通过Single Sign-On (SSO)技术,特别是基于CAS (Central Authentication Service)的实践,为用户提供无缝的多系统登录体验。CAS的核心组件是 CAS Server,它扮演着关键角色,负责身份认证,包括登录界面的设计以及票据(TGT、TGC和ST)的管理。在赵勇萍的项...
登录那点事
从结构上看,CAS 包含两个部分:CAS Server 和 CAS Client,CAS 需要独立部署,主要负责对用户的认证工作,CAS Server 会处理用户名 \/ 密码等凭证 (Credentials)。 负责处理对客户端受保护资源的访问请求,需要对请求方进行身份认证时,重定向到 CAS Server 进行认证。CAS Client一般与 与受保护的客户端应用部署在一起,...
nginx cas单点登录受影响吗
1、 开源的、多协议的 SSO 解决方案; Protocols : Custom Protocol 、 CAS 、 OAuth 、 OpenID 、 RESTful API 、 SAML1.1 、 SAML2.0 等。2、 支持多种认证机制: Active Directory 、 JAAS 、 JDBC 、 LDAP 、 X.509 Certificates 等;3、 安全策略:使用票据( Ticket )来实现支持的认证协议;4、 支持...