一种无需二次开发可快速对软件系统进行鉴权集成的系统及方法与流程

文档序号:30425080发布日期:2022-06-15 14:42阅读:98来源:国知局
一种无需二次开发可快速对软件系统进行鉴权集成的系统及方法与流程

1.本发明属于集成播控平台技术领域,具体涉及一种无需二次开发可快速对软件系统进行鉴权集成的系统及方法。


背景技术:

2.在进行软件系统集成时,各软件系统提供商和业务使用方会进行长时间的预先沟通、制定方案,再分头开发,耗费大量时间和金钱。其中认证鉴权集成是重要内容之一,但在某些场景,集成发起方无法协调各方到场或该系统本身就是无代码、无技术支持的遗留老系统,如遇此种情况,一般只能重新开发或放弃集成。对此如何降低重复开发、开发维护,改善被集成系统频繁登录的问题,减少不必要的鉴权流程,缩短系统访问时延,提升了集成访问体验等问题需要更好的方式来处理。


技术实现要素:

3.本发明要解决的技术问题是,提供一种集成速度快,系统部署简单,易于操作和管理,稳定性好,易于扩展的快速对多个软件系统进行鉴权集成的系统及方法。
4.本发明的技术方案是:一种无需二次开发可快速对软件系统进行鉴权集成的系统,包括集成信息配置页模块、反向代理处理模块、集成门户页模块;集成信息配置页模块:用于引入被集成软件系统的认证鉴权url地址和多组功能名称和url;进行被集成软件系统url地址、多组功能名称和url地址的注册和信息下发,下发至反向代理模块和集成主页模块;集成主页模块是用户端登录集成主页模块后,通过反向代理处理模块转发请求,实现对多个被集成软件系统的访问;反向代理处理模块:一是做反向代理处理、资源信息映射;二是鉴权认证处理,在集成主页模块进行一次访问后,无需二次鉴权认证,即可访问被集成软件系统的授权资源;集成门户页模块:为用户端提供统一的集成功能页访问和使用。
5.具体地,所述反向代理处理模块接收到集成信息配置模块下发的带有被集成系统的资源标识符url、及各功能url标识的信息后,通过nginx作为反向代理服务器,进行被集成系统的url资源信息映射绑定。
6.更具体地,所述当有请求访问nginx时,nginx根据url反向代理至相关被集成系统节点,再根据hash策略转发至指定的被集成系统,并将从被集成系统端上得到的结果返回给发起请求的用户端。
7.一种无需二次开发可快速对软件系统进行鉴权集成的方法,包括以下步骤:步骤1,用户端登录访问被集成系统的具体功能页;步骤2,反向代理处理模块判断是否鉴权认证失效,当cookie或者session存在且未过期或失效,则进入具体业务功能页;反向代理处理模块会抓取集成系统的鉴权认证请求,并记录下完整的交互信息,供后续鉴权认证重放;当cookie或者session存在过期或失
效时,跳转至步骤3;步骤3,当cookie或者session存在过期或失效时,反向代理处理模块重放集成系统的鉴权认证请求,重放鉴权认证成功,则进入具体业务功能页;反向代理处理模块会抓取集成系统的鉴权认证请求,并记录下完整的交互信息,供后续鉴权认证重放;当二次鉴权认证失败的情况下,则跳转到集成系统登录页,由用户发起登录认证。
8.更具体地,所述步骤2或3中被集成系统登录过程中,记录下完整的交互信息是利用nginx+lua实现鉴权认证的请求输入输出的打印人和记录;nginx通过$request_body变量记录请求内容,通过lua模块记录响应内容。
9.更具体地,所述步骤2或3中被集成系统登录采用验证码的形式,被集成系统的鉴权认证交互信息的爬取、记录,可借助第三方开源组件,进行全自动区分计算机和人类的图灵测试,进行验证码深度学习、识别,以实现验证码自动识别,完成重放鉴权认证。
10.更具体地,所述步骤2或3中被集成系统的具体功能页,将被集成信息配置页模块下发的被集成软件系统url、功能url信息 绑定到具体功能页,使用iframe技术加载被集成软件系统资源,进行src的跳转,另外,结合nginx反向代理解决iframe跨域问题,满足浏览器的同源策略实现跨域。
11.与现有技术比较,本发明的有益效果是:本发明无需对被集成系统进行代码开发,集成速度快。投入成本小,风险低,在实时有用户使用的生产系上也能进行集成。系统部署简单,易于操作和管理,稳定性好,易于扩展;无需对软件进行二次开发,只需获取被集成软件系统url地址、多组功能名称和url地址,即可快速对软件系统进行认证鉴权,用最短的时间可最快速度针对多个软件系统进行认证鉴权。
附图说明
12.图1是集成信息配置模块方法流程图;图2是访问被集成系统的业务流程图;图3是反向代理模块的鉴权认证流程图;图4是反向代理模块鉴权交互请求抓取流程图;图5是集成门户页的使用示意图。
具体实施方式
13.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
14.一种无需二次开发可快速对软件系统进行鉴权集成的系统,其特征在于:包括集成信息配置页模块、反向代理处理模块、集成门户页模块;集成信息配置页模块:用于引入被集成软件系统的认证鉴权url地址和多组功能名称和url;进行被集成软件系统url地址、多组功能名称和url地址的注册和信息下发,下发至反向代理模块和集成主页模块;集成主页模块是用户端登录集成主页模块后,通过反向代理处理模块转发请求,实现对多个被集成软件系统的访问;如图1所示,即被集成系统
会携带系统资源标识符url(统一资源定位系统uniform resource locator)、及系统资源的各功能标识符url信息进行注册。该配置模块提供系统资源标识符url、功能及url的填写录入功能,无需被集成软件软件系统方进行额外的开发故障,集成信息配置页模块会接收被集成系统所携带的注册信息,并将系统资源标识符url、及系统资源的各功能url信息,下发给反向代理模块、集成主页模块。
15.反向代理处理模块:一是做反向代理处理、资源信息映射;二是鉴权认证处理,在集成主页模块进行一次访问后,无需二次鉴权认证,即可访问被集成软件系统的授权资源;如图2所示,反向代理处理模块接收到集成信息配置模块下发的带有被集成系统的资源标识符url、及各功能url标识的信息后,通过nginx作为反向代理服务器,进行被集成系统的url资源信息映射绑定;当有请求访问nginx时,nginx根据url反向代理至相关被集成系统节点,再根据hash策略转发至指定的被集成系统,并将从被集成系统端上得到的结果返回给发起请求的用户端。
16.上述nginx反向代理,反向代理(reverse proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。nginx是一个高性能的http和反向代理服务器,本发明会使用nginx反向代理技术防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制,及使用nginx反向代理解决iframe跨域问题,以此满足浏览器的同源策略实现跨域。
17.上述lua:是一种轻量小巧的脚本语言,用标准c语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能,且对nginx做了很好的支撑。
18.集成门户页模块:为用户端提供统一的集成功能页访问和使用。
19.如图3-5所示,一种快速对多个软件系统进行鉴权集成的方法,包括以下步骤:步骤1,用户端登录集成主页模块,访问被集成系统的具体功能页;步骤2,反向代理处理模块判断是否鉴权认证失效,当cookie或者session存在且未过期或失效,则进入具体业务功能页;反向代理处理模块会抓取集成系统的鉴权认证请求,并记录下完整的交互信息,供后续鉴权认证重放;当cookie或者session存在过期或失效时,跳转至步骤3;第一次登陆时,需要填写用户名和密码,之后push到服务器上,第一次注册,服务器先去查看一下用户名是否被人用过,如果已经被人使用,需要重新注册一个用户名,若没有,则可以进行创建。当用户进行登录的时候,首先数据库进行查找,有无这个用户名,如果有的话,就会进行一个计算,用密码和随机数通过sha256进行处理,得到一个随机字符串,把这个字符串和之前的进行比较,如果是一样的,则表示密码正确。之后再服务器创建一个对象(session),存到内存(小数据)中或者数据库中,服务器发送响应给浏览器,响应报文中有一个set-cookies_id=1b3ra9字段,浏览器发现这个字段就把他放到cookie中,下一次用户再一次请求的时候,请求会自动带cookie字段,服务器收到带cookie请求,则先进行比较,找到相同的s_id,之后发送更多的信息返回给浏览器。
20.步骤3,当cookie或者session存在过期或失效时,反向代理处理模块重放集成系统的鉴权认证请求,重放鉴权认证成功,则进入具体业务功能页;反向代理处理模块会抓取
集成系统的鉴权认证请求,并记录下完整的交互信息,供后续鉴权认证重放;当二次鉴权认证失败的情况下,则跳转到集成系统登录页,由用户发起登录认证。
21.对保存到cookie里面的敏感信息必须加密,防止cookie值被页面脚本读取。
22.给cookie设置有效期,如果不设置有效期,万一用户获取到用户的cookie后,就可以一直使用用户身份登录。
23.在设置cookie认证的时候,需要加入两个时间,一个是“即使一直在活动,也要失效”的时间,一个是“长时间不活动的失效时间”,在应用中,首先判断两个时间是否已超时,再执行其他操作。
24.上述session:目前,大多数互联网web应用都使用了 session信息在网络应用中,称为“会话”,具体到web中指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间;也可理解为会话周期,一种在服务器保持用户状态的机制,允许将对象存储在服务器的内存中,并一直保存到会话周期结束)来保存用户会话共享信息。客户端的session信息是存储在cookie (为了辨别用户身份、进行session信息跟踪而储存在用户本地终端上的数据)中,当一个session信息第一次被启用时,一个唯一的id被存储于本地的cookie中。因此,a用户和c服务器建立连接时所处的session信息同b用户和c服务器建立连接时所处的session信息是两个不同的session信息。
25.上述cookie (复数形态cookies),指某些网站为了辨别用户身份而储存在用户本地客户端(client side)上的数据(通常经过加密);cookie定义于 rfc2109 w3c (万维网联盟,world wide web consortium)组织第一次推出的官方cookies标准);服务器可以利用cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在http传输中的状态;cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是cookies的功用。
26.其中,被集成系统登录过程中,记录下完整的交互信息是利用nginx+lua实现鉴权认证的请求输入输出的打印人和记录;nginx通过$request_body变量记录请求内容,通过lua模块记录响应内容。
27.被集成系统登录采用验证码的形式,被集成系统的鉴权认证交互信息的爬取、记录,可借助第三方开源组件,进行全自动区分计算机和人类的图灵测试,进行验证码深度学习、识别,以实现验证码自动识别,完成重放鉴权认证。实现途径:tesseract、tesseract-ocr(tesserocr是python的一个ocr识别库,但其实是对tesseract做的一层python api封装,所以它的核心还是tesseract)对被集成软件系统的验证码库,进行深度卷积神经网络(convolutional neural networks, cnn)的验证码识别、学习训练。利用深度学习相关框架keras、tensorflow开发工具python以及训练集数据搭建深度学习、识别模型;该验证码识别系统包括图像收集打标签模块、图像预处理模块、搭建深度学习模型模块以及模型训练及验证模块;其中,图像收集打标签模块用于用爬虫爬取该网站的验证码图片分为测试集500张和训练集400张,手动打上标签;图像预处理模块用于利用图片处理工具cv2对验证码图片进行预处理;图像预处理模块包括灰度处理模块、二值化处理模块、清除噪点模块、图片标准化模块;搭建深度学习模型模块用于利用深度学习框架keras、
开发工具python以及训练集数据搭建深度学习模型;模型训练及验证模块用于利用反向传播,经过多次训练模型后,用训练好的模型来预测测试集的验证码图片。
28.还可引用专利号为cn107085730a、cn107967475a的专利文献技术实现自动识别验证码,提高验证码识别的准确率。
29.被集成系统的具体功能页,将被集成信息配置页模块下发的被集成软件系统url、功能url信息 绑定到具体功能页,使用iframe技术加载被集成软件系统资源,进行src的跳转,另外,结合nginx反向代理解决iframe跨域问题,满足浏览器的同源策略实现跨域。
30.以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1