在Hyperledger Composer中发布参与者身份的基于组织的限制

时间:2018-06-04 12:04:16

标签: hyperledger hyperledger-composer

假设我们有一个2组织网络(OrgA和OrgB),两个组织都有自己的“管理员”身份,可以发出身份。如果OrgA的管理员身份为参与者“ParA”发出身份,那么如何禁止OrgB为该参与者发放身份?

1 个答案:

答案 0 :(得分:2)

您可以使用ACL来限制组织管理员创建或可查看的参与者类型。最简单的方法是为每个组织指定参与者类,并按类

控制对参与者的访问

或者,它们可以位于同一参与者类中,但具有识别组织元数据,即。您坚持在同一参与者类中创建参与者的地方。然后(使用ACL)来自“另一个组织”的组织管理员将无法将他发出的身份绑定到“错误的”参与者(即他甚至不应该看到的,将其绑定到),因为ACL中的条件检查将阻止访问。

例如

rule myRule1 {
  description: "Org admin can see/access/create participants matching own org"
  participant(p): "org.acme.nwk.IssuerAdmins"  // ie only someone of this class, can 'issue identities' - 
  operation: ALL  // (CREATE, READ, UPDATE, DELETE) // do everything, for IDs in their Org ?
  resource(r): "org.acme.nwk.myParticipants"
  condition: (p.organisation == r.organisation) // can ONLY see or do anything with participants from own Org
  action: ALLOW
}

来自“不同”组织的组织管理员 - 可以发出身份,但无法看到参与者'不在他/她的组织中'(尝试映射到他自己的组织身份)。

它可能更加“简洁”并以数据为基础,但是如果要比较大量数据,那么复杂的javascript评估(检查组织模式序列的属性值等)会增加更多的开销。 你也可以采取另一种方式: