0
在LDAP中組織數據的正確方法是,每個人都可以擁有多個帳戶。在LDAP中管理每個人的多個帳戶
人< - >帳戶應該是1:n。
賬號< - >服務應該是n:m。
後者可以通過將服務表示爲組並將帳戶分配給這些組來實現。但我不確定我應該如何將個人帳戶分開。
在LDAP中組織數據的正確方法是,每個人都可以擁有多個帳戶。在LDAP中管理每個人的多個帳戶
人< - >帳戶應該是1:n。
賬號< - >服務應該是n:m。
後者可以通過將服務表示爲組並將帳戶分配給這些組來實現。但我不確定我應該如何將個人帳戶分開。
您可以爲個人條目添加一個帳戶唯一標識符。此唯一標識符可以是帳戶條目的DN或某個其他唯一屬性(即帳戶ID)。我個人更喜歡後者,這樣如果您決定重命名或重新定位(更改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
這取決於你的模式,但你可能有自定義它以確保account條件屬性被允許用於人員條目。
您可能還想考慮索引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)」