LDAP - automatische Rechtezuweisung
-
Hallo wieder,
ich starte mal ein neues Thema, damit das alte http://www.i-doit.org/forum/index.php/topic,838.30.html nicht noch unübersichtlicher wird.
Ich versuche mich wieder an der LDAP-Anbindung. Dazu habe ich noch einmal die Doku aufmerksam gelesen. Der Kontakt zum Server funktioniert, wie ich in der Weboberfläche testen kann. Will ich mich nun als ein LDAP-Benutzer anmelden, kommt "You need at least reading rights …".
1. Schritt: ich weise automatisch jedem Benutzer, der sich anmelden will, die Gruppe 15 (Admin) zu, wie es in http://doc.i-doit.org/wiki/LDAP -> feste Zuweisung beschrieben ist. Nach erneutem Anmeldeversuch kommt wieder "You need at least reading rights ...".2. Schritt: ich entferne das wieder und setze die automatische Zuweisung, wie in http://doc.i-doit.org/wiki/LDAP -> automatische Zuweisung beschrieben. Dann lege ich im LDAP beim Testbenutzer als zusätzliches Attribut die OU mit dem Inhalt "Admin" an, so wie es in Kontakt -> intern -> Gruppen -> Admin -> LDAP-Gruppe (Mapping) eingetragen ist. Eintrag im LDAP-Browser gespeichert, Apache, auf dem i-doit läuft, neu gestartet, erneuter Anmeldeversuch (einer, aber im Log unten sieht man die doppelte Abfrage), wieder "You need at least reading rights ...".
Im ldap_debug.txt steht dann:2009-12-14 15:37:41 ldap: Found 1 configured LDAP Servers. Iterating.. 2009-12-14 15:37:41 ldap: 1. 2009-12-14 15:37:41 ldap: Creating new ldap-library connection to: ldapserver:389, user: CN=ldapserver,OU=hosts,DC=domain,DC=com 2009-12-14 15:37:41 ldap: Connected to ldapserver 2009-12-14 15:37:41 ldap: Trying to auth with DN: cn=Vorname Nachname,ou=persons,dc=domain,dc=com 2009-12-14 15:37:41 ldap: cn=Vorname Nachname,ou=persons,dc=domain,dc=com / vorname.nachname authenticated. 2009-12-14 15:37:41 ldap: Getting user using filter: (&(objectClass=inetOrgPerson)(uid=vorname.nachname)) in search-path: OU=persons,DC=domain,DC=com 2009-12-14 15:37:41 ldap: Getting groups of cn=Vorname Nachname,ou=persons,dc=domain,dc=com 2009-12-14 15:37:41 ldap: Servertype: C__LDAP__OPENLDAP 2009-12-14 15:37:41 ldap: Attention: OpenLDAP connections are currently experimental! 2009-12-14 15:37:41 ldap: search() OU=persons,DC=domain,DC=com (Filter: (gidNumber=vorname.nachname)): 0 2009-12-14 15:37:41 ldap: Syncing groups.. 2009-12-14 15:37:41 ldap: Found 1 configured LDAP Servers. Iterating.. 2009-12-14 15:37:41 ldap: 1. 2009-12-14 15:37:41 ldap: Creating new ldap-library connection to: ldapserver:389, user: CN=ldapserver,OU=hosts,DC=domain,DC=com 2009-12-14 15:37:41 ldap: Connected to ldapserver 2009-12-14 15:37:41 ldap: Trying to auth with DN: cn=vorname Nachname,ou=persons,dc=domain,dc=com 2009-12-14 15:37:41 ldap: cn=Vorname Nachname,ou=persons,dc=domain,dc=com / vorname.nachname authenticated. 2009-12-14 15:37:41 ldap: Getting user using filter: (&(objectClass=inetOrgPerson)(uid=vorname.nachname)) in search-path: OU=persons,DC=domain,DC=com 2009-12-14 15:37:41 ldap: Getting groups of cn=Vorname Nachname,ou=persons,dc=domain,dc=com 2009-12-14 15:37:41 ldap: Servertype: C__LDAP__OPENLDAP 2009-12-14 15:37:41 ldap: Attention: OpenLDAP connections are currently experimental! 2009-12-14 15:37:41 ldap: search() OU=persons,DC=domain,DC=com (Filter: (gidNumber=vorname.nachname)): 0 2009-12-14 15:37:41 ldap: Syncing groups..
Ich denke, daß es nur an der Definition der Gruppe im LDAP hängt.
3. Schritt: Ich füge in Kontakt -> intern -> Personen -> Gruppen den Benutzer, den ich anmelden will, einzeln und von Hand der Gruppe Admin hinzu. Diesmal gelingt die Anmeldung per LDAP. Das zeigt, daß der grundsätzliche Mechanismus funktioniert, aber ich will es ja automatisch haben, daß alle Benutzer, die in der LDAP-Gruppe xyz Mitglied sind, i-doit mit einer Rolle betreten können, ohne daß ich sie alle erst einzeln in i-doit freischalten muß, denn dafür sind es zu viele.
-
Hi…
hast du bereits eine Lösung dafür?
Bei mir tritt das gleiche Problem auf.
Die fete Zuweisung zu einer Rolle (für alle) funktioniert allerdings.Danke,
Eicki -
Hi,
dieses Feature gibt es für OpenLDAP leider nicht, da OpenLDAP die Gruppen standardmäßig nicht im User ablegt (so wie AD oder NDS) sonder nur die User im Gruppenobjekt. Der i-doit Login Mechanismus greift aber nur auf den LDAP User zu und durchsucht aus Perfomance Gründen nicht sämtliche Gruppen nach dem user. Deshalb kommt bei der Gruppensuche 0 raus: search() OU=persons,DC=domain,DC=com (Filter: (gidNumber=vorname.nachname)): 0.
-
Wurde das nun scon gefixt bzw geht das nun über openLDAP????
BR
-
Leider nicht, wie gesagt: das ist ohne weiteres mit OpenLDAP nicht möglich. Du kannst höchstens versuchen deinen OpenLDAP Server so zu konfigurieren, dass Gruppen zusätzlich im User abgelegt werden. Über die Directory Mappings kannst du dem i-doit LDAP Modul dann sagen, in welchem Feld sich die Gruppen beim User befinden und es würde theoretisch funktionieren. Das ist aber nur Theorie, wir haben das bisher so noch nicht auf Funktion geprüft