Wir ermöglichen einer Anwendung die Verwendung von LDAP.
In der Konfiguration der Anwendung müssen wir eine URL für die Verbindung mit LDAP angeben. Derzeit stellen wir die folgende URL bereit ...
ldap://10.2.0.5:389/dc=domain,dc=abc,dc=de?uid
FRAGE:Wir müssen der obigen URL einen Filter hinzufügen, damit nur Benutzer gefunden werden, die zur Gruppe „accessgroup“ gehören, um den Anwendungszugriff auf nur Benutzer zu beschränken, die zu dieser Gruppe gehören.
Das ist so etwas Ähnliches wie das hier ...
curl "ldap://10.2.0.5:389/dc=domain,dc=abc,dc=de?uid?sub?(&(memberof=cn=accessgroup,ou=groups,dc=domain,dc=abc,dc=de)(uid=%s))"
Wir haben Hunderte von Einstellungen ausprobiert und nichts funktioniert ... =|
GRUPPE
cn:
accessgroup
gidNumber:
1004
memberUid:
usera
userb
userc
userd
usere
userf
userg
userh
useri
objectClass:
top
posixGroup
BENUTZER
cn:
User Letter A
gecos:
User Letter A
gender:
M
gidNumber:
544
givenName:
User
gotoLastSystemLogin:
01.01.1970 00:00:00
homeDirectory:
/home/usera
loginShell:
/bin/bash
mail:
[email protected]
objectClass:
top
person
organizationalPerson
inetOrgPerson
gosaAccount
posixAccount
shadowAccount
sambaSamAccount
[...]
uid:
usera
uidNumber:
1004
[...]
Danke! =D
Antwort1
Wie wird das memberOf-Attribut Ihres LDAP-Servers erstellt? Haben Sie überprüft, ob Ihre Benutzer tatsächlich über memberOf-Attribute verfügen?
In OpenLDAP beispielsweise wird memberOf nur aufgefüllt, wenn Sie das MemberOf-Overlay verwenden oder sie mit dynamischen Listen verwalten.
Antwort2
SITUATION:
Das Problem ist, dass wir versuchen, mithilfe von POSIX-Gruppen zu filtern, und dafür gibt es kein spezielles Overlay. Was es gibt, ist ein etwas komplexer und mühsamer Workaround, der hier zu sehen istGENERIEREN EINES MEMBEROF-ATTRIBUTS FÜR POSIXGRUPPEN.
LÖSUNG:
Um dieses Problem zu lösen, haben wir eine einfache Lösung implementiert, die hier zu sehen ist …
psx-grp-flt – PosixGroup-Mitgliedschaften des Benutzers gegenüber pgMemberOf (memberOf)
... was im Wesentlichen wie folgt ist ...
Ein einfaches Python 2.7-Skript, das die PosixGroup-Zuordnungen (POSIX Group) jedes Benutzers in seinem pgMemberOf-Attribut (memberOf) speichert. Der Zweck besteht darin, Suchfilter wie unten zu aktivieren ...
MODELL
ldapsearch -x -H 'ldap://127.0.0.1:389' -b 'ou=Personen,dc=Domäne,dc=abc,dc=de'
-D 'cn=Administrator,dc=Domäne,dc=abc,dc=de'
-w 'meingeheimerWert'
'(&(pgMemberOf=cn=bestimmteGruppe,ou=Gruppen,dc=Domäne,dc=abc,dc=de)(uid=bestimmteUID))'BEISPIEL
ldapsearch -x -H '<OPENLDAP_URI>' -b '<PERSONEN_OU>,<BASE_DN>'
-D '<ADM_BENUTZER_DN>'
-w '<ADM_BENUTZER_PASSWORT>'
'(&(pgMemberOf=cn=<PSX_GROUP_CN>,<GROUPS_OU>,<BASE_DN)(uid=<PERSONEN_UID>))'Dieses Skript ist nützlich, wenn wir bereits OpenLDAP installiert haben und Filter für bereits vorhandene POSIX-Gruppen auf sehr einfache Weise und ohne Erstellung neuer Gruppentypen verfügbar machen möchten. Auch nützlich, wenn keine Overlays installiert werden können oder dieser Vorgang zu mühsam oder riskant ist.
Danke! =D