LDAP - Fügen Sie einer LDAP-URL einen Filter hinzu, sodass nur Benutzer einer bestimmten Gruppe auf die App zugreifen können

LDAP - Fügen Sie einer LDAP-URL einen Filter hinzu, sodass nur Benutzer einer bestimmten Gruppe auf die App zugreifen können

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

verwandte Informationen