在LDAP中管理每个人的多个帐户

时间:2016-07-23 20:59:39

标签: ldap schema

在LDAP中组织数据的正确方法是什么,这样每个人都可以拥有多个帐户。

person< - >帐户应为1:n。

帐户< - >服务应为n:m。

后者可以通过将服务表示为组并将帐户分配给这些组来实现。但我不确定如何将账户与人分开。

1 个答案:

答案 0 :(得分:0)

您可以为人员条目添加帐户唯一标识符。该唯一标识符可以是帐户条目的DN,或者某个其他唯一属性(即accountID)。我个人更喜欢后者,因此如果您决定重命名或重新定位(更改DN)您的帐户,则无需担心更新人员条目。

假设您有以下两个帐户:

dn: accoutnID=accountA,ou=Accounts,dc=example,dc=com
objectClass: top
objectClass: account
accoutnID: accountA
desc: Sample Account A

dn: accoutnID=accountB,ou=Accounts,dc=example,dc=com
objectClass: top
objectClass: account
accoutnID: accountB
desc: Sample Account B

您可以按如下方式建立一对多关系:

dn: uid=bjensen,ou=people,dc=example,dc=com
objectClass: top
objectClass: customPerson
uid: bjensen
cn: Barbara Jensen
sn: Jensen
userPassword: XXXXXXX
accountID: accountA
accountID: accountB

这取决于您的架构,但您可能必须对其进行自定义以确保人员条目允许使用accountID属性。

您可能还需要考虑为accountID属性编制索引,以便您可以有效地搜索属于某个帐户的所有人员。例如,要查找帐户A的所有用户,您需要执行以下操作:

ldapsearch --port 1389 --hostname localhost --bindDN “cn=directory manager” \
--password password123 --baseDN “ou=people,dc=example,dc=com” \
--scope ONE “(&(objectclass=device)(accountID=accountA)”