LDAP模式devise

我对LDAP非常陌生,试图根据特定的需求devise一个模式。

我有一个支持组织。

有三个级别P1 – 最低权限P2 – 中级P3 – 最高权限。

我已经把支援小组分成了小组。

TeamApipe理客户A1,A2,A3等TeamBpipe理客户B1,B2,B3等

客户A1有他的内部用户。 每个客户的内部用户有两个级别的权限P1或P2。 他们的P1或P2权限只适用于与自己相关的东西。 即来自客户A1的P2将不具有对客户A2的任何许可。

TeamA人(pipe理客户A1,A2等)具有P1或P2权限。 TeamA拥有P2权限的人员将拥有由TeamApipe理的每个客户的P2权限。 即一个TeamA P2将有P2的A1,A2,A3(全部)。

然后有一个超级支持团队。 这里的人并不是特定于顾客群。 来自SuperSupport团队的P2将拥有客户A1,客户B1的所有权限。 P3将是类似的。

我有一个架构devise

  #根节点
 dn:dc = myorg,dc = com
 objectclass:组织
 objectclass:dcObject
 o:myorg.com
 dc:myorg

 #组
 dn:ou =组,dc = myorg,dc = com
 objectclass:organizationalUnit
 ou:群组

 dn:cn = P1,ou =组,dc = myorg,dc = com
 objectclass:organizationalRole
 cn:P1
描述:最低级别

 dn:cn = P2,ou =组,dc = myorg,dc = com
 objectclass:organizationalRole
 cn:P2
描述:更高级别

 dn:cn = P3,ou =组,dc = myorg,dc = com
 objectclass:organizationalRole
 cn:P3
描述:最高级别的支持

 #队
 dn:ou = Team,dc = myorg,dc = com
 objectclass:organizationalUnit
 ou:伙伴
描述:团队

 #团队A
 dn:ou = teamB,ou = Team,dc = myorg,dc = com
 objectclass:organizationalUnit
 ou:teamA
描述:团队A

 #B队
 dn:ou = teamb,ou = Team,dc = myorg,dc = com
 objectclass:organizationalUnit
 ou:teamB
描述:B队

 # 顾客

 #A队的客户A1
 dn:ou = custa1,ou = teama,ou =团队dc = myorg,dc = com
 objectclass:organizationalUnit
 ou:custa1
描述:一些组织

 #B队的客户B2
 dn:ou = custb2,ou = teamb,ou = Team,dc = myorg,dc = com
 objectclass:organizationalUnit
 ou:custb2
描述:一些其他组织 

这是正确的吗?

我越来越有点卡住了 – 我怎么把来自不同团队,不同客户,超级支持等的人放在一起,这样在使用uname / passwd绑定到ldap服务器之后,很容易就能轻松搞定 – 什么权限该特定用户具有。

有人可以帮助或指向我的示例架构类似的要求?

我的学生被迫指出,你在这里创造的不是一个架构,而是一个布局。 模式定义对象上的对象types和属性,布局定义对象的位置以及将哪些值分配给属性。

那样的话…

当你添加人物时,你会将他们与你正在定义的组织angular色联系起来,而人们可以属于他们中的许多angular色。 事实上,他们的对象实际所在的地方并不赋予任何权利; 这是把OR与他们联系起来的行为。 当他们绑定时,他们将获得他们所属的ORs的权利,而不pipe他们的对象在哪里。

为了回答你想知道他们得到什么权利的问题,他们应该列在两个地方:

  • 在他们的用户对象上
  • 在组织angular色对象上

您将形成LDAP查询以从用户对象中提取orMember属性,或者使用用户的成员查询所有organizationalRole对象。 用户属性的确切名称取决于您使用的实际LDAP模式。