本发明涉及访问客户端认证技术领域,具体为一种应用于微服务架构的访问客户端认证系统。
背景技术:
微服务架构以一套微小的服务的方式来开发和部署一个单独的应用,这些微小的服务根据业务功能来划分,通过自动化部署机制独立部署运行在自己的进程中,微服务之间使用轻量级通信机制来进行通信。一个典型的微服务架构应该包括客户端、微服务网关、服务发现、微服务原子层、数据库、部署平台等模块,根据不同应用类型及服务规模,可以增加负载均衡、权限认证、服务熔断、日志监控等模块,来满足服务的非功能性需求。
然而,到目前为止,发现服务器没有对任何客户端的连接进行身份验证,也没有通过基本身份验证保护发现服务器,因此无法防止未经授权的访问客户端对发现服务器进行的访问服务。
技术实现要素:
(一)解决的技术问题
针对现有技术的不足,本发明提供一种应用于微服务架构的访问客户端认证系统,以解决目前基于微服务架构的访问客户端认证系统,无法对访问发现服务器的访问客户端的身份进行安全认证的技术问题。
(二)技术方案
为实现上述目的,本发明提供如下技术方案:
一种应用于微服务架构的访问客户端认证系统,包括:访问客户端u,api网关,由产品管理云服务器s1、账户管理云服务器s2和客户管理云服务器s3组成的微服务架构;
用于存储微服务架构中任一个云服务器si的注册信息、并接受服务访问的发现服务器sf;
发现服务器sf上运行有用户认证管理系统软件,该用户认证管理系统对访问发现服务器sf的访问客户端u上的用户ui进行身份认证,该认证方法包括以下步骤:
步骤一:访问客户端u上的用户ui在用户认证管理系统上进行用户注册,具体包括:用户认证管理系统自动生成字母表g上的字符串
步骤二:发现服务器sf上的用户认证管理系统对用户ui的身份进行认证,具体的认证过程为:
s1.用户认证管理系统随机选定整数k,并将k与字符串hi进行关联,计算得到关联数ti=f(hi)=ikkk ik-1kk-1 … ilk i0;
s2.访问客户端u上的用户ui随机选择一个自然数自然数k,并将k传送给用户认证管理系统;
s3.用户认证管理系统计算si=mod(ti,k),并将计算出的si返回给访问客户端u上的用户ui;
s5.访问客户端u上的用户ui根据k、si、hi,计算整数k′,并将k′传送给用户认证管理系统;
s6.用户认证管理系统验证k=k′是否成立,若k=k′成立,则证明访问客户端u上的用户ui属于合法用户,允许访问客户端u上的用户ui访问发现服务器sf。
进一步的,所述的步骤一:访问客户端u上的用户ui在用户认证管理系统上进行用户注册,具体包括:
s1.用户认证管理系统在注册页面上弹出与访问客户端u上的用户ui进行交互式通信的对话框;
s2.用户认证管理系统自动生成字母表g上的字符串
进一步的,所述的api网关用于将访问客户端u的请求访问通过发现服务器sf动态路由到微服务架构中任一个云服务器si。
进一步的,所述的对话框具备无痕迹通信功能,即对话框内的所有交互通信内容均没有任何备份记录。
(三)有益的技术效果
与现有技术相比,本发明具备以下有益的技术效果:
本发明中当访问客户端u上的用户ui通过api网关向发现服务器sf发送访问请求时,发现服务器sf上的用户认证管理系统对访问发现服务器sf的访问客户端u上的用户ui进行身份认证,即访问客户端u上的用户ui根据k、si、hi,计算出整数k′,并将k′与用户认证管理系统随机选定的整数k进行比较,若k=k′成立,则证明访问客户端u上的用户ui属于合法用户,也即允许访问客户端u上的用户ui访问发现服务器sf;
只有通过了身份认证、并且证明身份合法的访问客户端u上的用户ui,才能访问发现服务器sf;
从而解决了目前基于微服务架构的访问客户端认证系统,无法对访问发现服务器的访问客户端的身份进行安全认证的技术问题。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种应用于微服务架构的访问客户端认证系统,包括:访问客户端u,由产品管理云服务器s1、账户管理云服务器s2和客户管理云服务器s3组成的微服务架构;
用于存储微服务架构中任一个云服务器si的注册信息、并接受服务访问的发现服务器sf;
用于将访问客户端u的请求访问通过发现服务器sf动态路由到微服务架构中任一个云服务器si的api网关;
发现服务器sf上运行有用户认证管理系统软件,该用户认证管理系统对访问发现服务器sf的访问客户端u上的用户ui进行身份认证,该认证方法包括以下步骤:
步骤一:访问客户端u上的用户ui在用户认证管理系统上进行用户注册,具体包括:
s1.用户认证管理系统在注册页面上弹出与访问客户端u上的用户ui进行交互式通信的对话框,该交互式通信对话框具备无痕迹通信功能,即对话框内的所有交互通信内容均没有任何备份记录;
s2.用户认证管理系统自动生成字母表g上的字符串
其中,字符串hi和关联函数f(hi)为唯一合法的证明密钥;
步骤二:当访问客户端u上的用户ui通过api网关向发现服务器sf发送访问请求时,发现服务器sf上的用户认证管理系统开始对用户ui的身份进行认证,具体的认证过程为:
s1.用户认证管理系统在验证页面上弹出与访问客户端u上的用户ui进行交互式通信的对话框;
s2.用户认证管理系统随机选定整数k,并将k与字符串hi进行关联,计算得到关联数ti=f(hi)=ikkk ik-1kk-1 … ilk i0;
s3.访问客户端u上的用户ui随机选择一个自然数k,并将k输入到对话框内;
s4.用户认证管理系统计算si=mod(ti,k),并将计算出的si显示在对话框内,即返回给访问客户端u上的用户ui;
s5.访问客户端u上的用户ui根据k、si、hi,计算整数k′,并将k′输入到对话框内;
s6.用户认证管理系统验证k=k′是否成立,若访问客户端u上的用户ui计算的k′与用户认证管理系统随机选定的整数k完全相同,则证明访问客户端u上的用户ui属于合法用户,也即允许访问客户端u上的用户ui访问发现服务器sf;
若访问客户端u上的用户ui计算的k′与用户认证管理系统随机选定的整数k不相同,则证明访问客户端u上的用户ui属于非法用户,也即不允许访问客户端u上的用户ui访问发现服务器sf;
所述的对话框具备无痕迹通信功能,即对话框内的所有交互通信内容均没有任何备份记录。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
1.一种应用于微服务架构的访问客户端认证系统,其特征在于,包括:访问客户端u,api网关,由产品管理云服务器s1、账户管理云服务器s2和客户管理云服务器s3组成的微服务架构;
用于存储微服务架构中任一个云服务器si的注册信息、并接受服务访问的发现服务器sf;
发现服务器sf上运行有用户认证管理系统软件,该用户认证管理系统对访问发现服务器sf的访问客户端u上的用户ui进行身份认证,该认证方法包括以下步骤:
步骤一:访问客户端u上的用户ui在用户认证管理系统上进行用户注册,具体包括:用户认证管理系统自动生成字母表g上的字符串
步骤二:发现服务器sf上的用户认证管理系统对用户ui的身份进行认证,具体的认证过程为:
s1.用户认证管理系统随机选定整数k,并将k与字符串hi进行关联,计算得到关联数ti=f(hi)=ikkk ik-1kk-1 … ilk i0;
s2.访问客户端u上的用户ui随机选择一个自然数自然数k,并将k传送给用户认证管理系统;
s3.用户认证管理系统计算si=mod(ti,k),并将计算出的si返回给访问客户端u上的用户ui;
s5.访问客户端u上的用户ui根据k、si、hi,计算整数k′,并将k′传送给用户认证管理系统;
s6.用户认证管理系统验证k=k′是否成立,若k=k′成立,则证明访问客户端u上的用户ui属于合法用户,允许访问客户端u上的用户ui访问发现服务器sf。
2.根据权利要求1所述的访问客户端认证系统,其特征在于,所述的步骤一中,访问客户端u上的用户ui在用户认证管理系统上进行用户注册,具体包括:
s1.用户认证管理系统在注册页面上弹出与访问客户端u上的用户ui进行交互式通信的对话框;
s2.用户认证管理系统自动生成字母表g上的字符串
3.根据权利要求2所述的访问客户端认证系统,其特征在于,所述的api网关用于将访问客户端u的请求访问通过发现服务器sf动态路由到微服务架构中任一个云服务器si。
4.根据权利要求3所述的访问客户端认证系统,其特征在于,所述的对话框具备无痕迹通信功能,即对话框内的所有交互通信内容均没有任何备份记录。
技术总结