假设我们有一个2组织网络(OrgA和OrgB),两个组织都有自己的“管理员”身份,可以发出身份。如果OrgA的管理员身份为参与者“ParA”发出身份,那么如何禁止OrgB为该参与者发放身份?
答案 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评估(检查组织模式序列的属性值等)会增加更多的开销。 你也可以采取另一种方式: