2016-06-20 9 views
0

Ist ihre Standardmethode zum Festlegen von Benutzerrollen und Berechtigungen.LDAP beste Möglichkeit, um Benutzern Rollen zuzuweisen

Option 1: Gruppe erstellen und Mitglieder darin zuweisen.

Meine Leute dn ist wie folgt.

DN: uid=55e44a75e4b0f16711714165,ou=people,dc=cofinding,dc=com 

Ich habe Gruppen für Rollen erstellt. und weisen Mitglieder in diesem

DN: cn=ADMIN,ou=roles,dc=cofinding,dc=com 

Und Mitglieder hier hinzugefügt, die Rolle ADMIN hat. Nahezu 50K Mitglieder wurden in ADMIn-Rolle hinzugefügt.

Option 2: Benutzerdefinierte Wertrolle in Personen z. Ich habe dn als user_role

DN: uid=55e44a75e4b0f16711714165,ou=people,dc=cofinding,dc=com 

Bei Menschen können wir user_role = ADMIN, MASTER_ADMIN

Ist ihr eine andere Option oder Standardpraxis hinzuzufügen. Da Rollen bei jedem Authentifizierungsprozess sehr wichtig sind.

Antwort

0

Zunächst einmal: Rollen haben nichts mit Authentifizierung zu tun, sie werden in der Autorisierung Prozess verwendet. Wenn authentifiziert, überprüft das System, wer der Benutzer auf einigen Anmeldeinformationen basiert; Sobald dies festgelegt wurde, werden die Rollen im Prozess authorization konsultiert, um festzustellen, ob dem Benutzer Zugriff auf eine bestimmte Ressource gewährt werden soll.

Beantwortung Ihrer Frage zu Rollen: Beide Möglichkeiten würden funktionieren. Der erste Ansatz ist wahrscheinlich der gebräuchlichste (und entspricht am ehesten den normalerweise in LDAP strukturierten Strukturen. Sehen Sie sich die Objektklassen groupOfNames und groupOfUniqueNames zur Repräsentation Ihrer Rolle an). Je nach Anwendungsfall würde ich argumentieren, dass Letzteres in vielen Fällen wahrscheinlich praktischer ist, aber Sie müssen berücksichtigen, dass es nicht ganz der Standard-LDAP-Weg ist, Dinge zu tun.

0

Es gibt eine andere Option, die eine Art Hybrid zwischen den Optionen # 1 und # 2 ist. Anstatt statische Gruppen (Option 1) der Verwendung kann man die sogenannten dynamischen Gruppen oder Gruppen von URLs verwenden:

dn: cn=ADMIN,ou=roles,dc=cofinding,dc=com 
objectClass: top 
objectClass: groupOfURLs 
cn: ADMIN 
memberURL: ldap:///ou=people,dc=cofinding,dc=com??sub?user_role=ADMIN 

Die memberURL ist ein Filter, der auf einem bestimmten Attribut basiert, welche Benutzer gehören zu der Gruppe bestimmt, Wert und ein Basis-DN. Im obigen Beispiel wird jeder Benutzer unter ou=people,dc=cofinding,dc=com mit dem Attribut user_role=ADMIN automatisch zur ADMIN-Gruppe hinzugefügt. Hier ist ein Beispiel Admin-Benutzer:

dn: uid=55e44a75e4b0f16711714165,ou=people,dc=cofinding,dc=com 
objectClass: top 
objectClass: person 
objectClass: organizationalPerson 
objectClass: inetOrgPerson 
cn: John Doe 
sn: Doe 
uid: 55e44a75e4b0f16711714165 
user_role: ADMIN 

Mit diesem Ansatz das Beste aus beiden Optionen zu erhalten (# 1 und # 2):

  1. Ihre Gruppeneinträge nicht in der Größe wachsen.
  2. können Sie die Gruppe abfragen, um die Liste der Mitglieder zu erhalten:

    (memberOf=cn=ADMIN,ou=roles,dc=cofinding,dc=com)

:

$ ldapsearch -p 1389 -D "cn=directory manager" -w password -b "cn=ADMIN,ou=roles,dc=cofinding,dc=com" "(objectClass=groupOfURLs)" 
dn: cn=ADMIN,ou=roles,dc=cofinding,dc=com 
cn: ADMIN 
memberURL: ldap:///ou=people,dc=cofinding,dc=com??sub?user_role=ADMIN 
member: uid=55e44a75e4b0f16711714165,ou=people,dc=cofinding,dc=com 
  • Sie das memberOf virtuelle Attribut in Ihrem Suchfilter verwenden können

  • Verwandte Themen