一种基于区块链的单点登录系统、方法、设备和产品技术方案

技术编号:29585054 阅读:22 留言:0更新日期:2021-08-06 19:43
本发明专利技术公开了一种基于区块链的单点登录系统、方法、设备和产品,所述方法包括:由与第一区块链节点连接的第一应用子系统接收用户的登录请求、验证用户的身份信息以及生成Token;所述第一应用子系统向用户返回所述Token和第一访问资源,同时将所述Token上传至所述第一区块链节点,以使所述第一区块链节点将所述Token传播至区块链中的至少第二区块链节点并计入分布式账本中。本发明专利技术的用户在登录应用子系统时,采用应用子系统本身对用户进行身份验证,而不是在统一身份认证服务器中进行验证,降低了由于认证请求负荷集中和压力过大导致的验证失败的可能性,且避免了将所有应用子系统的用户信息统一集中在统一身份认证服务器存放,导致用户信息泄露和丢失。

【技术实现步骤摘要】
一种基于区块链的单点登录系统、方法、设备和产品
本专利技术属于单点登录
,具体涉及一种基于区块链的单点登录系统、方法、设备和产品。
技术介绍
单点登录(SingleSignOn,SSO)是指在多个应用系统中,用户只需登录一次即可访问所有相互信任的应用系统的登录方式,其允许用户通过单点登录凭证(例如用户ID和密码)来访问多个相关但相互独立的应用系统。现有技术中,当用户向应用系统A的受保护资源发起访问请求时,通过统一身份认证服务器提供统一身份认证服务对用户进行身份信息校验,并在验证通过后向用户授予身份令牌(Token),用户携带身份令牌再次向应用系统A发起访问请求时,应用系统A携带用户的身份令牌到统一身份认证服务器中校验身份令牌的有效性并获取用户信息及相应权限,统一身份认证服务器校验后向应用系统A返回身份令牌校验结果、用户信息及相应权限。此后,当用户访问与应用系统A相关的每一其他应用系统时,用户每一次均需要重复执行携带身份令牌访问应用系统并到统一身份认证服务器中校验令牌有效性的步骤。现有的单点登录方法至少存在如下缺陷:1.存在单点故障问题:一旦统一身份认证服务器发生故障或者断网时,与单点登录有关的所有应用系统均会无法运作;2.用户注册的所有应用系统的账号密码均保存在统一身份认证服务器中,则一旦统一认证服务器出现故障,容易造成用户账号密码信息泄露和丢失;3.因所有应用系统均在统一认证服务器中进行认证,则服务器可能存在认证请求负荷集中以及并发压力过大的可能;4.因与单点登录有关的所有应用系统都必须使用同一用户登录系统,则当现有的应用系统扩展到新的技术和/或软件系统时,必须对现有的应用系统的用户体系进行改造,增大了系统使用成本。5.用户所有的登录行为只能通过日志的方式进行记录,此种方式存在不可追溯性和可篡改性。
技术实现思路
本专利技术的目的在于提供一种基于区块链的单点登录系统、方法、设备和产品,用于解决现有技术中存在的至少一个问题。为了实现上述目的,本专利技术采用以下技术方案:第一方面,本专利技术提供一种基于区块链的单点登录系统,包括:多个应用子系统和多个区块链节点;其中,用户可通过统一的Token分别访问多个所述应用子系统,每一所述应用子系统分别与一个区块链节点连接;所述单点登录系统还包括:智能合约生成模块,用于生成Token上链合约和Token查询合约;交易生成模块,用于生成调用所述Token上链合约的Token上链交易和调用所述Token查询合约的Token查询交易;节点信息设置模块,用于在多个所述应用子系统中设置对应的区块链节点信息;接口生成模块,用于在多个所述应用子系统中生成调用所述Token上链交易的第一接口和调用所述Token查询交易的第二接口。第二方面,本专利技术提供一种基于区块链的单点登录方法,所述方法所述的单点登录系统实现任一所述的应用子系统的单点登录,所述方法包括:由与第一区块链节点连接的第一应用子系统接收用户的登录请求、验证用户的身份信息以及生成Token;所述第一应用子系统向用户返回所述Token和第一访问资源,同时将所述Token上传至所述第一区块链节点,以使所述第一区块链节点将所述Token传播至区块链中的至少第二区块链节点并计入分布式账本中。在一种可能的设计中,由与第一区块链节点连接的第一应用子系统接收用户的登录请求之前,还包括:所述第一应用子系统接收用户的第一访问请求,响应于确定用户未登录并将界面跳转至第一登录界面。在一种可能的设计中,将所述Token上传至所述第一区块链节点,包括:调用第一接口请求Token上链交易,以使区块链在接收到Token上链交易请求后,调用Token上链合约将所述Token存入所述第一区块链节点。在一种可能的设计中,还包括:由与所述第二区块链节点连接的第二应用子系统接收用户的第二访问请求;其中,所述第二访问请求中携带用户的Token;所述第二应用子系统调用第二接口查询所述Token有效,若有效,响应于所述第二访问请求并向用户返回第二访问资源。在一种可能的设计中,所述第二应用子系统调用第二接口查询所述Token是否有效,包括:所述第二应用子系统调用第二接口请求Token查询交易,以使区块链在接收到Token查询交易请求后,调用Token查询合约查询所述Token是否存在于所述第二区块链节点中,若存在则所述Token有效,否则无效。在一种可能的设计中,还包括:若无效,响应于确定用户需登录并将界面跳转至第二登录界面。在一种可能的设计中,将所述Token存入所述第一区块链节点之后,还包括:所述第一区块链节点向所述第一应用子系统返回所述Token的上链结果。第三方面,本专利技术提供一种计算机设备,包括:依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第二方面所述的基于区块链的单点登录方法。第四方面,本专利技术提供一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第二方面所述的基于区块链的单点登录方法。第五方面,本专利技术提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第二方面所述的基于区块链的单点登录方法。有益效果:1.本专利技术的用户在登录应用子系统时,采用应用子系统本身对用户进行身份验证,而不是在统一身份认证服务器中进行验证,降低了由于认证请求负荷集中和压力过大导致的验证失败的可能性,且避免了将所有应用子系统的用户信息统一集中在统一身份认证服务器存放,导致用户信息泄露和丢失。2.本专利技术的用户通过在受访的应用子系统处获得身份令牌,可以立即访问当前受访的应用子系统,即使身份令牌在后续上链过程或其他应用系统通过区块链校验身份令牌失败,仍然不影响已登陆成功的应用子系统的正常使用,从而避免了中心化的统一身份认证服务器故障导致的所有应用子系统均无法正常使用。3.本专利技术的身份令牌储存在区块链节点的分布式账本中,利用区块链分布式、加密和不可篡改等特性,保证身份令牌的隐私性和安全性。4.本专利技术所有应用子系统的认证登录信息以区块链交易的形式存在,其可追溯性和不可篡改性保证了用户行为的强可审计性。6.本专利技术可兼容不同应用子系统的用户登录系统体系,不再要求所有应用子系统必须使用同一登录账号和密码,避免了对现有的应用子系统进行用户体系改造,节约了系统应用成本。附图说明图1为本专利技术提供的基于区块链的单点登录系统的结构框图;图2为本专利技术提供的基于区块链的单点登录方法的流程图;图3为本专利技术提供的应用例的时序图;图4为本专利技术提供的计算机设备的结构框图。具体实施方式为使本说明书实施例的目的、技术方案和优点更加清楚,下本文档来自技高网
...

