我对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他们的对象在哪里。
为了回答你想知道他们得到什么权利的问题,他们应该列在两个地方:
您将形成LDAP查询以从用户对象中提取orMember属性,或者使用用户的成员查询所有organizationalRole对象。 用户属性的确切名称取决于您使用的实际LDAP模式。