一种单点登录方法、单点登录服务器集群及电子设备与流程

文档序号:23063742发布日期:2020-11-25 17:48阅读:158来源:国知局
一种单点登录方法、单点登录服务器集群及电子设备与流程

本申请涉及通信技术领域,具体而言,涉及一种单点登录方法、单点登录服务器集群及电子设备。



背景技术:

目前,随着基于网络的应用的日益广泛以及不同领域的业务种类的日益丰富,用单点登录(singlesignon)系统,简称为sso系统,变得越来越重要,即用户只需登录一次就可以访问所有相互信任的跨域应用系统。

现有技术中,一方面,单点登录系统及方法存在着使用单一的单点登录服务器,提供的并发性有限,在大的并发情况下,由于数据交互量较大,导致数据同步延时较大。另一方面,因为只需要登录一次,所有的授权的应用系统都可以访问,这可能导致一些很重要的信息泄露。



技术实现要素:

本申请的目的在于提供一种单点登录方法、单点登录服务器集群及电子设备,用以改善单个单点登录服务器的并发性有限,以及存在较大的安全性风险的技术缺陷。

第一方面,本申请实施例提供了一种单点登录方法,方法包括:接收用户发送的包含有用户信息的用户认证请求;基于用户认证请求,多个单点登录服务器中的每个单点登录服务器根据第一预设加密规则对用户信息进行加密,将加密的用户信息与认证授权数据库中的用户身份信息进行对比以判断所述用户信息是否有效;若用户信息有效,获得令牌token,通过多个单点登录服务器中的每个单点登录服务器中第二预设加密规则对令牌token进行加密,将与加密的所述令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址发送给用户,其中,临时key为用户缓存一个以用户名为key的加密的令牌token在缓存空间中;接收用户发送的登录指令,根据登录指令跳转到新标签后,接收临时key请求获取所述令牌token的指令,确定需要登录的多个所述应用系统是否完成登录。

结合第一方面,在第一种可能的实现方式中,在若用户信息有效,获得令牌token之后,方法还包括:设置令牌token的过期时长。

结合第一方面,在第二种可能的实现方式中,将加密后的用户信息与认证授权数据库中的用户身份信息进行对比以判断用户信息是否有效,包括:根据加密的用户信息,在认证授权数据库中查找用户信息映射的信任凭证,并向多个所述单点登录服务器中的每个单点登录服务器发送认证成功消息,否则向多个单点登录服务器中的每个单点登录服务器发送认证失败消息。

结合第一方面,在第三种可能的实现方式中,通过多个单点登录服务器中的每个单点登录服务器中第二预设加密规则为aes-cbc算法。

结合第一方面,在第四种可能的实现方式中,接收用户发送的登录指令,根据登录指令跳转到新标签后,接收临时key请求获取令牌token的指令,确定需要登录的多个所述应用系统是否完成登录,包括:接收登录指令,登录指令包括:临时key、与每个应用系统对应的标识符和新标签对应的访问地址,其中,与每个应用系统对应的标识符为每个应用系统的应用编码;根据登录指令中的新标签对应的访问地址,跳转到新标签所对应的页面;接收临时key请求获取令牌token的指令,确定需要登录的多个应用系统是否完成登录。

第二方面,本申请实施例提供了一种单点登录方法,方法包括:用户发送包含有用户信息的用户认证请求,基于用户认证请求,获得与令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址;将应用列表展示给用户,用户点击需要登录的应用系统的系统名字并确定后,生成登录指令,其中,登录指令包括临时key、与每个应用系统对应的标识符和新标签对应的访问地址;使用临时key请求用户获取令牌token,若用户成功获得令牌token,确定需要登录的多个应用系统完成登录。

第三方面,本申请实施例提供了一种单点登录服务器集群,单点登录服务器集群包括多个单点登录服务器,单点登录服务器集群用于:接收用户发送的包含有用户信息的用户认证请求;基于用户认证请求,多个单点登录服务器中的每个单点登录服务器根据第一预设加密规则对所述用户信息进行加密,将加密的所述用户信息与认证授权数据库中的用户身份信息进行对比以判断所述用户信息是否有效;若用户信息有效,获得令牌token,通过多个单点登录服务器中的每个单点登录服务器中第二预设加密规则对令牌token进行加密,将与加密的令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址发送给用户,其中,临时key为用户缓存一个以用户名为key的加密的令牌token在缓存空间中;接收用户发送的登录指令,根据登录指令跳转到新标签后,接收临时key请求获取令牌token的指令,确定需要登录的多个应用系统是否完成登录。

