2016-07-23 8 views
0

Wie organisieren Sie Daten in LDAP ordnungsgemäß so, dass jede Person mehrere Konten haben kann.Verwalten mehrerer Benutzerkonten in LDAP

Person < -> Konto sollte 1: n.

Konto < -> Service sollte n sein: m.

Letztere lassen sich durch Leistungen werden dargestellt als Gruppen und Zuordnen von Konten zu diesen Gruppen realisiert werden. Aber ich bin mir nicht sicher, wie ich Konten von Personen trennen soll.

Antwort

0

Sie können ein Konto eindeutige Kennung zu der Person Eintrag hinzuzufügen. Dieser eindeutige Identifizierer kann entweder der DN des Kontoeintrags oder ein anderes eindeutiges Attribut (d. H. AccountID) sein. Ich persönlich bevorzuge das spätere, so dass Sie sich keine Gedanken über die Aktualisierung des Personeneintrags machen müssen, wenn Sie sich entscheiden, Ihre Konten umzubenennen oder zu verschieben (ändern Sie den DN).

Nehmen wir an, Sie die folgenden zwei Konten haben:

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 

Sie können eine Beziehung Eins-zu-viele etablieren wie folgt:

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 

Es auf Ihrem Schema abhängt, aber haben Sie vielleicht um es anzupassen, um sicherzustellen, dass das accountID-Attribut für Personeneinträge zulässig ist.

Sie können auch die accountID Attribut Indizierung berücksichtigen wollen, so dass Sie effizient für alle Personen suchen, die zu einem Konto gehören. Zum Beispiel können alle Benutzer des Account A finden was Sie tun werden:

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