CN114338242A - 一种基于区块链技术的跨域单点登录访问方法及系统 - Google Patents
一种基于区块链技术的跨域单点登录访问方法及系统 Download PDFInfo
- Publication number
- CN114338242A CN114338242A CN202210228270.2A CN202210228270A CN114338242A CN 114338242 A CN114338242 A CN 114338242A CN 202210228270 A CN202210228270 A CN 202210228270A CN 114338242 A CN114338242 A CN 114338242A
- Authority
- CN
- China
- Prior art keywords
- channel
- node
- resource
- domain
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种基于区块链技术的跨域单点登录访问方法及系统,包括:响应于用户的资源事件请求,获取第一资源事件;其中,所述第一资源事件为经过用户使用对应的身份证书进行签名,且使用对应的交易证书进行加密的资源事件;根据所述第一资源事件识别到的用户所在的源通道ID,调用源通道内的源通道锚节点验证用户的访问资源是否为所述源通道的访问资源,若验证到用户的访问资源是非所述源通道的访问资源,根据识别到的目标通道ID,调用目标通道的目标通道锚节点进行跨域资源访问;采用本发明实施例能够减少跨域访问系统瓶颈、受入侵后跨域访问系统破坏面大的情况,同时保证了域内服务和资源的访问不受整体区块链系统的影响。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于区块链技术的跨域单点登录访问方法及系统。
背景技术
随着网络系统的规模应用不断扩大,各种服务和资源被置于不同的域中,通过域的划分和管理,可以使用户在各自的信任域中存取各自的服务和资源,在同一个域中的访问权限一般是统一的。但是越来越多的应用需要为不同域用户提供不同需求的服务和资源,这种不在同一信任域中的访问资源的方式就涉及到跨域访问。
传统的跨域访问中,采用集中式的中介或代理来对其他域访问权进行授权,以在认证授权通过后进行跨域访问,然而,集中式认证授权容易出现跨域访问系统瓶颈、受入侵后跨域访问系统破坏面大的情况。
发明内容
本发明实施例的目的是提供一种基于区块链技术的跨域单点登录访问方法及系统,通过将各通道的通道锚节点作为中介和代理授权服务器,能够减少跨域访问系统瓶颈、受入侵后跨域访问系统破坏面大的情况,同时保证了域内服务和资源的访问不受整体区块链系统的影响,认证和授权效率高。
为实现上述目的,本发明实施例提供了一种基于区块链技术的跨域单点登录访问方法,包括:
响应于用户的资源事件请求,获取第一资源事件;其中,所述第一资源事件为经过用户使用对应的身份证书进行签名,且使用对应的交易证书进行加密的资源事件;
根据所述第一资源事件识别到的用户所在的源通道ID,调用源通道内的源通道锚节点验证用户的访问资源是否为所述源通道的访问资源,若验证到用户的访问资源是非所述源通道的访问资源,根据识别到的目标通道ID,调用目标通道的目标通道锚节点进行跨域资源访问;
其中,所述跨域资源访问具体包括:
所述目标通道锚节点验证所述源通道锚节点发送来的第二资源事件的真实性和正确性,在验证通过后解析所述第二资源事件,获得解析后的第二资源事件;其中,所述第二资源事件为经过所述源通道锚节点使用对应的身份证书进行签名的资源事件;
所述目标通道锚节点根据解析后的第二资源事件,在全域区块链授权信息账本上检索目标域区块链授权信息账本,通过对比所述目标域区块链授权信息账本与解析后的第二资源事件,判断所述目标域区块链授权信息账本的授权信息是否符合访问策略,若符合访问策略,向所述目标通道的目标资源服务器发送服务请求,以使所述目标资源服务器生成目标域Token,并将所述目标域Token返回给所述目标通道锚节点;其中,所述全域区块链授权信息账本存储有各域区块链的授权信息账本,所述服务请求为经过所述目标通道锚节点使用对应的身份证书进行签名的服务请求,所述目标域Token为带有时间戳的Token;
所述目标通道锚节点将所述第二资源事件和所述目标域Token进行打包签名,执行部署在所述目标通道上的链码,并在经过验证、排序后提交到所述全域区块链授权信息账本,以使所述目标通道的各交易节点更新授权信息账本;
所述目标通道锚节点将所述目标域Token进行加密签名后发送给用户,以使用户通过加密签名后的目标域Token进行跨域资源访问。
作为上述方案的改进,所述若验证到用户的访问资源是非所述源通道的访问资源,根据识别到的目标通道ID,调用目标通道的目标通道锚节点进行跨域资源访问,具体包括:
所述源通道锚节点若验证到用户的访问资源是非所述源通道的访问资源,生成第三资源事件;其中,所述第三资源事件为经过所述源通道锚节点使用对应的身份证书私钥进行签名,且使用对应的交易证书私钥进行加密后附上签名信息的资源事件;
所述源通道锚节点解析所述第三资源事件以验证用户的真实性,根据验证通过后的第三资源事件识别目标通道ID,向目标通道内的目标通道锚节点发送第三资源事件,以调用所述目标通道锚节点进行跨域资源访问;其中,所述第三资源事件为经过所述源通道锚节点使用对应的身份证书进行签名的资源事件。
作为上述方案的改进,所述目标资源服务器生成目标域Token,并将所述目标域Token返回给所述目标通道锚节点,具体包括:
所述目标资源服务器验证收到的所述服务请求的真实性和正确性,在验证通过后,生成目标域Token,并将所述目标域Token返回给所述目标通道锚节点。
作为上述方案的改进,所述基于区块链技术的跨域单点登录访问方法,还包括:
所述源通道锚节点若验证到用户的访问资源是所述源通道的访问资源,进行域内资源访问;
其中,所述域内资源访问具体包括:
所述源通道锚节点根据位于所述源通道内的源域区块链授权信息账本验证用户是否具有访问所述源通道内资源的权限,若是,向用户发送源域Token,以使用户通过所述源域Token进行域内资源访问;其中,所述源域Token为带有时间戳的Token;
所述源通道锚节点将所述第一资源事件和所述源域Token进行打包签名,执行部署在所述源通道上的链码,并在经过验证、排序后提交到所述源域区块链授权信息账本,以使所述源通道的各交易节点更新授权信息账本。
作为上述方案的改进,在所述响应于用户的资源事件请求,获取第一资源事件之前,所述基于区块链技术的跨域单点登录访问方法还包括:
响应于用户的注册请求,将经过系统管理员审核通过的注册信息及注册成功信息发送给用户,以使用户根据所述注册信息进行登录;
在判断到用户根据所述注册信息成功登录时,响应于用户的申请证书请求,返回用户身份证书、交易证书和属性证书;其中,所述属性证书包括系统管理员授予用户对资源访问的授权信息。
作为上述方案的改进,通过以下步骤将授权信息存储于每个通道的区块链上:
用户所在通道的背书节点根据接收到的经过加密并签名的授权信息查看是否具有通道操作权限,若查看到具有通道权限,对加密并签名过的授权信息进行解密,以验证签名的正确性;
所述背书节点通过对比哈希值查看经加密并签名过的授权信息是否正确,若正确,将签名验证通过的授权信息加上背书节点的ID并使用对应的交易证书签名后提交给对应的排序节点,并反馈成功信息给用户;
所述背书节点基于背书策略,当判断到授权信息记录达到预设的背书节点数时,将交易提案的参数作为输入,在当前状态数据库上执行模拟交易,并使交易处于挂起状态,生成交易结果,以基于所述交易结果,将签名验证通过的授权信息发送给对应的排序节点;
排序节点接收到用户广播的所述交易提案和所述交易结果,按通道分类和时间戳先后顺序对所述交易提案进行排序,并为每个通道创建包含交易的区块;其中,所述交易提案中包含背书节点的签名结果和通道标识;
所述排序节点将区块发送到所述排序节点所在通道上的所有节点,以在通过共识过程后,验证节点验证交易提案,并将验证过的交易提案提交到所述排序节点所在通道的提交节点;
所述提交节点根据所述签名结果查看区块的结构是否完整或被篡改过,并确认交易是否符合背书策略,若验证到区块结构完整、区块结构未被篡改且交易符合背书策略,将新产生的授权信息区块追加到对应的提交节点所在的授权信息账本记录上,并将预设的消息广播给链上各记账节点,以使链上各记账节点进行授权信息账本的更新,并根据更新后的授权信息账本更新全域区块链授权信息账本。
作为上述方案的改进,在所述将授权信息存储于用户所在通道的区块链上之前,所述基于区块链技术的跨域单点登录访问方法还包括:节点配置、通道创建和链码部署。
作为上述方案的改进,所述节点配置具体包括:
调用第一系统配置文件,根据配置信息和节点的职责功能,分配通道锚节点、背书节点、验证节点、排序节点和记账节点;
基于节点发现机制,读取区块链网络中的启动节点的信息,对启动节点的列表进行遍历,经过握手阶段建立连接,向对等节点发送成员请求消息,以使所述对等节点反馈节点信息;
收到反馈的所述节点信息后,将所述节点信息加入到相应的节点列表中;其中,各节点的成员管理服务由API/SDK接口底层服务在许可的区块链网络上进行身份认证、身份授权和身份管理;
所述通道创建具体包括:
调用第二系统配置文件,生成创世块、通道的初始化配置、通道锚节点的配置,以使区块链网络中的业务通道通过获取背书节点发起配置交易给对应的排序节点来创建通道;
对每一通道的通道锚节点、背书节点、验证节点、排序节点和记账节点分配对应的证书;
所述链码部署具体包括:
根据业务需求编写链码;
根据不同域范围,创建业务域通道,并使通道与对应的通道锚节点进行绑定;
对链码进行链码打包、安装和部署。
为实现上述目的,本发明实施例还提供了一种基于区块链技术的跨域单点登录访问系统,包括控制器,所述控制器执行如上述所述的基于区块链技术的跨域单点登录访问方法。
与现有技术相比,本发明实施例提供的一种基于区块链技术的跨域单点登录访问方法及系统,通过响应于用户的资源事件请求,获取第一资源事件;其中,所述第一资源事件为经过用户使用对应的身份证书进行签名,且使用对应的交易证书进行加密的资源事件;根据所述第一资源事件识别到的用户所在的源通道ID,调用源通道内的源通道锚节点验证用户的访问资源是否为所述源通道的访问资源,若验证到用户的访问资源是非所述源通道的访问资源,根据识别到的目标通道ID,调用目标通道的目标通道锚节点进行跨域资源访问,实现了将各通道的通道锚节点作为中介和代理授权服务器的跨域单点登录访问,能够减少跨域访问系统瓶颈、受入侵后跨域访问系统破坏面大的情况,同时保证了域内服务和资源的访问不受整体区块链系统的影响,认证和授权效率高。除此之外,本发明实施例通过单点登录的方式减少了用户名、密码的维护成本,通过减少授权次数,提高了认证和授权的效率,并且通过引入时间戳信息,进一步保障了授权信息的安全性和可靠性,同时记录了授权信息的访问记录,可作为安全日志用于安全审计。
附图说明
图1是本发明实施例提供的一种基于区块链技术的跨域单点登录访问方法的流程图;
图2是本发明实施例提供的通道A和通道B的示例图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
值得说明的是,在本发明实施例中,域即为通道。
参见图1,图1是本发明实施例提供的一种基于区块链技术的跨域单点登录访问方法的流程图,所述基于区块链技术的跨域单点登录访问方法,包括:
S1、响应于用户的资源事件请求,获取第一资源事件;其中,所述第一资源事件为经过用户使用对应的身份证书进行签名,且使用对应的交易证书进行加密的资源事件;
具体地,所述资源事件包括源域ID(源通道ID)、目标域ID(目标通道ID)、源IP、目标IP、目标资源和所需的操作;
可以理解的是,用户使用自己的身份证书进行签名,且使用对应的交易证书进行加密的资源事件。
S2、根据所述第一资源事件识别到的用户所在的源通道ID,调用源通道内的源通道锚节点验证用户的访问资源是否为所述源通道的访问资源,若验证到用户的访问资源是非所述源通道的访问资源,根据识别到的目标通道ID,调用目标通道的目标通道锚节点进行跨域资源访问;
其中,所述跨域资源访问具体包括:
所述目标通道锚节点验证所述源通道锚节点发送来的第二资源事件的真实性和正确性,在验证通过后解析所述第二资源事件,获得解析后的第二资源事件;其中,所述第二资源事件为经过所述源通道锚节点使用对应的身份证书进行签名的资源事件;
可以理解的是,所述第二资源事件为所述源通道锚节点使用自己的身份证书进行签名的资源事件,通过解析所述第二资源事件,确定所要访问源、目标资源和所需的操作。
所述目标通道锚节点根据解析后的第二资源事件,在全域区块链授权信息账本上检索目标域区块链授权信息账本,通过对比所述目标域区块链授权信息账本与解析后的第二资源事件,判断所述目标域区块链授权信息账本的授权信息是否符合访问策略,若符合访问策略,向所述目标通道的目标资源服务器发送服务请求,以使所述目标资源服务器生成目标域Token,并将所述目标域Token返回给所述目标通道锚节点;其中,所述全域区块链授权信息账本存储有各域区块链的授权信息账本,所述服务请求为经过所述目标通道锚节点使用对应的身份证书进行签名的服务请求,所述目标域Token为带有时间戳的Token;
可以理解的是,全域区块链授权信息账本中保存了各个域区块链的授权信息账本,其是通过一定排序后生成的,具体地,各个域区块链的授权信息账本包括授权信息及访问记录;所述服务请求为经过所述目标通道锚节点使用自己的身份证书进行签名的服务请求。
可以理解的是,若不符合访问策略,目标通道锚节点向源通道锚节点反馈不成功消息。
所述目标通道锚节点将所述第二资源事件和所述目标域Token进行打包签名,执行部署在所述目标通道上的链码,并在经过验证、排序后提交到所述全域区块链授权信息账本,以使所述目标通道的各交易节点更新授权信息账本;
值得说明的是,所述目标通道锚节点在利用自己的身份证书对所述第二资源事件和所述目标域Token进行加密签名后,通过调用API/SDK接口的链码服务执行部署在目标通道的链码。
所述目标通道锚节点将所述目标域Token进行加密签名后发送给用户,以使用户通过加密签名后的目标域Token进行跨域资源访问。
值得说明的是,为了防止时间或重放攻击,采取了对目标域Token采用用户公钥加密签名再发放的方法。在本发明实施例中,用户利用目标域Token进行资源的访问,在时间戳范围内实现单点登录访问。
在本发明实施例中,利用Hyperledger区块链架构构建分布式授权信息的分布式存储即将授权信息分别建立各个域的区块链授权账本和全域区块链授权信息账本的方式、利用区块链加密功能、数字证书功能、链码机制和共识机制,保证授权信息的自动可信判决,同时保障授权信息的机密性、完整性和安全性;同时,本发明实施例采用单点登录方式能够减少用户名、密码的维护成本,通过减少授权次数,能够提高认证和授权的效率,并且通过引入时间戳信息,进一步保障了授权信息的安全性和可靠性,同时记录了授权信息的访问记录,可作为安全日志用于安全审计。
具体地,在步骤S1所述响应于用户的资源事件请求,获取第一资源事件之前,所述基于区块链技术的跨域单点登录访问方法还包括:
响应于用户的注册请求,将经过系统管理员审核通过的注册信息及注册成功信息发送给用户,以使用户根据所述注册信息进行登录;
在判断到用户根据所述注册信息成功登录时,响应于用户的申请证书请求,返回用户身份证书、交易证书和属性证书;其中,所述属性证书包括系统管理员授予用户对资源访问的授权信息。
值得说明的是,系统管理员根据用户业务需求和抵御对资源的非法访问的要求即根据决策表或库,授予用户对资源访问的授权信息;通过决策表或库决定用户是都能够访问某个域、进行某项操作、获得某项服务;授权的结果用许可权来描述,许可权的描述采用<域ID|主体|资源|权限>四元组的格式;
可以理解的是,通过调用Hyperledger的API/SDK接口响应的申请证书请求,申请成功则返回用户身份证书、交易证书和属性证书;身份证书是用户的唯一标识,代表用户的真实性和唯一性;交易证书用于在系统中进行操作(查询、提交、交易等)使用的证书,保障操作的安全性,其包含了在交易和信息传递中使用了非对称加密算法生成的公钥和私钥对;属性证书是可修改和编辑的证书,其中保存了用户的域信息、权限、拥有的资源和可操作的资源,其包含了系统管理员授予用户对资源访问的授权信息,在本发明实时例中,通过属性证书方式方便信息交换。
在本发明实施例中,除了采用身份证书来识别用户,采用交易证书来保证敏感数据的私密性之外,还建立了适用于跨域授权的属性证书,通过灵活的属性证书来高效交换授权信息,能够避免授权次数频繁和共识算法的频繁调用。
具体地,通过以下步骤将授权信息存储于每个通道的区块链上:
用户所在通道的背书节点根据接收到的经过加密并签名的授权信息查看是否具有通道操作权限,若查看到具有通道权限,对加密并签名过的授权信息进行解密,以验证签名的正确性;
可以理解的是,节点在将授权信息存储在区块链之前,先采用颁发的交易证书加密并签名该授权信息,用户将经过加密并签名的授权信息广播到所在域的背书节点。
所述背书节点通过对比哈希值查看经加密并签名过的授权信息是否正确,若正确,将签名验证通过的授权信息加上背书节点的ID并使用对应的交易证书签名后提交给对应的排序节点,并反馈成功信息给用户;
可以理解的是,若不正确即信息有误或被篡改过,则丢弃该授权信息并把错误信息反馈给用户;若正确,将授权信息经过签名后提交给对应通道的排序节点,并反馈成功信息(状态为:已提交到排序节点)给用户。
所述背书节点基于背书策略,当判断到授权信息记录达到预设的背书节点数时,将交易提案的参数作为输入,在当前状态数据库上执行模拟交易,并使交易处于挂起状态,生成交易结果,以基于所述交易结果,将签名验证通过的授权信息发送给对应的排序节点;
排序节点接收到用户广播的所述交易提案和所述交易结果,按通道分类和时间戳先后顺序对所述交易提案进行排序,并为每个通道创建包含交易的区块;其中,所述交易提案中包含背书节点的签名结果和通道标识;
所述排序节点将区块发送到所述排序节点所在通道上的所有节点,以在通过共识过程后,所有节点各自验证交易提案,并将验证过的交易提案提交到所述排序节点所在通道的提交节点;
可以理解的是,共识过程为使用PBFT等共识机制达成共识的环节。
所述提交节点根据所述签名结果查看区块的结构是否完整或被篡改过,并确认交易是否符合背书策略,若验证到区块结构完整、区块结构未被篡改且交易符合背书策略,将新产生的授权信息区块追加到对应的提交节点所在的授权信息账本记录上,并将预设的消息广播给链上各记账节点,以使链上各记账节点进行授权信息账本的更新,并根据更新后的授权信息账本更新全域区块链授权信息账本。
具体地,所述预设的消息为有新的授权信息区块追加到区块链上。
在本发明实施例中,每个信任域(通道)中都有独立的本地区块链授权信息账本,通道的隔离特性为数据的安全提供了保障,同时使得域内服务和资源的访问不受整体区块链的影响,认证和授权效率高;
同时,通过构建存储有全域授权信息的全域区块链授权信息账本、将各通道的共享通道锚节点来作为中介和代理授权服务器,能够减少跨域访问系统瓶颈、受入侵后跨域访问系统破坏面大的情况,同时使用链码功能自动判决授权策略来实施交易,减少人工干预。
具体地,在所述将授权信息存储于用户所在通道的区块链上之前,所述基于区块链技术的跨域单点登录访问方法还包括:节点配置、通道创建和链码部署。
具体地,所述节点配置具体包括:
调用第一系统配置文件,根据配置信息和节点的职责功能,分配通道锚节点、背书节点、验证节点、排序节点和记账节点;
可以理解的是,所述第一系统配置文件包括网络的拓扑结构和组织结构;所述配置信息包括IP地址;这些节点之间采用Gossip协议进行广播通信。
基于节点发现机制,读取区块链网络中的启动节点的信息,对启动节点的列表进行遍历,经过握手阶段建立连接,向对等节点发送成员请求消息,以使所述对等节点反馈节点信息;
收到反馈的所述节点信息后,将所述节点信息加入到相应的节点列表中;其中,各节点的成员管理服务由API/SDK接口底层服务在许可的区块链网络上进行身份认证、身份授权和身份管理;
可以理解的是,在通道锚节点和排序节点中运行的代码都需经过认证和授权才能进行区块链操作,成员管理服务是基于Hyperledger的MSP实现。
具体地,所述通道创建具体包括:
调用第二系统配置文件,生成创世块、通道的初始化配置、通道锚节点的配置,以使区块链网络中的业务通道通过获取背书节点发起配置交易给对应的排序节点来创建通道;
可以理解的是,第二系统配置文件包括创世纪块、成员管理服务等信息;
在本发明实施例中,利用区块链通道机制来区分信任域,以将授权信息存储于信任域中,使得每个信任域中都有独立的本地区块链授权信息账本,即将授权信息存储于每个通道的区块链上。
业务通道创建通道时,通道也会检查创世区块,包括检查区块中的配置交易的背书。如果一切正确,调用在通道上的接口来开始接收本域的授权信息账本。若通道已经存在,则参与者列表将被替换,同时排序节点自动替换订阅者并且将该交易与该通道上的其他交易一起发送给新成员,新成员将会同步完整的区块授权信息账本,其中,新成员为同一通道内注册为新节点的成员。
对每一通道的通道锚节点、背书节点、验证节点、排序节点和记账节点分配对应的证书;
在本发明实施例中,通过输入通道名称、交易名、通道描述等基本信息加载第二系统配置文件运行批处理脚本完成通道的创建;同时通过可视化方式查看通道列表;其中通道查询结果包括通道名称、通道所属的服务名、加入通道的节点等信息。
具体地,所述链码部署具体包括:
根据业务需求编写链码;
根据不同域范围,创建业务域通道,并使通道与对应的通道锚节点进行绑定;
对链码进行链码打包、安装和部署。
可以理解的是,可采用Go、Java 等语言来编写链码,链码经过编译后进行签名验证,验证通过之后才能将链码提交并运行;在本发明实施例中,链码部署指把编译后的源码安装到指定节点的过程,在部署会检查是否符合链码节点部署的策略和通道的写入策略。当完成链码打包、安装和部署后,链码即与通道关联,完成了实例化。
具体地,在步骤S2中,所述若验证到用户的访问资源是非所述源通道的访问资源,根据识别到的目标通道ID,调用目标通道的目标通道锚节点进行跨域资源访问,具体包括:
所述源通道锚节点若验证到用户的访问资源是非所述源通道的访问资源,生成第三资源事件;其中,所述第三资源事件为经过所述源通道锚节点使用对应的身份证书私钥进行签名,且使用对应的交易证书私钥进行加密后附上签名信息的资源事件;
所述源通道锚节点解析所述第三资源事件以验证用户的真实性,根据验证通过后的第三资源事件识别目标通道ID,向目标通道内的目标通道锚节点发送第三资源事件,以调用所述目标通道锚节点进行跨域资源访问;其中,所述第三资源事件为经过所述源通道锚节点使用对应的身份证书进行签名的资源事件。
具体地,所述目标资源服务器生成目标域Token,并将所述目标域Token返回给所述目标通道锚节点,具体包括:
所述目标资源服务器验证收到的所述服务请求的真实性和正确性,在验证通过后,生成目标域Token,并将所述目标域Token返回给所述目标通道锚节点。
值得说明的是,所述目标资源服务器通过调用API/SDK接口的Token服务请求生成目标域Token。
可选地,所述基于区块链技术的跨域单点登录访问方法,还包括:
所述源通道锚节点若验证到用户的访问资源是所述源通道的访问资源,进行域内资源访问;
其中,所述域内资源访问具体包括:
所述源通道锚节点根据位于所述源通道内的源域区块链授权信息账本验证用户是否具有访问所述源通道内资源的权限,若是,向用户发送源域Token,以使用户通过所述源域Token进行域内资源访问;其中,所述源域Token为带有时间戳的Token;
值得说明的是,所述源通道锚节点通过调用API/SDK接口的Token服务生成源域Token。
所述源通道锚节点将所述第一资源事件和所述源域Token进行打包签名,执行部署在所述源通道上的链码,并在经过验证、排序后提交到所述源域区块链授权信息账本,以使所述源通道各交易节点更新授权信息账本。
值得说明的是,所述源通道锚节点在利用自己的身份证书对所述第一资源事件和所述源域Token进行加密签名后,通过调用API/SDK接口的链码服务执行部署在源通道的链码。
在本发明实施例中,用户利用源域Token进行资源的访问,在时间戳范围内实现单点登录访问。
示例性,如图2所示,本发明实施例创建了通道A(源通道)和通道B(目标通道),在通道A和通道B中实施本发明实施例,具体流程如上述实施例所述,在此不再赘述。
本发明实施例提供的一种基于区块链技术的跨域单点登录访问系统,包括控制器,所述控制器执行如上述实施例的基于区块链技术的跨域单点登录访问方法。
值得说明的是,本发明实施例所述的基于区块链技术的跨域单点登录访问系统的工作过程可参考上述实施例所述的基于区块链技术的跨域单点登录访问方法的工作过程,在此不再赘述。
与现有技术相比,本发明实施例提供的一种基于区块链技术的跨域单点登录访问方法及系统,通过响应于用户的资源事件请求,获取第一资源事件;其中,所述第一资源事件为经过用户使用对应的身份证书进行签名,且使用对应的交易证书进行加密的资源事件;根据所述第一资源事件识别到的用户所在的源通道ID,调用源通道内的源通道锚节点验证用户的访问资源是否为所述源通道的访问资源,若验证到用户的访问资源是非所述源通道的访问资源,根据识别到的目标通道ID,调用目标通道的目标通道锚节点进行跨域资源访问,实现了将各通道的通道锚节点作为中介和代理授权服务器的跨域单点登录访问,能够减少跨域访问系统瓶颈、受入侵后跨域访问系统破坏面大的情况,同时保证了域内服务和资源的访问不受整体区块链系统的影响,认证和授权效率高。除此之外,本发明实施例通过单点登录的方式减少了用户名、密码的维护成本,通过减少授权次数,提高了认证和授权的效率,并且通过引入时间戳信息,进一步保障了授权信息的安全性和可靠性,同时记录了授权信息的访问记录,可作为安全日志用于安全审计。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (9)
1.一种基于区块链技术的跨域单点登录访问方法,其特征在于,包括:
响应于用户的资源事件请求,获取第一资源事件;其中,所述第一资源事件为经过用户使用对应的身份证书进行签名,且使用对应的交易证书进行加密的资源事件;
根据所述第一资源事件识别到的用户所在的源通道ID,调用源通道内的源通道锚节点验证用户的访问资源是否为所述源通道的访问资源,若验证到用户的访问资源是非所述源通道的访问资源,根据识别到的目标通道ID,调用目标通道的目标通道锚节点进行跨域资源访问;
其中,所述跨域资源访问具体包括:
所述目标通道锚节点验证所述源通道锚节点发送来的第二资源事件的真实性和正确性,在验证通过后解析所述第二资源事件,获得解析后的第二资源事件;其中,所述第二资源事件为经过所述源通道锚节点使用对应的身份证书进行签名的资源事件;
所述目标通道锚节点根据解析后的第二资源事件,在全域区块链授权信息账本上检索目标域区块链授权信息账本,通过对比所述目标域区块链授权信息账本与解析后的第二资源事件,判断所述目标域区块链授权信息账本的授权信息是否符合访问策略,若符合访问策略,向所述目标通道的目标资源服务器发送服务请求,以使所述目标资源服务器生成目标域Token,并将所述目标域Token返回给所述目标通道锚节点;其中,所述全域区块链授权信息账本存储有各域区块链的授权信息账本,所述服务请求为经过所述目标通道锚节点使用对应的身份证书进行签名的服务请求,所述目标域Token为带有时间戳的Token;
所述目标通道锚节点将所述第二资源事件和所述目标域Token进行打包签名,执行部署在所述目标通道上的链码,并在经过验证、排序后提交到所述全域区块链授权信息账本,以使所述目标通道的各交易节点更新授权信息账本;
所述目标通道锚节点将所述目标域Token进行加密签名后发送给用户,以使用户通过加密签名后的目标域Token进行跨域资源访问。
2.如权利要求1所述的基于区块链技术的跨域单点登录访问方法,其特征在于,所述若验证到用户的访问资源是非所述源通道的访问资源,根据识别到的目标通道ID,调用目标通道的目标通道锚节点进行跨域资源访问,具体包括:
所述源通道锚节点若验证到用户的访问资源是非所述源通道的访问资源,生成第三资源事件;其中,所述第三资源事件为经过所述源通道锚节点使用对应的身份证书私钥进行签名,且使用对应的交易证书私钥进行加密后附上签名信息的资源事件;
所述源通道锚节点解析所述第三资源事件以验证用户的真实性,根据验证通过后的第三资源事件识别目标通道ID,向目标通道内的目标通道锚节点发送第三资源事件,以调用所述目标通道锚节点进行跨域资源访问;其中,所述第三资源事件为经过所述源通道锚节点使用对应的身份证书进行签名的资源事件。
3.如权利要求1所述的基于区块链技术的跨域单点登录访问方法,其特征在于,所述目标资源服务器生成目标域Token,并将所述目标域Token返回给所述目标通道锚节点,具体包括:
所述目标资源服务器验证收到的所述服务请求的真实性和正确性,在验证通过后,生成目标域Token,并将所述目标域Token返回给所述目标通道锚节点。
4.如权利要求1所述的基于区块链技术的跨域单点登录访问方法,所述基于区块链技术的跨域单点登录访问方法,还包括:
所述源通道锚节点若验证到用户的访问资源是所述源通道的访问资源,进行域内资源访问;
其中,所述域内资源访问具体包括:
所述源通道锚节点根据位于所述源通道内的源域区块链授权信息账本验证用户是否具有访问所述源通道内资源的权限,若是,向用户发送源域Token,以使用户通过所述源域Token进行域内资源访问;其中,所述源域Token为带有时间戳的Token;
所述源通道锚节点将所述第一资源事件和所述源域Token进行打包签名,执行部署在所述源通道上的链码,并在经过验证、排序后提交到所述源域区块链授权信息账本,以使所述源通道的各交易节点更新授权信息账本。
5.如权利要求1所述的基于区块链技术的跨域单点登录访问方法,其特征在于,在所述响应于用户的资源事件请求,获取第一资源事件之前,所述基于区块链技术的跨域单点登录访问方法还包括:
响应于用户的注册请求,将经过系统管理员审核通过的注册信息及注册成功信息发送给用户,以使用户根据所述注册信息进行登录;
在判断到用户根据所述注册信息成功登录时,响应于用户的申请证书请求,返回用户身份证书、交易证书和属性证书;其中,所述属性证书包括系统管理员授予用户对资源访问的授权信息。
6.如权利要求1所述的基于区块链技术的跨域单点登录访问方法,其特征在于,通过以下步骤将授权信息存储于用户所在通道的区块链上:
用户所在通道的背书节点根据接收到的经过加密并签名的授权信息查看是否具有通道操作权限,若查看到具有通道权限,对加密并签名过的授权信息进行解密,以验证签名的正确性;
所述背书节点通过对比哈希值查看经加密并签名过的授权信息是否正确,若正确,将签名验证通过的授权信息加上背书节点的ID并使用对应的交易证书签名后提交给对应的排序节点,并反馈成功信息给用户;
所述背书节点基于背书策略,当判断到授权信息记录达到预设的背书节点数时,将交易提案的参数作为输入,在当前状态数据库上执行模拟交易,并使交易处于挂起状态,生成交易结果,以基于所述交易结果,将签名验证通过的授权信息发送给对应的排序节点;
排序节点接收到用户广播的所述交易提案和所述交易结果,按通道分类和时间戳先后顺序对所述交易提案进行排序,并为每个通道创建包含交易的区块;其中,所述交易提案中包含背书节点的签名结果和通道标识;
所述排序节点将区块发送到所述排序节点所在通道上的所有节点,以在通过共识过程后,验证节点验证交易提案,并将验证过的交易提案提交到所述排序节点所在通道的提交节点;
所述提交节点根据所述签名结果查看区块的结构是否完整或被篡改过,并确认交易是否符合背书策略,若验证到区块结构完整、区块结构未被篡改且交易符合背书策略,将新产生的授权信息区块追加到对应的提交节点所在的授权信息账本记录上,并将预设的消息广播给链上各记账节点,以使链上各记账节点进行授权信息账本的更新,并根据更新后的授权信息账本更新全域区块链授权信息账本。
7.如权利要求6所述的基于区块链技术的跨域单点登录访问方法,其特征在于,在所述将授权信息存储于用户所在通道的区块链上之前,所述基于区块链技术的跨域单点登录访问方法还包括:节点配置、通道创建和链码部署。
8.如权利要求7所述的基于区块链技术的跨域单点登录访问方法,其特征在于,所述节点配置具体包括:
调用第一系统配置文件,根据配置信息和节点的职责功能,分配通道锚节点、背书节点、验证节点、排序节点和记账节点;
基于节点发现机制,读取区块链网络中的启动节点的信息,对启动节点的列表进行遍历,经过握手阶段建立连接,向对等节点发送成员请求消息,以使所述对等节点反馈节点信息;
收到反馈的所述节点信息后,将所述节点信息加入到相应的节点列表中;其中,各节点的成员管理服务由API/SDK接口底层服务在许可的区块链网络上进行身份认证、身份授权和身份管理;
所述通道创建具体包括:
调用第二系统配置文件,生成创世块、通道的初始化配置、通道锚节点的配置,以使区块链网络中的业务通道通过获取背书节点发起配置交易给对应的排序节点来创建通道;
对每一通道的通道锚节点、背书节点、验证节点、排序节点和记账节点分配对应的证书;
所述链码部署具体包括:
根据业务需求编写链码;
根据不同域范围,创建业务域通道,并使通道与对应的通道锚节点进行绑定;
对链码进行链码打包、安装和部署。
9.一种基于区块链技术的跨域单点登录访问系统,其特征在于,包括控制器,所述控制器执行如权利要求1~8任一项所述的基于区块链技术的跨域单点登录访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210228270.2A CN114338242B (zh) | 2022-03-10 | 2022-03-10 | 一种基于区块链技术的跨域单点登录访问方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210228270.2A CN114338242B (zh) | 2022-03-10 | 2022-03-10 | 一种基于区块链技术的跨域单点登录访问方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338242A true CN114338242A (zh) | 2022-04-12 |
CN114338242B CN114338242B (zh) | 2022-06-14 |
Family
ID=81033775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210228270.2A Active CN114338242B (zh) | 2022-03-10 | 2022-03-10 | 一种基于区块链技术的跨域单点登录访问方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338242B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115310886A (zh) * | 2022-10-12 | 2022-11-08 | 广东省科技基础条件平台中心 | 一种基于区块链的企业孵化管理系统及方法 |
CN115426136A (zh) * | 2022-08-12 | 2022-12-02 | 中国人民解放军战略支援部队信息工程大学 | 基于区块链的跨域访问控制方法及系统 |
CN115603987A (zh) * | 2022-09-30 | 2023-01-13 | 国家电网有限公司(Cn) | 一种云边端融合的电力信息通信系统跨域零信任认证系统 |
CN116566730A (zh) * | 2023-06-15 | 2023-08-08 | 中国科学院空天信息创新研究院 | 跨域用户认证方法、装置、电子设备及介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110226168A (zh) * | 2017-09-29 | 2019-09-10 | 甲骨文国际公司 | 用于提供区块链云服务的接口的系统和方法 |
CN111464535A (zh) * | 2020-03-31 | 2020-07-28 | 中国电子科技集团公司第三十研究所 | 一种基于区块链的跨域信任传递方法 |
CN112132682A (zh) * | 2020-08-10 | 2020-12-25 | 国网浙江省电力有限公司嘉兴供电公司 | 一种基于区块链技术的电力交易方法、装置及系统 |
CN112150284A (zh) * | 2020-09-22 | 2020-12-29 | 浙江数秦科技有限公司 | 一种区块链异构链跨链交易方法 |
CN112632164A (zh) * | 2020-12-21 | 2021-04-09 | 杭州云象网络技术有限公司 | 一种实现可信权限访问的通用跨链编程接口方法 |
CN112685789A (zh) * | 2021-03-12 | 2021-04-20 | 卓尔智联(武汉)研究院有限公司 | 一种处理工程造价数据的方法、装置及联盟链系统 |
US20210281578A1 (en) * | 2020-03-03 | 2021-09-09 | International Business Machines Corporation | Cross-domain state synchronization |
CN113923044A (zh) * | 2021-10-29 | 2022-01-11 | 博雅正链(北京)科技有限公司 | 一种基于可信执行环境的跨链系统及方法 |
US20220021711A1 (en) * | 2020-07-20 | 2022-01-20 | Cgi Federal | Security Platform and Method for Efficient Access and Discovery |
CN114022285A (zh) * | 2021-11-10 | 2022-02-08 | 中国科学院计算机网络信息中心 | 一种基于联盟区块链的跨机构云计算资源计量方法及系统 |
-
2022
- 2022-03-10 CN CN202210228270.2A patent/CN114338242B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110226168A (zh) * | 2017-09-29 | 2019-09-10 | 甲骨文国际公司 | 用于提供区块链云服务的接口的系统和方法 |
US20210281578A1 (en) * | 2020-03-03 | 2021-09-09 | International Business Machines Corporation | Cross-domain state synchronization |
CN111464535A (zh) * | 2020-03-31 | 2020-07-28 | 中国电子科技集团公司第三十研究所 | 一种基于区块链的跨域信任传递方法 |
US20220021711A1 (en) * | 2020-07-20 | 2022-01-20 | Cgi Federal | Security Platform and Method for Efficient Access and Discovery |
CN112132682A (zh) * | 2020-08-10 | 2020-12-25 | 国网浙江省电力有限公司嘉兴供电公司 | 一种基于区块链技术的电力交易方法、装置及系统 |
CN112150284A (zh) * | 2020-09-22 | 2020-12-29 | 浙江数秦科技有限公司 | 一种区块链异构链跨链交易方法 |
CN112632164A (zh) * | 2020-12-21 | 2021-04-09 | 杭州云象网络技术有限公司 | 一种实现可信权限访问的通用跨链编程接口方法 |
CN112685789A (zh) * | 2021-03-12 | 2021-04-20 | 卓尔智联(武汉)研究院有限公司 | 一种处理工程造价数据的方法、装置及联盟链系统 |
CN113923044A (zh) * | 2021-10-29 | 2022-01-11 | 博雅正链(北京)科技有限公司 | 一种基于可信执行环境的跨链系统及方法 |
CN114022285A (zh) * | 2021-11-10 | 2022-02-08 | 中国科学院计算机网络信息中心 | 一种基于联盟区块链的跨机构云计算资源计量方法及系统 |
Non-Patent Citations (2)
Title |
---|
朱孝兵: ""基于区块链的跨域认证与访问控制的研究"", 《中国优秀硕士学位论文全文数据库》 * |
朱孝兵: ""基于区块链的跨域认证与访问控制的研究"", 《中国优秀硕士学位论文全文数据库》, 31 March 2019 (2019-03-31) * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115426136A (zh) * | 2022-08-12 | 2022-12-02 | 中国人民解放军战略支援部队信息工程大学 | 基于区块链的跨域访问控制方法及系统 |
CN115426136B (zh) * | 2022-08-12 | 2024-04-16 | 中国人民解放军战略支援部队信息工程大学 | 基于区块链的跨域访问控制方法及系统 |
CN115603987A (zh) * | 2022-09-30 | 2023-01-13 | 国家电网有限公司(Cn) | 一种云边端融合的电力信息通信系统跨域零信任认证系统 |
CN115310886A (zh) * | 2022-10-12 | 2022-11-08 | 广东省科技基础条件平台中心 | 一种基于区块链的企业孵化管理系统及方法 |
CN116566730A (zh) * | 2023-06-15 | 2023-08-08 | 中国科学院空天信息创新研究院 | 跨域用户认证方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114338242B (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114338242B (zh) | 一种基于区块链技术的跨域单点登录访问方法及系统 | |
US12250209B2 (en) | Network identity protection method and device, and electronic equipment and storage medium | |
CA2578186C (en) | System and method for access control | |
Panda et al. | A blockchain based decentralized authentication framework for resource constrained iot devices | |
CN110417790B (zh) | 区块链实名制排队系统及方法 | |
US20090240936A1 (en) | System and method for storing client-side certificate credentials | |
US20210160067A1 (en) | Method for bidirectional authorization of blockchain-based resource public key infrastructure | |
US20100154040A1 (en) | Method, apparatus and system for distributed delegation and verification | |
CN110069918A (zh) | 一种基于区块链技术的高效双因子跨域认证方法 | |
WO2000042730A1 (en) | Seamless integration of application programs with security key infrastructure | |
CN111818056B (zh) | 一种基于区块链的工业互联网身份认证方法 | |
US11962698B2 (en) | Token node locking with fingerprints authenticated by digital certificates | |
CN112152778A (zh) | 一种节点管理方法、装置、及电子设备 | |
CN113259350A (zh) | 一种基于密钥生成算法的密码学用户授权认证系统 | |
Riad et al. | A blockchain‐based key‐revocation access control for open banking | |
US20040083359A1 (en) | Delegation by electronic certificate | |
US8261336B2 (en) | System and method for making accessible a set of services to users | |
CN118174866B (zh) | 资源证书管理系统 | |
CN118606918A (zh) | 身份验证方法、装置、电子设备、存储介质及程序产品 | |
CN114070569B (zh) | 利用证书透明化技术控制交叉证书信任传递的方法及系统 | |
Kim et al. | Can we create a cross-domain federated identity for the industrial Internet of Things without Google? | |
US11870899B2 (en) | Secure device access recovery based on validating encrypted target password from secure recovery container in trusted recovery device | |
CN114266057B (zh) | 一种数据分发方法及系统 | |
CN112277881B (zh) | 一种身份认证方法及装置、车辆、用户设备 | |
CN119202067A (zh) | 一种数据处理方法、装置、计算机设备以及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |