基于属性的访问控制与策略之间的混合结构差异

问题描述 投票:1回答:1

我正在阅读HLF文件,在文件中他们有频道和链式代码的政策。 HLF还具有访问控制列表和基于属性的访问控制。主要区别是什么,何时将在何处使用基于属性的访问控制,以及如何实现它。

hyperledger-fabric hyperledger abac hyperledger-fabric-ca
1个回答
0
投票

超级账本结构是基于许可的区块链。因此,要获得权限结构,应在网络配置级别(策略)和链码级别(ABAC或私有数据)提供对权限的支持。首先,我将解释网络配置级别:

Form Docs:policy is a set of rules that define the structure for how decisions are made and 
specific outcomes are reached. To that end, policies typically describe a who and 
a what, such as the access or rights that an individual has over an asset. We can 
see that policies are used throughout our daily lives to protect assets of value 
to us, from car rentals, health, our homes, and many more.

策略在confgtx.yaml文件中定义如下:

 Policies:
        Readers:
            Type: Signature
            Rule: "OR('Org1MSP.admin', 'Org1MSP.peer', 'Org1MSP.client')"
        Writers:
            Type: Signature
            Rule: "OR('Org1MSP.admin', 'Org1MSP.client')"
        Admins:
            Type: Signature
            Rule: "OR('Org1MSP.admin')"

组织,渠道,订购者和应用程序组件具有自己的策略。

更多敌人:https://hyperledger-fabric.readthedocs.io/en/master/policies/policies.html

您还可以从结构样本中检出第一网络,在该样本中,他们已经在configtx.yaml文件中使用了策略,因此您可以轻松理解它。

基于属性的访问控制(ABAC):如果开发人员希望在链码级别实施访问限制,则使用ABAC。例如,如果某些资产仅允许这些用户使用,则他们具有属性代理。那么您可以使用ABAC。ABAC与fabric-ca非常相关,因为属性是在ca证书中定义的。 huperledger Fabric运行时从用户请求提议中提取属性,并将其提供给chaincode,然后chaincode对其进行验证。要使用它,您必须在您的链代码文件中导入CID(Client Identity)库。(注意:如果找不到CID库,请下载文件,将供应商目录保留在链代码目录中)

链接到CID文档:https://godoc.org/github.com/hyperledger/fabric/core/chaincode/lib/cid

链接到github页面:https://github.com/hyperledger/fabric/blob/release-1.1/core/chaincode/lib/cid/README.md

© www.soinside.com 2019 - 2024. All rights reserved.