hyperledger-fabric - ACL:“ImplicitMeta”规则是如何解释的?
问题描述
在 Hyperledger Fabric 中访问控制的官方文档中: https ://hyperledger-fabric.readthedocs.io/en/latest/access_control.html
ImplicitMeta 策略聚合策略的结果
当与其他规则结合使用时,ImplicitMeta 规则究竟是如何“从理论上解释”的?
例子:
Policies:
AndPolicy:
Type:Signature
Rule: "AND('Org1.Peer','Org2.Peer','Org3.Peer')"
OrPolicy:
Type:Signature
Rule: "OR('Org1.Peer','Org2.Peer','Org3.Peer')"
MetaPolicy:
Type:ImplicitMeta
Rule: "ALL OrPolicy"
如果我们将 MetaPolicy 的规则设置为“ANY AndPolicy”,它是否等同于 OrPolicy?
如果我们设置“ALL OrPolicy”,是不是就相当于AndPolicy?
ImplicitMeta
rule的语法<ALL|ANY|MAJORITY> <sub_policy>
表明 sub_policy 是一组元素,而Signature
rule 语法 likeA and B and C
可以表示条件表达式,而不是集合。因此,这两个规则组合的确切含义对我来说似乎不清楚。
解决方案
我觉得我找到了答案,虽然不完整。欢迎任何更正,补充。
如果我们将 MetaPolicy 的规则设置为“ANY AndPolicy”,它是否等同于 OrPolicy?如果我们设置“ALL OrPolicy”,是不是就相当于AndPolicy?
最简洁的答案是不。
Hyperledger Fabric页面中的策略(由于某种未知原因未从任何地方链接)给了我们一些建议。
更冗长的解释:
# The lines below are just based on my conceptual understanding,
# therefore they may have errors in details.
Channel:
Groups:
Application:
Policies:
M: #-----------(1)
Type: ImplicitMeta
Rule: "ALL P"
Groups:
GroupA:
Policies:
P: #-----------(2)
Type: Signature
Rule: "OR('SampleOrg.admin')"
GroupB:
Policies:
P: #-----------(3)
Type: Signature
Rule: "AND('SampleOrg.member')"
在上面的配置中,
- (1) 可以表示为
/Channel/Application/M
。 - (2) 可以表示为
/Channel/Application/GroupA/P
。 - (3) 可以表示为
/Channel/Application/GroupB/P
。 - 让我们看看(1)是什么意思。
- 它的规则被指定为
ALL P
,它应该被解释为必须满足 M 的所有子策略。. - 但什么是子策略?这是这个答案的关键:根据
policies.html
,策略隐式选择它所在组的子组。在这种情况下,位于 中,因此位于该路径下的 (2) 和 (3) 都是子策略。ImplicitMeta
M
/Channel/Application
- 规则指定
ImplicitMeta
必须满足所有/任何/大多数规则。在上述情况下,M
只有在至少一名管理员和所有成员签名的情况下才会满意。
- 它的规则被指定为
推荐阅读
- python - 如何标记熊猫数据框中的重复行
- php - Wordpress -> 嵌套帖子循环不返回“posts_per_page”参数中指定的帖子数
- python - 从python增加plantUML中的图形大小?
- java - 为什么使用 quarkus-panache、hibernate 和 jsonb 进行反序列化失败?
- html - 如何在 .css 文件中选择 html 标签。?
- sap-cloud-sdk - 在不传递任何语言的情况下调用odata服务时如何查找当前会话的语言
- mysql - 不正确的字符串值:'\x92t get...' for column 'some_text' 在一个环境而不是另一个环境中出错
- bash - 如何在 bash 中记录所有终端输入,包括交互式输入?
- java - 如何为特定的本地 URL 编写 hapi 代码
- css - 如何使用 CSS 在空格后应用换行符?