LDAP布局问题

我对LDAP很陌生,只是想学习。 我在debian上使用openldap

有人可以澄清这一点 – 或者指向我的一些链接,将澄清这些基本概念?

假设我有以下情况我想在ldap中表示

我正在经营一家公司。 该公司销售安装在客户现场的服务器。 该公司直接销售一些服务器,有些则通过经销商销售。 公司有一个中央pipe理工具,可以pipe理所有的客户服务器。 当有人login到服务器时,我想拥有不同的访问权限。

有三个级别的权限P1,P2和P3。

有公司员工,经销商员工以及客户员工的login信息。

每位员工的访问权限由其员工决定 – 我的员工将可以访问所有服务器 – 分销商的员工只能访问经销商销售的服务器。 – 客户的员工只能访问属于客户的服务器。

即使在所有这些员工中,他们拥有的访问级别取决于他们是否拥有P1,P2或P3权限。

即我的拥有P3权限的员工可以为所有服务器执行所有操作。 具有P1访问权限的我的员工可以在所有服务器上执行有限的操作带有P1访问权限的经销商员工可以在通过该经销商等销售的所有服务器上的所有服务器上执行有限操作。

这是我开始与dn:dc = mycompany,dc = com objectclass:组织objectclass:dcObject o:mycompany.net dc:mycompany

# Perms # dn: ou=perms, dc=mycompany,dc=com objectclass: organizationalUnit dn: cn=p1, ou=perms, dc=mycompany,dc=com objectclass: organizationalRole cn: p1 dn: cn=p2, ou=perms,dc=mycompany,dc=com objectclass: organizationalRole cn: p2 # Reseller # dn: ou=resellers, dc=mycompany,dc=com objectclass: organizationalUnit dn: cn=r1, ou=resellers, dc=mycompany,dc=com objectclass: organizationalUnit member: uid=xyz, ou=unames, dc=mycompany,dc=com dn: cn=r2, ou=resellers, dc=mycompany,dc=com objectclass: organizationalUnit member: uid=abc, ou=unames, dc=mycompany,dc=com # Customers # dn: ou=customers, dc=mycompany,dc=com objectclass: organizationalUnit dn: cn=c1, ou=customers, dc=mycompany,dc=com objectclass: organizationalUnit member: uid=mno, ou=logins, dc=mycompany,dc=com member: uid=pqr, ou=logins, dc=mycompany,dc=com dn: cn=c2, ou=customers, dc=mycompany,dc=com objectclass: organizationalUnit member: uid=mno2, ou=logins, dc=mycompany,dc=com // unames dn: ou=unames, dc=mycompany,dc=com objectclass: organizationalUnit ou: logins dn: uid=abc, ou=unames, dc=mycompany,dc=com objectclass: inetOrgPerson cn: a sn: bc employeeType: cn=p2, ou=roles,dc=mycompany,dc=com dn: uid=pqr, ou=logins, dc=mycompany,dc=com objectclass: inetOrgPerson cn: p sn: qr employeeType: cn=p1, ou=roles, dc=mycompany,dc=com 

不知道这是否正确。 但即使这是正确的,我也越来越困惑

我如何拥有服务器? 假设我创build一个ou = servers,dc = mycompany,dc = com然后我为每个服务器cn = srv1,ou = servers,dc = mycompany,dc = com等

如何查看哪个服务器属于哪个客户。 我添加一个成员:在客户内部吗? 在这种情况下,客户将有一些员工是一些员工,一些是服务器成员。 这可以吗?

还是有更好的方法来做到这一点?

我如何代表直接客户?

我是否应该创build一个名为direct的经销商,并将这些经销商放在这些经销商中,然后使用代码逻辑将其视为特殊客户?

你可能需要一棵树:

 -  com  -  mycompany  - (东西)
                   - 经销商N  - (东西)
                               - 公司 - (东西 
                   - 公司N  - (东西) 

东西将包括服务器,用户和其他任何你跟踪的树。

您需要根据login用户的DC设置ACL以进行工作。 让他们访问他们的DC和波纹pipe的东西。

这将给你三个DC级别安排如下:

  • dc=mycomppany,dc=com
  • dc=resellerN,dc=mycomppany,dc=com
  • dc=companyM,dc=resellerN,dc=mycomppany,dc=com
  • dc=companyN,dc=mycomppany,dc=com

您将需要为额外的级别构build和testing适当的正则expression式ACL。 (我会得到你的组织的ACL,并且从那里开始工作,我发现Zytrax文档有很多帮助。