Wie geht LDAP mit zusätzlichen/sekundären Benutzergruppen um?

Wie geht LDAP mit zusätzlichen/sekundären Benutzergruppen um?

Ich habe ähnliche Fragen zur Konfiguration von Apache für die Authentifizierung über LDAP gesehen, aber diese grundlegende Frage verwirrt mich immer noch.

In meinem Setup habe ich Benutzer erstellt, die alle dieselbe primäre GID haben, und dann Benutzer zu verschiedenen (ergänzenden/sekundären) Gruppen hinzugefügt. Ich habe diese Benutzerkonten getestet und in den meisten Situationen funktioniert alles einwandfrei – meine Berechtigungen basierend auf der Mitgliedschaft in ergänzenden Gruppen funktionieren. Ich habe das smbldap-toolsPaket verwendet, um meine Benutzer und Gruppen zu konfigurieren, und insbesondere, smbldap-usermod -G +NEW_GROUP userum Benutzer zu den ergänzenden Gruppen hinzuzufügen.

Wenn ich das tue, getent groupsehe ich diese ergänzenden Gruppen und ihre Mitglieder. Gut.

Wenn ich mir den LDAP-Eintrag für eine der Zusatzgruppen ansehe, sehe ich wie erwartet alle Benutzer aufgelistet.

Jedoch,Wenn ich mir den LDAP-Eintrag jedes Benutzers ansehe, gidNumberwird nur eine der primären Gruppe entsprechende aufgeführt. Das heißt, die LDAP-Einträge für jeden Benutzer listen nur die primäre Gruppe auf und erwähnen keine sekundären Gruppen.

Wie handhabt Samba/LDAP (mithilfe von smbldap-tools) ergänzende/sekundäre Gruppen?

Außerdem: Wie kann ich einen Suchfilter erstellen, um Mitglieder einer zusätzlichen Gruppe zu identifizieren?

Antwort1

LDAP ist nur ein Verzeichnis mit Informationen. Wie diese Informationen gespeichert und abgerufen werden, hängt von der Anwendung ab. In diesem Fall werden POSIX-Benutzer und -Gruppen nach den Dateien /etc/passwd und /etc/group modelliert. Jeder Benutzereintrag listet die GID für seine primäre Gruppe auf. Jede Gruppe listet alle ihre Mitglieder auf (normalerweise abzüglich derjenigen, die sie als ihre primäre Gruppe auflisten).

Samba und die verschiedenen NSS-Plugins zum Speichern von Benutzer- und Gruppeninformationen in LDAP führen alle eine Suche durch, um die Gruppen zu finden, denen ein Benutzer bei der Anmeldung angehört. Das Attribut memberUid sollte indiziert werden, um die Suche nach Gruppenmitgliedschaften zu beschleunigen. Für ein bestimmtes Benutzerkonto sieht der Suchfilter etwa so aus:

(&(objectclass=posixGroup)(memberUid=$user))

Wenn Sie die Benutzer in einer bestimmten Gruppe sehen möchten, können Sie mit Folgendem suchen:

(&(objectclass=posixGroup)(cn=$group))

Dies setzt voraus, dass alle Ihre Gruppen der Objektklasse „posixGroup“ angehören.

Antwort2

Ich bin kein großer OpenLDAP-Benutzer, aber wenn dies eine Active Directory-Umgebung wäre, würde ich das Attribut "memberOf" verwenden, das in jedem Benutzerkontoobjekt vorhanden ist. In der OpenLDAP-Welt sieht es so aus, als obmemberOf-Overlaywird tun, was Sie suchen. Ich vermutediese Fragewird Ihnen sagen, was Sie wissen müssen, um damit anzufangen.

verwandte Informationen