轻松搞定苍穹单点登录

1 业务场景介绍
单点登录(Single Sign On),简称为 SSO,是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,用户在一个系统中退出登录,其他系统也同样会退出登录。听上去是不是有点抽象而又神奇,举个栗子你就明白了。
你开了家公司,前几年因为人少钱少,上了一套简单OA系统也够用,员工输入用户名密码就可以登录了;
后面几年公司逐渐成长了集团型企业。业务系统一个接一个的上,搞下来A、B、C、D…十几套系统,员工登入每个系统也都要输入账号密码,十分繁琐。这个时候,你想:能不能在一个系统输入账号密码就可以登录所有系统?
SSO单点登录应运而生,所有新技术的变革都是为因为人类想偷懒而产生的。
2 单点登录原理
下图为CAS Client和CAS Server认证过程原理图

3 苍穹实践方案
为实现苍穹和CAS Server之间的认证,我们开发了专门的SSO插件机制。目前常用的单点登录系统为耶鲁大学开发的Yale CAS,下面咱们就以Yale CAS Server为认证中心服务器举例,为大家讲述如何完成苍穹和CAS server的单点认证服务配置。
1、首先我们需要将SSO二开插件压缩包放到苍穹补丁仓库的客户目录下:
(二开插件压缩包链接: https://pan.yunzhijia.com/s/MTE5NzAwMiwwZmIw#/)

2、进入MC(苍穹管理中心)中对应的数据中心配置页面,配置二开插件。
路径:租户列表-租户-数据中心,在数据中心中,将登陆类型勾选上“第三方认证”,认证插件值为:kd.bos.login.cas.sso.Cas10SSO

3、将CAS Server证书(由企业CAS负责人制作)导入到苍穹的jdk,具体操作如下,
在cmd(win+R)输入以下命令:
keytool -import -keystore F:\jdk1.8\jre\lib\security\cacerts -file E:/keys/kdtest.crt -alias kdtest
初始密码:changeit
F:\jdk1.8为javahome,kdtest.crt为证书的名称
4、在公共配置方案页面下,找到login.properties目录下,配置CAS server地址。
名称和编码固定:cas.sso.ca10.loginurl ,值填写cas server的访问地址,例如下图中的https://www.kdtest.com:8443/cas

4 其他场景
在很多客户的应用场景中,客户已经拥有自己的单点登录服务器,同时在登录时有自己的特殊控制逻辑,这时候就可以参照以下步骤二开处理:
1、实现kd.bos.login.thirdauth.ThirdSSOAuthHandler接口,编写自己SSO登录插件
注意:实现ThirdSSOAuthHandler接口的包括3个方法:登录页面的跳转、登录返回、登录退出。具体例子如下:
Package demo;
Import javax.servlet.http. HttpServletRequest;
Import javax.servlet.http. HttpServletResponse;
Import kd.bos.login.thirdauth.ThirdSSOAuthHandler;
Import kd.bos.login.thirdauth.ThirdSSOAuthHandler
Public class DEMOSSO implements ThirdSSOAuthHandler {
/**
*该方法是用户没有登录的时候插件需要转移到正确的登录地址
*/
public void callTrdSSOLogin(HttpServletRequest request, HttpServletResponse response, String 轻松搞定苍穹单点登录
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



