Hyperledger Composer 中参与者身份发布的基于组织的限制
Organization based restrictions for participant identity issuing in Hyperledger Composer
假设我们有一个 2 组织网络(OrgA 和 OrgB),两个组织都有自己的 "Admin" 可以发布身份的身份。如果 OrgA 的管理员身份为参与者颁发身份 "ParA",如何禁止 OrgB 为该参与者颁发身份?
您可以使用 ACL 来限制任何一个组织的管理员创建或可见的参与者类型。最简单的方法是为每个组织指定参与者 classes 并通过 class
控制对参与者的访问
或者,他们可以在同一个参与者中 class 但具有标识组织元数据,即。你坚持认为参与者是在同一个参与者中创建的 class。然后(使用 ACL)来自 'another org' 的组织管理员将无法将他发布的身份绑定到 'wrong' 参与者(即他甚至不应该看到的身份,将其绑定到), 因为 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
}
来自 'different' 组织的组织管理员 - 可以发布身份,但无法看到参与者 'not in his/her Org'(尝试映射到他自己组织的身份)。
它可能更多 'succinct' 并以数据为基础,但是进行复杂的 javascript 评估(检查组织模式序列的属性值等)会增加更多开销正在比较数据。
你也可以做另一种方式:
假设我们有一个 2 组织网络(OrgA 和 OrgB),两个组织都有自己的 "Admin" 可以发布身份的身份。如果 OrgA 的管理员身份为参与者颁发身份 "ParA",如何禁止 OrgB 为该参与者颁发身份?
您可以使用 ACL 来限制任何一个组织的管理员创建或可见的参与者类型。最简单的方法是为每个组织指定参与者 classes 并通过 class
控制对参与者的访问或者,他们可以在同一个参与者中 class 但具有标识组织元数据,即。你坚持认为参与者是在同一个参与者中创建的 class。然后(使用 ACL)来自 'another org' 的组织管理员将无法将他发布的身份绑定到 'wrong' 参与者(即他甚至不应该看到的身份,将其绑定到), 因为 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
}
来自 'different' 组织的组织管理员 - 可以发布身份,但无法看到参与者 'not in his/her Org'(尝试映射到他自己组织的身份)。
它可能更多 'succinct' 并以数据为基础,但是进行复杂的 javascript 评估(检查组织模式序列的属性值等)会增加更多开销正在比较数据。 你也可以做另一种方式: