【问题标题】:Using custom affiliation-based policies in Hyperledger Fabric在 Hyperledger Fabric 中使用基于自定义关联的策略
【发布时间】:2020-09-27 01:39:53
【问题描述】:

我想要一个对等组织的 4 个中间 CA:ICA1, ICA2, ICA3 and ICA4 - 每个节点 OU 一个(对等、排序者、管理员和客户端)。

假设我将ICA1 作为cacerts 属性放在通道配置的Peer Node OU 中,那么peer 身份将在不同的ICA 下(ICA2ICA3 或@ 987654328@),是否能够满足"OrgMSP.peer"签名的策略?

  • 如果是,那么如何确保只有特定部门下的角色集才能满足OrgMSP.<role> 给出的策略?我不希望为组织中的每个部门或团队创建 MSP 定义。那么,没有它可以实现吗?
  • 如果不是,那么我是否还可以在特定 OU 的通道的节点 OU 配置中指定一组 ICA,以便我可以利用非常复杂的策略,例如 "Signature of one-of 'OrgMSP.peer'",假设在这里,cacerts 属性为peer OU 将是 ICA1 和 ICA3。这可以实现吗?

【问题讨论】:

    标签: hyperledger-fabric hyperledger-fabric-ca organizational-unit


    【解决方案1】:

    当您指定nodeOU配置时,您可以简单地提供与角色对应的OU名称(听起来像是您所做的),或者您可以指定OU名称​​和颁发证书。这可以是根 CA 或中间 CA,但在任何一种情况下,为了满足该角色,证书必须具有指定的 OU 并由指定的 CA 颁发。

    注意:每个角色/证书对都会将满足角色的证书的有效颁发者通知 MSP。因此,如果您有 CA1、CA2、ICA1 和 ICA2,您可以指定给定角色两次,一次用于 CA1,一次用于 ICA2。那么只有 CA1 或 ICA2 颁发的(直接)证书才能满足该角色。

    如果你查看sample MSP configuration,你可以看到证书可能被指定,但默认被省略。

    您可以在实际的proto documentation中看到有关如何使用此证书的更多详细信息。

    【讨论】:

    • 因此,这意味着如果我创建策略 OrgMSP.admin 并将 ICA1 作为 cacert 用于 OU 定义中的 admin 角色,那么只有 ICA1 下的 admin 身份能够执行手术对吧?假设 ICA2 下的 admin 类型身份将无法满足该策略。正确的?如果我没记错的话,cacerts 的值可以设置为只有一个 PEM 证书,对吧?
    • 如果我在这里编辑FabricNodeOUs 消息块:github.com/hyperledger/fabric-protos/blob/… 那么我也可以拥有自定义角色。正确的? Fabric 目前实际上并不支持。但是,对于 Fabric 的某些不同组件,还有其他影响吗?
    • 是的,如果您指定与特定 NodeOU 关联的 CA 证书,则该证书和 OU 组合被视为对该角色有效。请注意,您可以多次指定角色,并拥有多个颁发证书。您可以为角色选择自定义 OU 名称,但不能指定自定义角色。如果您想要任意角色,您可以基于 OU 而不是角色来构建策略。
    • 答案有点微妙。可以直接使用引用 OU 的 JSON/protobuf 表示来制定策略。但是,configtxgenpeer 等 CLI 工具使用的“策略语言”仅支持引用角色。扩展策略语言应该不会太难,并且有一个开放的工作项jira.hyperledger.org/browse/FAB-15296 但是现在,虽然可以在内部定义基于 OU 的策略,但我们没有好的方法来外部表示它.
    • 对于大多数用例,“admin”、“peer”、“client”和“orderer”的角色就足够了。如果这满足您的需求,我会使用这些。如果您确实需要基于任意 OU 的策略,您可以定义与特定发行者关联的任意 OU,并使用这些 OU 手动(在代码中)制定自定义策略。如果可以避免,我建议不要使用后者,因为它需要做更多的工作。至于这些事情是必须在引导时完成,还是可以稍后修改——一般来说,任何参数,如在引导时设置的 MSP 和策略都可以在以后更新。只是有点痛。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多