如何实现业务系统的单点退出

当前我国各领域正在加速向数字化、移动化、智能化发展,大力投入信息化建设与数字化转型已成为企业的共识,但对于很多企业而言,组织信息环境庞大复杂,业务场景变化频繁,给身份管理与信息安全管理带来很大挑战。随着信息化系统数量逐渐增多,每套信息系统的身份管理、认证、权限等均各自独立建设,不仅维护成本高,且容易形成信息孤岛,从而为管理及运维带来极大难度,影响企业运行效率的同时,还存在安全漏洞与隐患。

IDM身份管理系统为解决企业内部多系统之间的用户信息不一致而开发,主要定位于解决企业在5A功能上的需求,即:Account账号管理、Authentication认证管理、Authorization授权管理、Audit审计管理、App Control应用管控五个方面的实际需求,进而规范用户身份信息,保证系统安全,提高工作效率。

1总体说明

总体说明主要包括对于整体的业务需求、产品的功能架构以及产品的认证架构等进行介绍。

1.1技术架构

IDM身份管理平台由统一用户、统一认证、统一授权、统一审计、应用管控五部分组成,产品中既包括传统5A认证中的功能,还包括操作任务、流程审批、运行监控统计等功能。IDM身份管理平台技术架构图如下所示:

1.IDM管理由统一用户、统一认证、统一授权、统一审计、应用管控五部分组成,产品中既包括传统5A认证中的功能,还包括操作任务、流程审批、运行监控统计等功能。

2.账户管理、应用配置、操作任务、监控统计、系统管理等功能,帮助用户实现组织、人员、岗位管理、多关联关系的权限管理、用户创建、操作、流程审批等行为的审计分析、追溯管理等。

3.统一认证主要实现统一身份认证,集中管理用户信息,实现单点登录机制,BPM工作流主要实现对创建账号、授权管理时的流程审批功能,同时对用户访问的日志记录进行审计和分析。

4.接口层实现对底层资源信息的收集和管理,也可以跟外部组件的信息交互,如:数字证书、第三方应用等,产品预置跟ESB集成的集成机制,同时提供数据同步接口,实现数据间的抽取、转换、分发等操作。

1.2认证架构

整体的认证架构具体如下:

IDM单点登录分为三种方式:CAS认证、Oauth认证、Open API认证:

1.CAS认证:CAS原生认证方式根据不同平台语言( JAVA/.NET/PHP )提供不同认证模式,通过参考给出的配置教程,在需要单点登录的系统中进行Jar包替换即可。

2.Oauth认证:Oauth认证方式为根据Oauth协议,采用多平台关联登录方式,IDM作为Oauth Server(客户端),用户向IDM注册,IDM安全地获取用户的授权,实现验证服务器与应用服务器的交互,获取系统里的基本信息进行认证。

3.Open API认证:IDM平台提供认证的Open API,通过对用户名和密码加密传输的方式完成认证,可以满足客户端、APP、小程序等灵活认证的应用场景需求。

1.3业务需求

在实际的项目上,所有的内部产品都是基于IDM的进行的CAS认证,而通过Portal门户进行单点登录的退出时,其他产品不能响应当前的账号退出状态,还处于登录状态,需要手动的到各个产品进行退出,所以需要通过对于产品的配置实现Portal门户退出之后,其他产品刷新后认证退出。

2实现方式

在本章中将对于统一账号的具体实现方式进行详细得介绍,具体将分为前期准备、实现思路以及过程梳理三个方面进行展开说明。

2.1前期准备

首先对IDM、ESB等产品进行调试,使用最新版的避免出现产品问题,其次先行熟悉UMC的相关操作,了解IDM认证方式和具体实现代码以及ESB的配置文件等等。

2.2退出机制

单点退出的机制如下:

1.CAS工程作为webSocket服务端,Portal产品与其他产品都作为webSocket服务端;

2.Portal产品退出CAS时通过webSocket连接将信息共享到其他webSocket客户端;

3.其他系统通过拦截器获取到CAS的退出信息,之后退出当前系统的登录。

2.3实现思路

在上文已经对本次工作的需求做出了阐述,在拿到需求之后,先整理出大体的实现思路,有了一个大体的实现思路之后,再根据实现思路进行更为具体的实现过程的设计,本次开发工作的大体实现思路如下:

1.Portal产品的配置:修改产品的web.xml文件,增加SloWebClient配置;

2.IDM产品的配置:修改产品的web.xml文件,增加SloWebClient配置,修改cas.properties配置;

3.接入配置调整:增加SloWebClient配置,重新生成调整后加载接入配置;

4.登录测试单点退出

3产品配置

通过上文已经对于整体的实现步骤进行了相应的梳理,下面对于单点退出的具体实现过程进行详细得介绍。

3.1IDM产品配置

本次单点退出配置需要进行IDM产品的配置调整,具体如下:

1.Web.xml调整。

2.casproperties配置。

3.2Portal产品配置

本次单点退出配置需要进行Portal产品调整, Web.xml调整。

具体如下:

3.3接入配置调整

首先进行Nginx的调整,需要使用UMC云管理平台,打开集群管理->接入配置->Niginx.conf查看。

具体配置如下:

当nginx.conf修改之后需要对接入配置进行重新生成并加载。

打开UMC的租户管理->租户配置->对应环境->接入配置->自动补全。

对于IP和端口进行更改。

点击查看配置之后进行部署加载。

4测试验证

完成上述配置之后,便可进行单点退出的测试,在本章节中,将对产品重启产品登录以及退出测试进行详细介绍。

4.1产品重启

打开UMC的租户管理,在对应环境上进行重启产品(IDM与Portal)。

之后,编辑保存进行容器创建,重启产品。

4.2产品登录

在上述的所有操作完成之后,便可以进行产品的登录,登录Portal产品与IDM产品。

4.3退出测试

登录之后便可以进行单点退出的测试,首先进行Portal的退出。

Portal退出之后,直接刷新IDM的页面。

刷新之后IDM产品也回到了登录的页面。

可以看出单点退出已经验证成功。

5总结说明

通过本次单点退出的开发,使自身有了一定的感悟和提升,现从过程总结、难点攻克以及后续思路几个方面进行总结。

5.1过程总结

内部系统的单点退出配置主要过程如下:

1.Portal产品的配置:修改产品的web.xml文件增加SloWebClient配置;

2.IDM产品的配置:修改产品的web.xml文件增加SloWebClient配置,修改casproperties配置;

3.接入配置调整:增加SloWebClient配置,重新生成调后加载接入配置;

4.登录测试单点退出。

5.2难点攻克

在本次工作的历练,让我的能力有了很大的提升,同时在配置的过程中也是遇到了一些难点,现从以下几点进行阐述。

1.cas.properties文件调整:在刚开始调整配置的时候没有调整cas.properties文件中的配置,之后在与同事交互后发现了这个问题并加以解决。

2.接入配置:刚开始配置了其他的文件但是没有修改Nginx.conf配置,导致SloWebClient一直无法被调用,后来在查看日志之后发现了这一问题,调整了配置加以解决。

5.3后续思路

通过开发配置的过程对实现方式进行了总结梳理,在进行实际项目的开发和配置时要结合业务场景,在使用过程中加深产品了解同时深化业务理解,出现问题时要及时的沟通交互,及时反馈处理问题。

在实际项目中需要和不同的系统厂商集成交互,需要不断提高自己的沟通能力,以及对于产品、方案的理解等,同时对于问题的分析也要更加全面和透彻,通过对问题的仔细分析反复揣摩进而解决,在这种不断交互的过程中逐渐去打磨自己,让这种思考方式形成一种习惯,也会为后续工作打下良好的基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/158140.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

时序预测 | Python实现ConvLSTM卷积长短期记忆神经网络股票价格预测(Conv1D-LSTM)

时序预测 | Python实现ConvLSTM卷积长短期记忆神经网络股票价格预测(Conv1D-LSTM) 目录 时序预测 | Python实现ConvLSTM卷积长短期记忆神经网络股票价格预测(Conv1D-LSTM)预测效果基本介绍程序设计参考资料预测效果 基本介绍 时序预测 | Python实现ConvLSTM卷积长短期记忆神…

国产高云FPGA:OV5640图像视频采集系统,提供Gowin工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐国产高云FPGA相关方案推荐国产高云FPGA基础教程 3、设计思路框架视频源选择OV5640摄像头配置及采集动态彩条Video Frame Buffer 图像缓存DDR3 Memory Interface 4、Gowin工程详解5、上板调试验证并演示准备工作静态演示 6、福利&#xff1…

全网火爆,接口自动化测试框架-fixture函数使用,一篇打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 setup和teardown能…

JDK 9 Map.of()

//Java 9 Map.of //private static final int SIZE 10;

RabbitMQ 部署及配置详解(集群部署)

单机部署请移步: RabbitMQ 部署及配置详解 (单机) RabbitMQ 集群是一个或 多个节点,每个节点共享用户、虚拟主机、 队列、交换、绑定、运行时参数和其他分布式状态。 一、RabbitMQ 集群可以通过多种方式形成: 通过在配置文件中列出群集节点以…

技术分享 | JMeter性能测试实现与分析

导语 JMeter是由著名开源软件巨头Apache组织开发的纯Java的压力测试工具,它即能测试动态服务(WebService),也能测试静态资源,包括Servlet服务、CGI脚本等,还能测试动态语言服务(PHP、Java、ASP…

二次元通用PPT模版

二次元通用PPT模版 共:19页 PPT模版:百度网盘 请输入提取码:4s3f

分布式任务调度-XXL-job

源码仓库地址 http://gitee.com/xuxueli0323/xxl-job 前置环境 docker容器环境配置 拉取msyql镜像: docker pull mysql:5.7创建mysql容器: docker run -p 3306:3306 --name mysql57 \ -v /opt/mysql/conf:/etc/mysql \ -v /opt/mysql/logs:/var/log/mysql \ -v …

一文带您了解什么是渲染农场

很多第一次接触渲染农场的朋友可能渲染农场都有些什么服务、渲染农场怎么收费和渲染农场怎么收费这样的疑问,今天小编就来给大家说一下吧。 什么是渲染农场? 目前,行业内普片认为:渲染农场是一种渲染服务,可以提供强…

剑指Offer || 116.省份数量

题目 有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。 省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。 …

如何使用ONLYOFFICE来P惊悚特效图

如何使用ONLYOFFICE来P惊悚特效图 老朋友们可能会经常看见本号主又换头像了,各种各样精神分裂成一群人或者我和自己俩个人的头像,之前讲过的: 手把手教你如何自己一个人精神分裂成一群人https://mp.weixin.qq.com/s/yacKt7N3sZnarfMhXRNdBA…

JDK1.8 新特性(二)【Stream 流】

前言 上节我们学了 lambda 表达式,很快我就在 Flink 的学习中用到了,我学的是 Java 版本的 Flink,一开始会以为代码会很复杂,但事实上 Flink 中很多地方都用到了 函数接口,这也让我们在编写 Flink 程序的时候可以使用 …

2023亚太杯数学建模思路 - 案例:ID3-决策树分类算法

文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模…

在线协作工具都有哪些?推荐这10款

如今,互联网的快速发展不仅改变了我们的生活方式,也改变了我们的工作方式。 特别是对于一些与产品设计相关的公司或团体,网络不仅为其设计提供了稳定的资源和灵感,而且为成员之间的沟通和合作提供了更大的便利。 如果您也需要为…

【Proteus仿真】【51单片机】公交车报站系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器,使用LCD12864显示模块、DS18B20温度传感器、DS1302时钟模块、按键、LED蜂鸣器、ULN2003、28BYJ48步进电机模块等。 主要功能: 系统运行后&…

【Spring】依赖注入方式,DI的方式

这里写目录标题 1. setter注入在一个类中注入引用类型在一个类中注入简单类型 2. 构造器注入在一个类中注入引用类型在一个类中注入简单类型 3. 依赖注入方式选择4. 依赖自动装配按类型注入按名称注入 5. 集合注入 1. setter注入 在一个类中注入引用类型 回顾一下之前setter注…

【深度学习实验】网络优化与正则化(七):超参数优化方法——网格搜索、随机搜索、贝叶斯优化、动态资源分配、神经架构搜索

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、优化算法0. 导入必要的库1. 随机梯度下降SGD算法a. PyTorch中的SGD优化器b. 使用SGD优化器的前馈神经网络 2.随机梯度下降的改进方法a. 学习率调整b. 梯度估计修正 3. 梯度估计修正:动量法Momen…

万宾科技智能井盖传感器,提升市政井盖健康

市政井盖就是城市里不可或缺的基础设施之一,关于它的监测工作可马虎不得。它承载着保护市民的交通安全以及城市正常运转的重要使命。虽然现在城市化的速度很快,但是传统的市政井盖管理方式变得有些力不从心了。井盖的覆盖范围很广,如果单单依…

Python爬虫动态ip代理防止被封的方法

目录 前言 一、什么是动态IP代理? 二、如何获取代理IP? 1. 付费代理IP 2. 免费代理IP 3. 自建代理IP池 三、如何使用代理IP爬取数据? 1. 使用requests库设置代理IP 2. 使用urllib库设置代理IP 3. 使用selenium库设置代理IP 四、常…

实现MQTT协议的服务器端和客户端的双向交互

公司和第三方合作开发一个传感器项目,想要通过电脑或者手机去控制项目现场的传感器控制情况。现在的最大问题在于,现场的边缘终端设备接入的公网方式是无线接入,无法获取固定IP,所以常规的HTTP协议通信就没法做,现在打…