Zum Inhalt springen

ldap_auth ldap_server ldap_sync ldap_lib - Konfigurationsprobleme mit usergroup + password

Erstellt am 31. August 2007 · 2 Antworten · letzte Antwort am 25. September 2007

Tags: Frontend-Benutzer, Frage

SCHNEIKA ·

Trotz einiger selbstherausgefundener Tricks im Konfigurations-Script habe ich immer noch ein paar Probleme mit ldap_sync und ldap_auth. Typo3 4.1.1 unter PHP5.2 OpenSUSE10.2 mit Apache2.2.

ldap_server wurde so konfiguriert:

Servername = 172.16.131.15:389
Servertype = Active Directory
LDAP-Protocol-Version = 3
BaseDN = DC=intra,DC=ads-root,DC=de
Filter für Personen = (&(objectClass=person)(sAMAccountName=###USERNAME###))
Domain = intra.ads-root.de
Benutzername = benutzer@intra
Passwort = geheim

FEusers = LDAP_SYNC
FEusers {
enable = 1
table = fe_users
basedn = OU=_Bereiche, DC=intra, DC=ads-root, DC=de
handleNotFound = 1
handleNotFound {
markHidden = 1
hiddenField = disable
markDeleted = 0
deletedField = deleted
delete = 0
identField = username
}

pid = 2
filter = (&(objectClass=user))
uniqueField = tx_ldapserver_dn

fields {
username = MAP_OBJECT
username.attribute = sAMAccountName
username.userFunc = tx_ldapserver->getSingleValue

email = MAP_OBJECT
email.attribute = mail
email.userFunc = tx_ldapserver->getSingleValue


telephone = MAP_OBJECT
telephone.attribute = telephoneNumber
telephone.userFunc = tx_ldapserver->getSingleValue

fax = MAP_OBJECT
fax.attribute = facsimileTelephoneNumber
fax.userFunc = tx_ldapserver->getSingleValue

tx_seminars_phone_mobile = MAP_OBJECT
tx_seminars_phone_mobile.attribute = mobile
tx_seminars_phone_mobile.userFunc = tx_ldapserver->getSingleValue

company = MAP_OBJECT
company.attribute = company
company.userFunc = tx_ldapserver->getSingleValue

password = MAP_OBJECT
password.attribute = UserPassword
password.userFunc = tx_ldapserver->getSingleValue

name = MAP_OBJECT
name.attribute = cn
name.userFunc = tx_ldapserver->getSingleValue

tx_ldapserver_dn = MAP_OBJECT
tx_ldapserver_dn.special = DN

usergroup = MAP_OBJECT
usergroup {
attribute = memberOf
userFunc = tx_ldapserver->getFEGroups
userFunc {
 pid = 2
 table = fe_groups
  }
 }
}
}


FEgroups < FEusers
FEgroups {
table = fe_groups
basedn = OU=_Global, DC=intra, DC=ads-root, DC=de
handleNotFound = 0
filter = (&(objectClass=group))
fields {
username >
usergroup >
name >
email >
title = MAP_OBJECT
title.attribute = cn
title.userFunc = tx_ldapserver->getSingleValue
}
}

FEauth = LDAP_AUTH
FEauth {
   enable = 1
   table = fe_users
   sync < FEusers
}

ldap_auth ist folgendermaßen konfiguriert:

plainTextLoginBE=0
enableBE=0
enableFE=1
FE_fetchUserIfNoSession=0
BE_fetchUserIfNoSession=0
FE_alwaysFetchUser=0
BE_alwaysFetchUser=0

Die FE-User und FE-Groups werden synchronisiert und in die Tabellen fe_user und fe_groups auf der konfigurierten Seite 2 "General Storage" geschrieben, die usergroup-Zuordnungen werden beim sync ebenfalls hergestellt und importiert:

uid: __NEW__
pid: 2
username: benutzer
email: benutzer@intra.ads-root.de
name: Nachname, Vorname
description: Abteilungsleiter
telephone: 0049 1234567
fax: +49 1234567
tx_seminars_phone_mobile: 0049 12345678
company: Firma GmbH
tx_ldapserver_dn: CN=Nachname\, Vorname,OU=Abteilungsleitung,OU=administrierte,OU=_Bereiche,DC=intra,DC=ads-root,DC=de
usergroup: 1001, 202, 303, 445

Die zwei einzigen Probleme sind nun:
In die fe_user-Tabelle werden keine passworder geschrieben und die Authentifizierung über das FE-Login (newloginbox) gegenüber der ADS-Domäne ist (deshalb?) ebenfalls nicht möglich. Wenn ich nun manuell ein Kennwort in die fe-User-Datensätze eintrage, dann funktioniert das Login logischerweise.

Liegt das eventuell daran, daß der im ldap_server verwendete LDAP-ADS-Benutzer benutzer@intra zu wenig Rechte hat, oder daß die User und Gruppen in unterschiedlichen OU (Organisatorial Units) liegen?

Wäre es theoretisch auch möglich, gegen die ADS zu authentifizieren ohne die LDAP-User synchronisieren (in die fe_user importieren) zu müssen?

Wer weis Rat? 😢

SCHNEIKA ·

Die Paßwörter fehlen noch, d.h. es werden keine Paßwörter übernommen. Ohne die Paßwörter ist kein FE-Login möglich. Wenn ich nach dem Sync manuell ein Paßwort eintrage, dann ist ein Login möglich aber meines Erachtens wird nicht gegen die ADS-Domäne authentifiziert, sondern gegen die FE-User-Datenbank. Soweit ich es verstanden habe, sollte aber eine Authentifizierung auch so möglich sein. Kann ldap_auth nicht ähnlich wie eu_ldap Zufalls-Kennwörter händeln?
Hat einer eine Idee?