2016-07-23 53 views
0

在LDAP中組織數據的正確方法是,每個人都可以擁有多個帳戶。在LDAP中管理每個人的多個帳戶

人< - >帳戶應該是1:n。

賬號< - >服務應該是n:m。

後者可以通過將服務表示爲組並將帳戶分配給這些組來實現。但我不確定我應該如何將個人帳戶分開。

回答

0

您可以爲個人條目添加一個帳戶唯一標識符。此唯一標識符可以是帳戶條目的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)」