2016-07-20 13 views
0

Ich verwende .htaccess und Apache v2.4 mit mod_authnz_ldap, um die LDAP-Authentifizierung für unseren lokalen Domänencontroller zu erzwingen. Der folgende Block funktioniert einwandfrei und das Zugriffsprotokoll enthält auch die Benutzer-ID.Kann ich während der Authentifizierung mit Apache zusätzliche LDAP-Objekte abrufen?

# LDAP stuff 
AuthType Basic 
AuthName "Validate with User ID" 
AuthBasicProvider ldap 
AuthLDAPURL "ldap://ldapServer.com:389 DC=global,DC=myCoName,DC=com?sAMAccountName" 
AuthLDAPBindDN "myDomain\\ServiceAccountName" 
AuthLDAPBIndPassword "ServiceAccountPassword" 
require valid-user 

Mit dem phpinfo.php Skript wird der Apache Umgebungsvariable AUTHENTICATE_SAMACCOUNTNAME auf den Benutzer-ID gesetzt.

Was ich brauche, ist auch, zusätzliche Benutzerdaten wie den vollständigen Namen, Telefonnummer, etc. zu erhalten oder wenn es einfacher ist, den vollständigen Datensatz für die Benutzer-ID ohne PHP oder ein anderes Back-End zurückgeben.

Antwort

1

Wie sich herausstellt, ist die Antwort in den Apache-Dokumenten gegeben. Zu Authentifizierungszwecken wird nur das erste aufgelistete Attribut für die Authentifizierung verwendet. Alle zusätzlichen (durch Komma getrennten) Attribute werden während des Authentifizierungsprozesses abgerufen.

Ändern der LDAPAuthURL zu:

AuthLDAPURL "ldap://ldapServer.com:389 DC=global,DC=myCoName,DC=com?sAMAccountName,displayName,givenName,sn" 

authentisiert auf sAMAccountName sondern auch gibt den dispalyName, givenName, und der Name sn. Diese Werte werden dann in der Apache-Umgebung mit dem Präfix AUTHENTICATE_ gefunden. PHP-Variablen werden mit dem Präfix _SERVER["AUTHENTICATE_*

Als Beispiel ist es das, was zurückgegeben wird, wenn ich einloggen:

AUTHENTICATE_SAMACCOUNTNAME al2 
AUTHENTICATE_DISPLAYNAME Lindberg, Alex (Alex) 
AUTHENTICATE_GIVENNAME  Alex 
AUTHENTICATE_SN    Lindberg 

und

_SERVER["AUTHENTICATE_SAMACCOUNTNAME"] al2 
_SERVER["AUTHENTICATE_DISPLAYNAME"] Lindberg, Alex (Alex) 
_SERVER["AUTHENTICATE_GIVENNAME"]  Alex 
_SERVER["AUTHENTICATE_SN"]    Lindberg 

Eine Liste der Attribute finden Sie hier: https://msdn.microsoft.com/en-us/library/ms675090(v=vs.85).aspx