hyperledger - 在 Hyperledger Composer 中发布参与者身份的基于组织的限制
问题描述
假设我们有 2 个组织网络(OrgA 和 OrgB),两个组织都有自己的“管理员”身份,可以发布身份。如果 OrgA 的管理员身份为参与者“ParA”颁发身份,如何禁止 OrgB 为该参与者颁发身份?
解决方案
您可以使用 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 评估(检查 Org 模式序列的属性值等)会增加更多开销。你也可以用另一种方式:
推荐阅读
- clojure - Clojure 打嗝消失的关键名称空间
- python - 是否可以在 PyQt/PySide2 中为 QLineEdit 的文本制作“破碎”边框
- android - 检查哪个图像附加到 imageView
- html - 基于 rem 的 css 响应式流体 html 字体大小
- amazon-web-services - 亚马逊预测:[错误]:项目数 (n) 的观测值 (n) 太少,每个项目平均 1.000 个观测值
- java - 安道尔工作室的媒体播放器
- database - Flutter:如何为我们要上传到 Firebase 数据库的每个元素设置数据类型?
- firebase - Flutter 构建错误。(与 pub-cache 相关)
- php - Laravel 资源 - 它是如何工作的?
- javascript - App Script Google Classroom API 通过批处理(循环)将教师添加到课程中