第四方面,本申请实施例提供了一种电子设备,电子设备包括:第一处理模块,用于用户发送包含有用户信息的用户认证请求,基于用户认证请求,获得与令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址;第二处理模块,用于将应用列表展示给所述用户,用户点击需要登录的应用系统的系统名字并确定后,生成登录指令,其中,登录指令包括临时key、与每个应用系统对应的标识符和新标签对应的访问地址;第三处理模块,用于使用临时key请求用户获取令牌token,若用户成功获得令牌token,确定需要登录的多个应用系统完成登录。

本发明的有益效果是:根据本发明实施例提供的技术方案,引入了单点登录服务器集群,提供了基于集群技术可以处理大量的并发数据交互的可实施性;并且基于第一预设加密规则对用户认证请求中的用户信息进行加密,以及基于第二预设加密规则对令牌token进行加密,通过这样的加密方式,更不容易别恶意拦截或者攻击,可以使得使用单点登录方法的安全性提高。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种单点登录方法的流程示意图;

图2为本申请实施例提供的另一种单点登录方法的流程示意图;

图3为本申请实施例提供的电子设备的结构框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请实施例中,单点登录方法应用于单点登录服务器集群,单点登录服务器集群包括有多个单点登录服务器,多个单点登录服务器中的每个单点登录服务器都将执行如下操作:接收用户发送的包含有用户信息的用户认证请求;基于用户认证请求,多个单点登录服务器中的每个单点登录服务器根据第一预设加密规则对所述用户信息进行加密,将加密的所述用户信息与认证授权数据库中的用户身份信息进行对比以判断所述用户信息是否有效;若用户信息有效,获得令牌token,通过多个单点登录服务器中的每个单点登录服务器中第二预设加密规则对令牌token进行加密,将与加密的令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址发送给用户,其中,临时key为用户缓存一个以用户名为key的加密的令牌token在缓存空间中;接收用户发送的登录指令,根据登录指令跳转到新标签后,接收临时key请求获取令牌token的指令,确定需要登录的多个应用系统是否完成登录。

请参阅图1,图1为本申请实施例提供的一种单点登录方法的流程示意图。单点登录方法包括:步骤s11、步骤s12、步骤s13和步骤s14。

步骤s11:接收用户发送的包含有用户信息的用户认证请求;

步骤s12:基于用户认证请求,多个单点登录服务器中的每个单点登录服务器根据第一预设加密规则对用户信息进行加密,将加密的用户信息与认证授权数据库中的用户身份信息进行对比以判断所述用户信息是否有效;

步骤13:若用户信息有效,获得令牌token,通过多个单点登录服务器中的每个单点登录服务器中第二预设加密规则对令牌token进行加密,将与加密的所述令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址发送给用户,其中,临时key为用户缓存一个以用户名为key的加密的令牌token在缓存空间中;

步骤s14:接收用户发送的登录指令,根据登录指令跳转到新标签后,接收临时key请求获取所述令牌token的指令,确定需要登录的多个所述应用系统是否完成登录。

步骤s11:接收用户发送的包含有用户信息的用户认证请求。

用户向单点登录服务器集群发送携带有用户信息的用户认证请求,单点登录服务器集群接收到用户认证请求。其中,用户信息可以包括用户账号和用户登录密码。

步骤s12:基于用户认证请求,多个单点登录服务器中的每个单点登录服务器根据第一预设加密规则对用户信息进行加密,将加密的用户信息与认证授权数据库中的用户身份信息进行对比以判断所述用户信息是否有效。

单点登录服务器集群接收到用户认证请求,可以先判断是不是当前用户认证请求的状态是“第一次访问”,即该用户针对该目标应用系统是未登录过的,换句话说,该用户首次访问该目标应用系统,若判断的结果为是的话,那么,多个单点登录服务器中的每个单点登录服务器根据第一预设加密规则对用户信息进行加密,将加密的用户信息与认证授权数据库中的用户身份信息进行对比以判断所述用户信息是否有效。

详细地,根据加密的用户信息,在认证授权数据库中查找到用户信息映射的信任凭证,并向多个所述单点登录服务器中的每个单点登录服务器发送认证成功消息,否则向多个单点登录服务器中的每个单点登录服务器发送认证失败消息。登录认证可以检验访问请求所携带的目标用户身份信息是否合法。

用户身份信息表是预先建立的一张或多张数据表,用于存储用户账号和用户登录密码之间的对应关系,用户可以事先通过客户端向单点登录服务器集群发送注册请求,注册请求可以包括该用户的用户账号和用户登录密码,在检测到该用户注册成功后,单点登录服务器集群可以将该用户的用户名和密码保存至用户注册表。或者,单点登录服务器集群可以直接通过人机交互界面获得各用户输入的各用户账号和用户登录密码,并将各用户账号和用户登录密码之间的对应关系存储至用户身份信息表。只有在认证授权数据库中找到与用户信息映射的信任凭证,才可以说明该用户信息是有效的,这样未通过认证的用户信息就无法进行步骤s13以及步骤s13之后的相关操作,保证了单点登录的安全性。

步骤13:若用户信息有效,获得令牌token,通过多个单点登录服务器中的每个单点登录服务器中第二预设加密规则对令牌token进行加密,将与加密的令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址发送给用户,其中,临时key为用户缓存一个以用户名为key的加密的令牌token在缓存空间中。

当用户信息经过认证授权数据库的认证,表示该用户信息是有效的,是可以值得信任的。当用户信息有效时,获得令牌token。因为在拿到令牌token,与用户授权的应用系统可以进行免登录操作,因此,使用多个单点登录服务器中的每个单点登录服务器中第二预设加密规则对令牌token进行加密,提高令牌token的安全性,从而使得整个单点登录的操作更安全。

详细地,获得令牌token后,将设置一个令牌token的过期时长,从生成令牌token后,在过期时长内,令牌token是有效的,可以携带令牌token进行认证;若从生成令牌token至携带令牌token之间的时长大于过期时长,该令牌token将会是无效的。

当使用多个单点登录服务器中的每个单点登录服务器中第二预设加密规则对令牌token进行加密时,第二预设加密规则可以为aes-cbc算法,也可以为hmacsha256,在本申请实施例中,第二预设加密规则为aes-cbc算法。

将令牌token进行缓存,并生成临时key。缓存方式可以为redis缓存,也可以为memcache缓存,在本申请实施例中,采用redis缓存。将与加密的令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址发送给用户。可以根据每个应用系统对应的网页访问地址进行跳转,进入新的标签页面。

每个应用系统可以提供不同的业务服务。每个应用系统可以部署于不同应用服务器,也可以均部署于同一应用服务器,本发明对多个应用系统的部署方式不做限定。

多个应用系统中的每一个应用系统可以均采用前后端分离架构,采用架构的应用系统的数据处理过程可以为:通过前端与客户端交互,前端可以获取存储于后端的数据,并将所获取的数据返回给客户端。可以看出,前、后端分工明确,应用实现了应用系统的数据解耦,提升了系统性能。

用户可以通过客户端与多个应用系统建立通信连接,例如,用户可以通过客户端登录多个应用系统和/或向多个应用系统请求业务数据,客户端可以是手机、平板、个人电脑等。

步骤s14:接收用户发送的登录指令,根据登录指令跳转到新标签后,接收临时key请求获取所述令牌token的指令,确定需要登录的多个所述应用系统是否完成登录。

用户接收到单点登录服务器集群发送的与加密的令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址后,将会生成登录指令,并发送给单点登录服务器集群。

详细地,登录指令包括:临时key、与每个应用系统对应的标识符和新标签对应的访问地址,其中,与每个应用系统对应的标识符为每个应用系统的应用编码。单点登录服务器集群接收用户发送的登录指令,根据登录指令跳转到新标签后,接收临时key请求获取令牌token的指令,确定需要登录的多个应用系统是否完成登录。

请参阅图2,本申请实施例提供的另一种单点登录方法包括:步骤s21、步骤s22和步骤s23。

步骤s21:用户发送包含有用户信息的用户认证请求,基于用户认证请求,获得与令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址;

步骤s22:将应用列表展示给用户,用户点击需要登录的应用系统的系统名字并确定后,生成登录指令,其中,登录指令包括临时key、与每个应用系统对应的标识符和新标签对应的访问地址;

步骤s23:使用临时key请求用户获取令牌token,若用户成功获得令牌token,确定需要登录的多个应用系统完成登录。

步骤s21:用户发送包含有用户信息的用户认证请求,基于用户认证请求,获得与令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址。

详细地,用户通过客户端向单点登录服务器集群发送包含有用户信息的用户认证请求,用户信息通过认证授权数据库的认证,将接收到单点登录服务器集群发送的与令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址。

步骤s22:将应用列表展示给用户,用户点击需要登录的应用系统的系统名字并确定后,生成登录指令,其中,登录指令包括临时key、与每个应用系统对应的标识符和新标签对应的访问地址。

详细地,客户端可以安装浏览器,浏览器可以显示登录页面,登录页面可以提供登录按钮。客户端接收到由多个应用系统的系统名字组成的应用列表,并展示给用户,用户可以根据实际需求,点击需要登录的应用系统的名字,在点击至少一个应用系统的系统名字以后并确定后,用户将在点击确定按钮的时候把临时key和与每个应用系统对应的标识符附加在新标签对应的访问地址后跳转。用户点击登录按钮,单点登录服务器集群在检测到登录按钮被点击后,可以确定检测到登录指令。

步骤s23:使用临时key请求用户获取令牌token,若用户成功获得令牌token,确定需要登录的多个应用系统完成登录。

客户端生成的登录指令包含有临时key,那么可以使用临时key去请求多个应用系统获取令牌token。将客户端传递的代表token的临时key与redis缓存中的token进行对比,如果相同则放行,不同则拒绝,即如果对比结果相同多个应用系统完成登录,对比结果不同多个应用系统的登录失败。

下面将对本申请实施例中的电子设备进行详细描述,请参阅图3,电子设备100包括:

第一处理模块110,用于用户发送包含有用户信息的用户认证请求,基于用户认证请求,获得与令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址;

第二处理模块120,用于将应用列表展示给所述用户,用户点击需要登录的应用系统的系统名字并确定后,生成登录指令,其中,登录指令包括临时key、与每个应用系统对应的标识符和新标签对应的访问地址;

第三处理模块130,用于使用临时key请求用户获取令牌token,若用户成功获得令牌token,确定需要登录的多个应用系统完成登录。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、用户设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

综上所述,本申请实施例提供一种单点登录方法,方法包括:接收用户发送的包含有用户信息的用户认证请求;基于用户认证请求,多个单点登录服务器中的每个单点登录服务器根据第一预设加密规则对用户信息进行加密,将加密的用户信息与认证授权数据库中的用户身份信息进行对比以判断所述用户信息是否有效;若用户信息有效,获得令牌token,通过多个单点登录服务器中的每个单点登录服务器中第二预设加密规则对令牌token进行加密,将与加密的所述令牌token对应的临时key、由多个应用系统的系统名字组成的应用列表和与每个应用系统对应的网页访问地址发送给用户,其中,临时key为用户缓存一个以用户名为key的加密的令牌token在缓存空间中;接收用户发送的登录指令,根据登录指令跳转到新标签后,接收临时key请求获取所述令牌token的指令,确定需要登录的多个所述应用系统是否完成登录。

根据本发明实施例提供的技术方案,引入了单点登录服务器集群,提供了基于集群技术可以处理大量的并发数据交互的可实施性;并且基于第一预设加密规则对用户认证请求中的用户信息进行加密,以及基于第二预设加密规则对令牌token进行加密,通过这样的加密方式,更不容易别恶意拦截或者攻击,可以使得使用单点登录方法的安全性提高。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1