如何定义ACL规则来控制资源

时间:2017-11-06 00:33:17

标签: hyperledger-composer

文档建议ACL可以控制对资源中属性的访问:

" Simple rules are used to control access to a namespace, asset or property of an asset"

但我找不到有关如何定义ACL规则来控制资源属性的任何信息。如果有人可以建议或指出我的文件,我会表示同意。提前谢谢!

2 个答案:

答案 0 :(得分:1)

尚未实施属性级别访问控制,因此尚不支持。

答案 1 :(得分:0)

以下是我对此的理解,如果您进一步阅读ACL Documentation,您可以看到当参与者尝试访问资产时,规则可以检查资产的属性以确定是否该参与者是该资产的所有者。

引用文件:

  

以下规则规定org.example.SampleParticipant类型的任何实例都可以对org.example.SampleAsset的所有实例执行所有操作。如果参与者是资产的所有者。

rule SampleConditionalRule {
  description: "Description of the ACL rule"
  participant(m): "org.example.SampleParticipant"
  operation: ALL
  resource(v): "org.example.SampleAsset"
  condition: (v.owner.getIdentifier() == m.getIdentifier())
  action: ALLOW
}
  

以下规则规定,org.example.SampleParticipant类型的任何实例都可以对org.example.SampleAsset的所有实例执行所有操作。如果参与者是资产的所有者,并且参与者提交了组织的交易。 example.SampleTransaction类型执行操作。

rule SampleConditionalRuleWithTransaction {
  description: "Description of the ACL rule"
  participant(m): "org.example.SampleParticipant"
  operation: READ, CREATE, UPDATE
  resource(v): "org.example.SampleAsset"
  transaction(tx): "org.example.SampleTransaction"
  condition: (v.owner.getIdentifier() == m.getIdentifier())
  action: ALLOW
}