1.本技术属于计算机通信技术领域,登录尤其涉及一种登录方法、装置装置、设备算机设备及计算机存储介质。及计介质
背景技术:
2.企业的存储大型系统中往往可能包含多个子系统,用户操作不同的流程子系统时,需要多次登录,登录较为繁琐。装置因此,设备算机相关技术中通过单点登录(single sign on,及计介质sso)方式,存储对于相互信任的流程多个应用系统,只需要登录其中一个系统,登录就可以访问其它应用系统。装置
3.相关技术中,设备算机可以采用中央认证服务原理,建立单独的sso系统进行认证,认证通过后可以无需重复登录进行跨域系统间的访问,但是这种方式存在内存开销增加,服务器压力加大,扩容困难等问题。故而,大多数系统也常采用会话控制session的信息全部加密到储存在用户本地终端上的数据cookie里,发送到浏览器端。用户登录系统后,服务器给用户下发一个令牌token,供用户访问浏览器页面,获取相关信息。下一次用户再次通过http请求访问服务器的时候,用预设的算法和密钥对这个token中的数据进行加密,如果加密后的结果和token中的签名一致,就可以进行鉴权,用户可以访问其他浏览器页面。但这种方式中如果密钥一旦泄露,系统将面临攻击风险,安全性低。
技术实现要素:
4.本技术实施例提供一种登录方法、装置、设备及计算机存储介质,能够提高单点登录的安全性。
5.第一方面,本技术实施例提供一种登录方法,应用于区块链服务器,该方法包括:
6.接收用户终端通过第一应用终端发送的第一请求,第一请求中包括用户终端的凭证信息、第一应用终端的第一资源定位信息以及第二应用终端的第二资源定位信息;
7.响应于第一请求,查找对应凭证信息和第一资源定位信息的第一令牌;
8.在数据库存储有第一资源定位信息与第二资源定位信息的链接关系的情况下,根据第一令牌,向第一应用终端返回资源授权信息,以使用户终端根据资源授权信息,从第一应用终端登录第二应用终端。
9.在一些实施例中,在接收用户终端通过第一应用终端发送的第一请求之前,方法还包括:
10.接收第二应用终端的第二请求,第二请求中包括第一资源定位信息、单点链接关系信息和权限控制信息,单点链接关系包括第一资源定位信息与第二资源定位信息的链接关系;
11.响应于第二请求,关联存储第一资源定位信息、单点链接关系信息和权限控制信息。
12.在一些实施例中,在关联存储第一资源定位信息、单点链接关系信息和权限控制信息之后,方法还包括:
13.接收用户终端通过第一应用终端发送的第三请求,第三请求中包括用户终端的凭证信息;
14.响应于第三请求,根据对应的单点链接关系,向第二应用终端广播凭证信息;
15.接收第二应用终端发送的权限定义信息,权限定义信息为第二应用终端根据接收的凭证信息生成的;
16.将权限定义信息,与第一资源定位信息及权限控制信息关联存储。
17.在一些实施例中,在接收用户终端通过第一应用终端发送的第一请求之前,方法还包括:
18.接收用户终端通过第一应用终端发送的第四请求,第四请求中包括第一资源定位信息和凭证信息;
19.响应于第四请求,对第一资源定位信息和凭证信息进行鉴权;
20.在鉴权通过的情况下,生成对应凭证信息和第一资源定位信息的第一令牌。
21.在一些实施例中,根据第一令牌,向第一应用终端返回资源授权信息,包括:
22.对第一令牌进行鉴权;
23.在对第一令牌鉴权通过的情况下,在任务队列中创建对应第一应用终端的任务节点;
24.执行任务节点的线程,向第一应用终端返回对应第二应用终端的资源授权信息,资源授权信息包括第二应用终端对凭证信息的权限定义信息。
25.在一些实施例中,第一资源定位信息与第二资源定位信息的链接关系包括,第一资源定位信息链接到第二资源定位信息的第一路径信息和第二路径信息;
26.根据第一令牌,向第一应用终端返回资源授权信息,包括:
27.对第一令牌进行鉴权,第一令牌对应第一路径信息;
28.在对第一令牌鉴权未通过的情况下,根据第二路径信息在任务队列中创建对应第一应用终端的任务节点;
29.执行任务节点的线程,向第一应用终端返回对应第二应用终端的资源授权信息,资源授权信息包括第二应用终端对凭证信息的权限定义信息。
30.在一些实施例中,区块链服务器包括单点登录管理服务器、鉴权管理服务器以及权限管理服务器,
31.单点登录管理服务器、鉴权管理服务器以及权限管理服务器构造为区块链中的鉴权节点。
32.第二方面,本技术实施例提供了一种登录装置,应用于区块链服务器,该装置包括:
33.第一接收模块,用于接收用户终端通过第一应用终端发送的第一请求,第一请求中包括用户终端的凭证信息、第一应用终端的第一资源定位信息以及第二应用终端的第二资源定位信息;
34.查找模块,用于响应于第一请求,查找对应凭证信息和第一资源定位信息的第一令牌;
35.返回模块,用于在数据库存储有第一资源定位信息与第二资源定位信息的链接关系的情况下,根据第一令牌,向第一应用终端返回资源授权信息,以使用户终端根据资源授
权信息,从第一应用终端登录第二应用终端。
36.第三方面,本技术实施例提供了一种计算机设备,所述设备包括:处理器以及存储有计算机程序指令的存储器;
37.所述处理器执行所述计算机程序指令时实现如第一方面所述的登录方法。
38.第四方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如第一方面所述的登录方法。
39.第五方面,本技术实施例提供了一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如第一方面所述的登录方法。
40.本技术实施例提供了一种登录方法、装置、设备及计算机存储介质。其中基于区块链服务器,方法包括:接收用户终端通过第一应用终端发送的第一请求,第一请求中包括用户终端的凭证信息、第一应用终端的第一资源定位信息以及第二应用终端的第二资源定位信息;响应于第一请求,查找对应凭证信息和第一资源定位信息的第一令牌;在数据库存储有第一资源定位信息与第二资源定位信息的链接关系的情况下,根据第一令牌,向第一应用终端返回资源授权信息,以使用户终端根据资源授权信息,从第一应用终端登录第二应用终端。本技术实施例将区块链与鉴权单点登录相结合,基于区块链技术的不可篡改性,减少敏感信息的传输,保证数据安全。
附图说明
41.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1是本技术一个实施例提供的登录方法的流程示意图;
43.图2是本技术一个具体实施例中应用终端的单点链接关系示意图;
44.图3是本技术一个具体示例中登录方法的流程示意图;
45.图4是本技术一个具体示例中数据登记关系的示意图;
46.图5是本技术另一个具体实施例中的登录方法的流程示意图;
47.图6是本技术再一个具体实施例中的登录方法的流程示意图;
48.图7是本技术另一个实施例提供的登录装置的结构示意图;
49.图8是本技术又一个实施例提供的计算机设备的结构示意图。
具体实施方式
50.下面将详细描述本技术的各个方面的特征和示例性实施例,为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本技术进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本技术,而不是限定本技术。对于本领域技术人员来说,本技术可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本技术的示例来提供对本技术更好的理解。
51.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实
体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
52.随着去中心化概念的发展,在多个应用系统之间采用sso技术进行登录的场景中,服务器只用于生成token,然后验证token,不再需要额外的缓存服务器来存储大量的session信息。session信息全部加密到cookie里,发送给浏览器端保存。服务器基于用户的访问请求生成token返回给用户,用户下一次发起访问请求时,对该token加密后发送给服务器鉴权,如果加密后的token与服务器生成的token签名一致,则鉴权通过,允许用户获取相关信息,进行登录。这样当发生访问量增加的情况,只需要针对访问需求大的服务器进行扩容,这样比扩充整个用户中心的服务器更节省,有效解决了内存开销大的问题。
53.例如相关技术中可以基于区块链进行身份管理。其中,通过基于区块链的身份管理系统接收应用终端发送的登录请求;输出需要用户鉴权的提示信息;在接收到用户鉴权后授权应用终端登录,并向应用终端返回目标用户的身份信息。
54.相关技术中还可以基于多页面的单点登录方法,其中,服务器接收第一应用页面的服务访问请求,查询第一应用页面是否存在服务访问请求的用户凭证;若第一应用页面存在用户凭证,则将用户凭证从述第一应用页面发送至第二应用页面中,根据用户凭证,执行第一应用页面及第二应用页面的服务访问请求,得到服务访问结果;若第一应用页面不存在用户凭证,对服务访问请求进行用户凭证的注册及加密后从第一应用页面中发送到第二应用页面中,根据加密后的用户凭证,执行第一应用页面及第二应用页面的服务访问请求,得到服务访问结果。
55.上述两种方案主要在系统交互过程中主要依赖于用户凭证等敏感信息的加密处理,以保障数据的安全性。对于跨域单点多集中于token鉴权,鉴权通过后需要将敏感信息传给对方,这样假如秘钥一旦暴露,系统面临攻击风险。且加密生成的数据大都比较长,传输过程将消耗较大的流量资源。并且,同当前大多数单点登录方案一样,系统间的交互仍才采用的是集中式单点登录,当任何两个授信系统验证失败,所有节点都将连接失败。并且各系统间仍需自己维护,存在权限冗余,功能重复构建导致开发成本增加,对于后期的运维来说,也会耗费大量的人力、物力。
56.为了解决相关技术中的至少一个问题,本技术实施例提供了一种登录方法、装置、设备及计算机存储介质。将区块链与鉴权单点登录相结合,引入区块链技术的不可篡改性,减少敏感信息的传输,保证数据安全。下面首先对本技术实施例所提供的登录方法进行介绍。
57.图1示出了本技术一个实施例提供的登录方法的流程示意图。该方法应用于区块链服务器,如图1所示,该方法包括步骤s101~s103:
58.s101接收用户终端通过第一应用终端发送的第一请求,第一请求中包括用户终端的凭证信息、第一应用终端的第一资源定位信息以及第二应用终端的第二资源定位信息;
59.s102响应于第一请求,查找对应凭证信息和第一资源定位信息的第一令牌;
60.s103在数据库存储有第一资源定位信息与第二资源定位信息的链接关系的情况下,根据第一令牌,向第一应用终端返回资源授权信息,以使用户终端根据资源授权信息,从第一应用终端登录第二应用终端。
61.根据本技术实施例,基于区块链服务器,当用户终端需要从第一应用终端登录第二应用终端时,用户终端通过第一应用终端发送第一请求至该服务器,该请求中包括用户终端的凭证信息、第一应用终端的第一资源定位信息以及第二应用终端的第二资源定位信息;服务器响应于第一请求,查找对应凭证信息和第一资源定位信息的第一令牌;在数据库存储有第一资源定位信息与第二资源定位信息的链接关系的情况下,根据第一令牌,向第一应用终端返回资源授权信息,以使用户终端根据资源授权信息,从第一应用终端登录第二应用终端。本技术实施例将区块链与鉴权单点登录相结合,基于区块链技术的不可篡改性,减少敏感信息的传输,保证数据安全性。
62.示例性的,上述用户终端的凭证信息可以包括用户名(username)、密码(password)及用户帐号(identity document,id)等。
63.示例性的,上述资源定位信息可以包括对应应用终端的统一资源定位器(uniform resource locator,url)。
64.本示例中,基于sso技术,在用户通过用户终端的浏览器从第一应用终端访问第二应用终端的场景中,用户终端通过第一应用终端发送的第一请求,将用户终端的凭证信息的第一应用终端的第一资源定位信息以及第二应用终端的第二资源定位信息一起发送给区块链服务器。该服务器收到第一请求后,先对该请求中的凭证信息和第一资源定位信息进行验证,确认已为该凭证信息和第一资源定位信息生成第一令牌token。令牌通常有一定的有效期,如一天或一个月等。如果数据库中存储有第一资源定位信息与第二资源定位信息的链接关系,则在第一令牌的有效期内,可以基于该链接关系,将对应的资源授权信息返回给第一应用终端,以使用户终端根据资源授权信息,从第一应用终端登录第二应用终端。根据本技术实施例,基于区块链的不可篡改性和安全性,保证令牌等敏感安全性和信息验证的可靠性。这样可以不必多次传送令牌和用户凭证等敏感信息,基于区块链服务器的验证,安全可靠地完成用户在多个应用终端之间的单点登录。
65.在一些实施例中,应用终端可以为多个,例如,多个应用终端为某企业大型业务系统的子系统。为了提高多个应用终端之间的系统耦合度,降低单点登录失败率,可选的,本技术实施例中,多个应用系统之间可以构造为星型结构,使得任意两个应用终端之间可以有多个链接路径。具体的,本实施例中,如图2所示,各应用终端的接入关系形成网状结构关系。例如可以以任意授信应用为核心,构建局部星型网络结构,这样在任一路径中的其中任意两单点终端链接失败,其他单点终端不会受影响,各应用终端间的单点接入方式简单化,且用户可以自行选择最优接入方案。例如参考图2,应用终端b链接到应用终端e,可选路径1可以为:应用终端b直接链接到应用终端e;可选路径2可以为:应用终端b链接到应用终端d,再链接到应用终端e。
66.应用终端之间构建的局部星型网络结构链接关系,可以以各应用终端的url之间的链接关系关联存储在区块链服务器中,通过区块链数据分布式存储方式,实现应用终端单点登录的去中心化,提高系统间耦合度,降低单点登录失败率,提高用户满意度。
67.本技术实施例中,参考图3所示,区块链服务器300可以包括单点登录管理服务器、
鉴权管理服务器以及权限管理服务器,该单点登录管理服务器、鉴权管理服务器以及权限管理服务器构造为区块链中的鉴权节点,对用户终端以及应用终端进行注册上链以及鉴权等。示例性的,单点登录管理服务器(下文也称为“sso鉴权服务器”或“sso鉴权中心”)301可以用于对应用终端和用户终端注册上链和sso登录鉴权,鉴权管理服务器(下文也称为“令牌鉴权中心”)302可以用于对令牌鉴权,权限管理服务器(下文也称为“权限管理中心”)303可以用于对应用终端(包括接入应用终端304和授信应用终端306)之间的上述链接关系以及应用终端与用户终端305之间的权限进行管理。单点登录管理服务器、鉴权管理服务器以及权限管理服务器之间可以交互完成对相关信息的授权、鉴权、验证等。
68.在一些实施例中,在步骤s101之前,可以先基于区块链服务器对应用终端和用户进行上链注册,将应用终端之间的上述链接关系和应用终端与用户终端之间权限关系,存储在区块链服务器。具体的,本实施例中,结合图4所示,在步骤s101接收用户终端通过第一应用终端发送的第一请求之前,该方法还可以包括s104~s105:
69.s104接收第二应用终端的第二请求,第二请求中包括第一资源定位信息、单点链接关系信息和权限控制信息,单点链接关系包括第一资源定位信息与第二资源定位信息的链接关系;
70.s105响应于第二请求,关联存储第一资源定位信息、单点链接关系信息和权限控制信息。
71.本实施例中,在具有授信应用的前提下,其他应用可以以该授信应用为接入前置应用,申请上链注册。其中授信应用可以通过在区块链服务器上配置确定,或者也可以通过应用终端向区块链服务器发起请求完成授信注册,其中发起的该请求中至少包括该应用终端的url。授信应用,即在区块链服务器上完成上链注册的应用终端。
72.本实施例中,第二请求可以为第二应用终端的上链请求。第二请求中,包括要接入的前置应用终端url,示例性的,若第一应用终端为授信的前置应用终端,则第二请求中包括第一资源定位信息(下文简称为“url1”)。
73.本实施例中,单点链接关系信息包括url1与第二资源定位信息(下文简称为“url2”)的链接关系,该链接关系表征可以从url1链接到url2。权限控制信息包括对应应用终端对用户开放的权限,如登录权限、删除信息的权限等操作权限,本实施例不做具体限定。
74.示例性的,在步骤s104中,第二应用终端作为待接入系统,需要先提交上链请求,将其前置应用终端的url1和权限控制信息传送至区块链服务器的sso鉴权中心。sso鉴权中心校验url1的有效性,确定该资源定位信息可用。url1校验通过后,执行步骤s105,sso鉴权中心调用权限管理中心对url1、单点链接关系以及权限控制信息进行登记,实现信息之间的关联存储,完成第二应用终端的上链注册。示例性的,权限管理中心登记单点链接关系以及权限控制信息时,可以按照图5所示的结构关系进行登记,完成上链注册。
75.可以理解的是,第二应用终端可以为多个,也可以为一个。
76.根据本技术实施例,可以以授信应用终端为核心,通过其他应用终端的上链请求,在权限管理中心构建得到多个终端之间的网状结构链接关系,且该链接关系可以以链式结构存储,使得系统应用终端间可以随意单点注册,即任何系统应用终端都可以作为其他系统应用终端的主干授信系统。这样若其中一个授信系统的主干会话终端、token失效等都不
会影响其他接入应用终端,应用终端之间可以选择其他路径完成单点登录,避免整个系统瘫痪,实现系统去中心化单点登录,提高用户满意度。
77.待接入系统完成上链注册后,还可以进行关于各应用终端的用户新增申请。具体的,再次参考图4所示,在步骤s105关联存储第一资源定位信息、单点链接关系信息和权限控制信息之后,方法还可以包括s106~s109:
78.s106接收用户终端通过第一应用终端发送的第三请求,第三请求中包括用户终端的凭证信息;
79.s107响应于第三请求,根据对应的单点链接关系,向第二应用终端广播凭证信息;
80.s108接收第二应用终端发送的权限定义信息,权限定义信息为第二应用终端根据接收的凭证信息生成的;
81.s109将权限定义信息,与第一资源定位信息及权限控制信息关联存储。
82.本实施例中,用户通过用户终端申请上链过程中,将用户终端的凭证信息通过第一应用终端,即授信的应用终端,发送第三请求至区块链服务器。在步骤s106中,可以由权限管理中心接收该第三请求,并对该请求中的凭证信息进行识别,在数据库中查询该凭证信息,以确定数据库中是否存在该用户凭证信息。若存在,则表示该用户已完成上链注册,反之,若不存在,则用户为未注册的新用户。凭证信息若不存在,权限管理中心还会对凭证信息进行合法性校验,确定凭证信息的内容(如文字、数字或符号及其排列顺序)是否符合预设的凭证信息设置规则。
83.凭证信息校验通过后,执行步骤s107,区块链服务器将凭证信息广播给接入的各应用终端(如第二应用终端),使得第二应用终端根据接收的凭证信息生成后,对该用户进行权限定义,权限定义即定义应用终端对用户开放的权限,如定义用户具有登录权限、点击访问权限、添加信息的权限等。权限定义后生成对应的权限定义信息,发送给区块链服务器。
84.本实施例中,区块链服务器通过步骤s108接收到权限定义信息,可以调用权限管理中心先对权限定义信息中包含的权限进行复用性判断,即筛选出具有链接关系的应用终端对同一用户重复开放的权限,以过滤掉冗余数据,然后执行步骤s109,权限管理中心将权限定义信息,与之前存储的第一资源定位信息及权限控制信息等关联存储,完成权限登记。示例性的,登记时也可以参考图5所示的数据结构进行关联登记。
85.根据本技术实施例,基于区块链服务器的sso鉴权中心和权限管理中心,将sso鉴权架构和统一业务权限管理机制结合,简化业务权限管理流程,实现业务权限链式统一管理,降低权限冗余性,提高权限的复用性,降低了业务权限的开发成本。并且,通过统一权限管理,让各系统应用终端对用户开放的业务权限不再是信息孤岛,提高了单点登录过程中业务权限的共享性,降低系统间的信任成本,一定程度提高单点效率。
86.在一些实施例中,在区块链服务器上完成应用终端和用户的上链注册后,基于应用终端之间的网状链接关系,可以执行步骤s101~s103,实现去中心化的单点鉴权登录,且基于区块链服务器完成登录验证,避免了token在传输过程中安全问题。在本实施例中,在用户在授信应用终端登录后,块链服务器可以为用户终端和该应用终端生成令牌,以利于后续用户终端从该应用终端请求登录其他应用终端。具体的,参考图6所示,在步骤s101接收用户终端通过第一应用终端发送的第一请求之前,方法还可以包括s110~s112:
87.s110接收用户终端通过第一应用终端发送的第四请求,第四请求中包括第一资源定位信息和凭证信息;
88.s111响应于第四请求,对第一资源定位信息和凭证信息进行鉴权;
89.s112在鉴权通过的情况下,生成对应凭证信息和第一资源定位信息的第一令牌。
90.本实施例中,参考图6,以第一应用终端为授信应用b、用户为us1为例进行说明。在步骤s601中,用户通过用户终端的浏览器发起包含授信应用url的访问请求,请求访问第一应用终端。第一应用终端执行步骤s602,先验证该用户是否已经登录,若未登录,则利用浏览器的重定向功能打开第一应用终端的登录页面,获取用户凭证信息。然后第一应用终端执行步骤s603,将包含用户凭证信息的密文、以及其资源定位信息url-b的第四请求,传输至sso鉴权中心。
91.本实施例中,sso鉴权中心主要用于凭证信息的解密、生成有效的token令牌(即第一令牌)、建立全局会话以及接收用户的权限列表。具体的,sso鉴权中心通过步骤s110收到第一应用终端发送的第四请求后,解密凭证信息,并执行步骤s111,调用权限管理中心对凭证信息和资源定位信息url-b进行鉴权。权限管理中心基于数据库中登记的相关信息,验证凭证信息和资源定位信息url-b的有效性,确认该凭证信息和资源定位信息url-b已上链注册过,则调取对应的权限列表,即包含第一应用终端对该用户开放的权限的列表,返回给sso鉴权中心。
92.sso鉴权中心收到权限管理中心返回的验证结果后,执行步骤s112,创建以授信应用b的全局会话,同时生成令牌token_b_us1,该令牌token_b_us1中包含用户凭证密文、授信应用url、会话状态、有效时长等信息,具体如表1所示。
93.表1
[0094][0095]
在本实施例中,只要token一直处于有效状态,全局会话就一直处于正常状态,其他接入授信应用b的应用终端都可以通过授信应用b完成单点登录。
[0096]
并且,sso鉴权中心执行步骤s604,将生成的第一令牌发送给令牌鉴权中心,使得令牌鉴权中心执行步骤s605,进行令牌的有效性登记和分布式链式存储。然后sso鉴权中心还会执行步骤s606,向第一应用终端返回用户us1在该应用中的权限列表,第一应用终端可以根据权限列表将授权资源信息(如授权访问的页面、可访问的信息等)返回至浏览器,限制用户访问。
[0097]
在用户登录第一应用终端的前提下,可以通过第一应用终端发送第一请求,请求从第一应用终端访问第二应用终端。参考图6所示,以第二应用终端为接入应用d为例。区块链服务器的sso鉴权中心通过步骤s101接收到第一请求,第一请求中包括授信应用b的资源定位信息url-b和接入应用d的资源定位信息url-d。sso鉴权中心执行步骤s607根据前置的url-b验证用户us1的登录状态,并根据数据库存储的单点链接关系选择一条最短的可用路径(如从接入应用a链接到接入应用d),然后执行步骤s608,调用权限管理中心验证对资源定位信息url-b和接入应用d的资源定位信息url-d以及可用路径(如url-a,url-d)进行鉴
权验证,如验证url-d是否与url-b关联登记等。
[0098]
在权限管理中心验证通过后,sso鉴权中心校验全局会话是否正常,如正常,则执行后续操作,如不正常,则中止或结束操作。在全局会话正常的情况下,sso鉴权中心调用令牌鉴权中心执行步骤s102,从数据库中获取对应授信应用b的session信息,如session_b_user,并验证该信息对应的第一令牌是否有效。
[0099]
示例性的,如果第一令牌有效,则执行步骤s103,根据第一令牌,向第一应用终端返回资源授权信息。本示例中,步骤s103具体可以包括:
[0100]
对第一令牌进行鉴权;
[0101]
在对第一令牌鉴权通过的情况下,在任务队列中创建对应第一应用终端的任务节点;
[0102]
执行任务节点的线程,向第一应用终端返回对应第二应用终端的资源授权信息,资源授权信息包括第二应用终端对凭证信息的权限定义信息。
[0103]
本示例中,若第一令牌有效,则令牌鉴权中心在任务队列中创建对应第一应用终端,也即对应第一令牌token_b_us1的一个任务节点,并记录对应的验证时间、第一应用终端的单点url等。然后令牌鉴权中心执行任务节点的线程,向第一应用终端返回用户us1在接入应用d中的资源授权信息,即权限列表,使得第一应用终端根据该权限列表将授权的资源返回至用户终端的浏览器进行访问限制。
[0104]
本示例中,若第一令牌中对应的路径无效,区块链服务器可以利用预存的星型网状结构关系,按最短距离算法,找到最优的路径。具体的,本示例中,第一资源定位信息链接到第二资源定位信息的第一路径信息和第二路径信息,步骤s103具体可以包括:
[0105]
对第一令牌进行鉴权,第一令牌对应第一路径信息;
[0106]
在对第一令牌鉴权未通过的情况下,根据第二路径信息在任务队列中创建对应第一应用终端的任务节点;
[0107]
执行任务节点的线程,向第一应用终端返回对应第二应用终端的资源授权信息,资源授权信息包括第二应用终端对凭证信息的权限定义信息。
[0108]
本示例中,若令牌鉴权中心验证第一令牌中对应的第一路径无效(鉴权未通过),区块链服务器可以利用预存的星型网状结构关系,按最短距离算法,找到最优的路径(如从授权应用b到接入应用e再到接入应用d),并判断该路径中的应用终端的会话状态是否正常。如果正常,则令牌鉴权中心根据第二路径信息在任务队列中创建对应第一应用终端的一个任务节点,并记录对应的验证时间、第一应用终端的单点url等。然后令牌鉴权中心执行任务节点的线程,向第一应用终端返回用户us1在接入应用d中的资源授权信息,即权限列表,使得第一应用终端根据该权限列表将授权的资源返回至用户终端的浏览器,根据第二路径进行访问和权限限制。通过上述过程,若有一个应用终端节点断开,其他应用终端节点也可自动形成最优链接方案,完成单点登录,且用户对此无感知,利于提升用户的满意度。
[0109]
本技术实施例中,将区块链与鉴权单点登录相结合,引入区块链技术的不可篡改性,通过链上的鉴权登录过程,避免敏感信息的传输,保证数据安全。并通过将鉴权中心与接入应用的分布式节点组网,可实现去中心化的鉴权登录,提升系统安全性与稳定性。本技术实施例还能够基于区块链数据链式的优化存储方式,实现系统单点登录的去中心化,提
高系统间耦合度,降低单点登录失败率,提高用户满意度。
[0110]
上文中结合图1和图6,详细描述了根据本技术实施例的登录方法,下面将结合图7,详细描述本技术实施例的装置。
[0111]
图7示出了本技术实施例提供的登录装置的结构示意图。该装置应用于区块链服务器,如图7所示,该装置包括:
[0112]
第一接收模块701,用于接收用户终端通过第一应用终端发送的第一请求,第一请求中包括用户终端的凭证信息、第一应用终端的第一资源定位信息以及第二应用终端的第二资源定位信息;
[0113]
查找模块702,用于响应于第一请求,查找对应凭证信息和第一资源定位信息的第一令牌;
[0114]
返回模块703,用于在数据库存储有第一资源定位信息与第二资源定位信息的链接关系的情况下,根据第一令牌,向第一应用终端返回资源授权信息,以使用户终端根据资源授权信息,从第一应用终端登录第二应用终端。
[0115]
根据本技术实施例,基于区块链服务器,当用户终端需要从第一应用终端登录第二应用终端时,用户终端通过第一应用终端发送第一请求至该服务器,该请求中包括用户终端的凭证信息、第一应用终端的第一资源定位信息以及第二应用终端的第二资源定位信息;服务器响应于第一请求,查找对应凭证信息和第一资源定位信息的第一令牌;在数据库存储有第一资源定位信息与第二资源定位信息的链接关系的情况下,根据第一令牌,向第一应用终端返回资源授权信息,以使用户终端根据资源授权信息,从第一应用终端登录第二应用终端。本技术实施例将区块链与鉴权单点登录相结合,基于区块链技术的不可篡改性,减少敏感信息的传输,保证数据安全性。
[0116]
示例性的,上述用户终端的凭证信息可以包括用户名(username)、密码(password)及用户帐号(identity document,id)等。
[0117]
示例性的,上述资源定位信息可以包括对应应用终端的统一资源定位器(uniform resource locator,url)。
[0118]
根据本技术实施例,基于区块链的不可篡改性和安全性,保证令牌等敏感安全性和信息验证的可靠性。这样可以不必多次传送令牌和用户凭证等敏感信息,基于区块链服务器的验证,安全可靠地完成用户在多个应用终端之间的单点登录。
[0119]
在一些实施例中,应用终端可以为多个,多个应用系统之间可以构造为星型结构,使得任意两个应用终端之间可以有多个链接路径。应用终端之间构建的局部星型网络结构链接关系,可以以各应用终端的url之间的链接关系关联存储在区块链服务器中,通过区块链数据分布式存储方式,实现应用终端单点登录的去中心化,提高系统间耦合度,降低单点登录失败率,提高用户满意度。
[0120]
本技术实施例中,区块链服务器可以包括单点登录管理服务器、鉴权管理服务器以及权限管理服务器,该单点登录管理服务器、鉴权管理服务器以及权限管理服务器构造为区块链中的鉴权节点,对用户终端以及应用终端进行注册上链以及鉴权等。
[0121]
在一些实施例中,装置还可以包括:
[0122]
第二接收模块,用于接收第二应用终端的第二请求,第二请求中包括第一资源定位信息、单点链接关系信息和权限控制信息,单点链接关系包括第一资源定位信息与第二
资源定位信息的链接关系;
[0123]
第一存储模块,用于响应于第二请求,关联存储第一资源定位信息、单点链接关系信息和权限控制信息。
[0124]
本实施例中,在具有授信应用的前提下,其他应用可以以该授信应用为接入前置应用,申请上链注册。其中授信应用可以通过在区块链服务器上配置确定,或者也可以通过应用终端向区块链服务器发起请求完成授信注册,其中发起的该请求中至少包括该应用终端的url。
[0125]
本实施例中,第二请求可以为第二应用终端的上链请求。第二请求中,包括要接入的前置应用终端url。
[0126]
根据本技术实施例,可以以授信应用终端为核心,通过其他应用终端的上链请求,在权限管理中心构建得到多个终端之间的网状结构链接关系,且该链接关系可以以链式结构存储,使得系统应用终端间可以随意单点注册,即任何系统应用终端都可以作为其他系统应用终端的主干授信系统。这样若其中一个授信系统的主干会话终端、token失效等都不会影响其他接入应用终端,应用终端之间可以选择其他路径完成单点登录,避免整个系统瘫痪,实现系统去中心化单点登录,提高用户满意度。
[0127]
在一些实施例中,装置还可以包括:
[0128]
第三接收模块,用于接收用户终端通过第一应用终端发送的第三请求,第三请求中包括用户终端的凭证信息;
[0129]
广播模块,用于响应于第三请求,根据对应的单点链接关系,向第二应用终端广播凭证信息;
[0130]
第四接收模块,用于接收第二应用终端发送的权限定义信息,权限定义信息为第二应用终端根据接收的凭证信息生成的;
[0131]
第二存储模块,用于将权限定义信息,与第一资源定位信息及权限控制信息关联存储。
[0132]
实施例中,用户通过用户终端申请上链过程中,将用户终端的凭证信息通过第一应用终端,即授信的应用终端,发送第三请求至区块链服务器。第三接收模块接收该第三请求,并对该请求中的凭证信息进行识别,在数据库中查询该凭证信息,以确定数据库中是否存在该用户凭证信息。若存在,则表示该用户已完成上链注册,反之,若不存在,则用户为未注册的新用户。凭证信息若不存在,权限管理中心还会对凭证信息进行合法性校验,确定凭证信息的内容是否符合预设的凭证信息设置规则。
[0133]
凭证信息校验通过后,区块链服务器通过广播模块将凭证信息广播给接入的各应用终端,使得第二应用终端根据接收的凭证信息生成后,对该用户进行权限定义,权限定义即定义应用终端对用户开放的权限。权限定义后生成对应的权限定义信息,发送给区块链服务器。
[0134]
本实施例中,区块链服务器通过第四接收模块接收到权限定义信息,可以调用权限管理中心先对权限定义信息中包含的权限进行复用性判断,即筛选出具有链接关系的应用终端对同一用户重复开放的权限,以过滤掉冗余数据,然后通过第二存储模块,调用权限管理中心将权限定义信息,与之前存储的第一资源定位信息及权限控制信息等关联存储,完成权限登记。
[0135]
根据本技术实施例,基于区块链服务器的sso鉴权中心和权限管理中心,将sso鉴权架构和统一业务权限管理机制结合,简化业务权限管理流程,实现业务权限链式统一管理,降低权限冗余性,提高权限的复用性,降低了业务权限的开发成本。并且,通过统一权限管理,让各系统应用终端对用户开放的业务权限不再是信息孤岛,提高了单点登录过程中业务权限的共享性,降低系统间的信任成本,一定程度提高单点效率。
[0136]
在一些实施例中,装置还可以包括:
[0137]
第五接收模块,用于接收用户终端通过第一应用终端发送的第四请求,第四请求中包括第一资源定位信息和凭证信息;
[0138]
第一鉴权模块,用于响应于第四请求,对第一资源定位信息和凭证信息进行鉴权;
[0139]
第一生成模块,用于在鉴权通过的情况下,生成对应凭证信息和第一资源定位信息的第一令牌。
[0140]
本实施例中,用户通过用户终端的浏览器发起包含授信应用url的访问请求,请求访问第一应用终端。第一应用终端先验证该用户是否已经登录,若未登录,则利用浏览器的重定向功能打开第一应用终端的登录页面,获取用户凭证信息。然后第一应用终端将包含用户凭证信息的密文、以及其资源定位信息的第四请求,传输至sso鉴权中心。
[0141]
本实施例中,sso鉴权中心主要用于凭证信息的解密、生成有效的token令牌(即第一令牌)、建立全局会话以及接收用户的权限列表。
[0142]
sso鉴权中心通过第五接收模块收到第一应用终端发送的第四请求后,解密凭证信息,并通过第一鉴权模块调用权限管理中心对凭证信息和第一第一资源定位信息进行鉴权。权限管理中心基于数据库中登记的相关信息,验证凭证信息和第一资源定位信息的有效性,确认该凭证信息和该资源定位信息已上链注册过,则调取对应的权限列表,返回给sso鉴权中心。
[0143]
sso鉴权中心收到权限管理中心返回的验证结果后,创建全局会话,同时通过第一生成模块生成对应凭证信息和第一资源定位信息的第一令牌。该中包含用户凭证密文、授信应用url、会话状态、有效时长等信息。
[0144]
sso鉴权中心将生成的第一令牌发送给令牌鉴权中心,使得令牌鉴权中心进行令牌的有效性登记和分布式链式存储。然后sso鉴权中心还向第一应用终端返回用户在该应用中的权限列表,第一应用终端可以根据权限列表将授权资源信息(如授权访问的页面、可访问的信息等)返回至浏览器,限制用户访问。
[0145]
在用户登录第一应用终端的前提下,可以通过第一应用终端发送第一请求,请求从第一应用终端访问第二应用终端。其中,sso鉴权中心根据数据库存储的单点链接关系选择一条最短的可用路径,调用权限管理中心验证对第一资源定位信息和第二资源定位信息以及该可用路径进行鉴权验证。在权限管理中心验证通过后,sso鉴权中心校验全局会话是否正常,在全局会话正常的情况下,sso鉴权中心调用令牌鉴权中心,通过查找模块从数据库中获取对应第一令牌,验证第一令牌有效性。
[0146]
本实施例,装置还可以包括:
[0147]
第二鉴权模块,用于对第一令牌进行鉴权;
[0148]
第一创建模块,用于在对第一令牌鉴权通过的情况下,在任务队列中创建对应第一应用终端的任务节点;
[0149]
第一执行模块,用于执行任务节点的线程,向第一应用终端返回对应第二应用终端的资源授权信息,资源授权信息包括第二应用终端对凭证信息的权限定义信息。
[0150]
本示例中,若第一令牌有效,则令牌鉴权中心在任务队列中创建对应第一应用终端的一个任务节点,并记录对应的验证时间、第一应用终端的单点url等。然后令牌鉴权中心执行任务节点的线程,向第一应用终端返回用户在接入应用中的资源授权信息,即权限列表,使得第一应用终端根据该权限列表将授权的资源返回至用户终端的浏览器进行访问限制。
[0151]
本实施例,装置还可以包括:
[0152]
第三鉴权模块,用于对第一令牌进行鉴权,第一令牌对应第一路径;
[0153]
第二创建模块,用于在对第一令牌鉴权未通过的情况下,根据第二路径在任务队列中创建对应第一应用终端的任务节点;
[0154]
第二执行模块,用于执行任务节点的线程,向第一应用终端返回对应第二应用终端的资源授权信息,资源授权信息包括第二应用终端对凭证信息的权限定义信息。
[0155]
本示例中,若令牌鉴权中心验证第一令牌中对应的第一路径无效(鉴权未通过),区块链服务器可以利用预存的星型网状结构关系,按最短距离算法,找到最优的路径,并判断该路径中的应用终端的会话状态是否正常。如果正常,则令牌鉴权中心在任务队列中创建对应第一应用终端的一个任务节点,并记录对应的验证时间、第一应用终端的单点url等。然后令牌鉴权中心执行任务节点的线程,向第一应用终端返回用户在接入应用中的资源授权信息,即权限列表,使得第一应用终端根据该权限列表将授权的资源返回至用户终端的浏览器,根据第二路径进行访问和权限限制。这样若有一个应用终端节点断开,其他应用终端节点也可自动形成最优链接方案,完成单点登录,且用户对此无感知,利于提升用户的满意度。
[0156]
申请实施例中,将区块链与鉴权单点登录相结合,引入区块链技术的不可篡改性,通过链上的鉴权登录过程,避免敏感信息的传输,保证数据安全。并通过将鉴权中心与接入应用的分布式节点组网,可实现去中心化的鉴权登录,提升系统安全性与稳定性。本技术实施例还能够基于区块链数据链式的优化存储方式,实现系统单点登录的去中心化,提高系统间耦合度,降低单点登录失败率,提高用户满意度。
[0157]
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,并能达到其相应的技术效果,为简洁描述,在此不再赘述。
[0158]
图8示出了本技术实施例提供的计算机设备的硬件结构示意图。
[0159]
如图8所示,计算机设备800可以包括处理器801以及存储有计算机程序指令的存储器802。
[0160]
具体地,上述处理器801可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,asic),或者可以被配置成实施本技术实施例的一个或多个集成电路。
[0161]
存储器802可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器802可包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器802可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储
器802可在综合网关容灾设备的内部或外部。在特定实施例中,存储器802是非易失性固态存储器。
[0162]
存储器可包括只读存储器(rom),随机存取存储器(ram),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本技术的一方面的方法所描述的操作。
[0163]
处理器801通过读取并执行存储器802中存储的计算机程序指令,以实现上述实施例中的任意一种登录方法。
[0164]
在一个示例中,该计算机设备还可包括通信接口803和总线810。其中,如图8所示,处理器801、存储器802、通信接口803通过总线810连接并完成相互间的通信。
[0165]
通信接口803,主要用于实现本技术实施例中各模块、装置、单元和/或设备之间的通信。
[0166]
总线810包括硬件、软件或两者,将该计算机设备800的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线810可包括一个或多个总线。尽管本技术实施例描述和示出了特定的总线,但本技术考虑任何合适的总线或互连。
[0167]
另外,结合上述实施例中的登录方法,本技术实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种登录方法。
[0168]
并且,结合上述实施例中的登录方法,本技术实施例可提供一种计算机程序产品来实现。该计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如上述实施例中的任意一种登录方法。
[0169]
需要明确的是,本技术并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本技术的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本技术的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
[0170]
以上所述的结构框图中所示的功能模块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本技术的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
[0171]
还需要说明的是,本技术中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本技术不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
[0172]
上面参考根据本技术的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本技术的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
[0173]
以上所述,仅为本技术的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。