【技术保护点】
1.一种基于区块链的单点登录系统,其特征在于,包括:多个应用子系统和多个区块链节点;其中,用户可通过统一的Token分别访问多个所述应用子系统,每一所述应用子系统分别与一个区块链节点连接;所述单点登录系统还包括:/n智能合约生成模块,用于生成Token上链合约和Token查询合约;/n交易生成模块,用于生成调用所述Token上链合约的Token上链交易和调用所述Token查询合约的Token查询交易;/n节点信息设置模块,用于在多个所述应用子系统中设置对应的区块链节点信息;/n接口生成模块,用于在多个所述应用子系统中生成调用所述Token上链交易的第一接口和调用所述Token查询交易的第二接口。/n

【技术特征摘要】
1.一种基于区块链的单点登录系统,其特征在于,包括:多个应用子系统和多个区块链节点;其中,用户可通过统一的Token分别访问多个所述应用子系统,每一所述应用子系统分别与一个区块链节点连接;所述单点登录系统还包括:
智能合约生成模块,用于生成Token上链合约和Token查询合约;
交易生成模块,用于生成调用所述Token上链合约的Token上链交易和调用所述Token查询合约的Token查询交易;
节点信息设置模块,用于在多个所述应用子系统中设置对应的区块链节点信息;
接口生成模块,用于在多个所述应用子系统中生成调用所述Token上链交易的第一接口和调用所述Token查询交易的第二接口。


2.一种基于区块链的单点登录方法,其特征在于,所述方法通过如权利要求1所述的单点登录系统实现任一所述的应用子系统的单点登录,所述方法包括:
由与第一区块链节点连接的第一应用子系统接收用户的登录请求、验证用户的身份信息以及生成Token;
所述第一应用子系统向用户返回所述Token和第一访问资源,同时将所述Token上传至所述第一区块链节点,以使所述第一区块链节点将所述Token传播至区块链中的至少第二区块链节点并计入分布式账本中。


3.根据权利要求2所述的方法,其特征在于,由与第一区块链节点连接的第一应用子系统接收用户的登录请求之前,还包括:
所述第一应用子系统接收用户的第一访问请求,响应于确定用户未登录并将界面跳转至第一登录界面。


4.根据权利要求2所述的方法,其特征在于,将所述Token上传至所述第一区块链节点,包括:
调用第一接口请求Token上链交易,以使区块链网络在接...

【专利技术属性】
技术研发人员:王学东
申请(专利权)人:成都佰纳瑞信息技术有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1