Benjamin S.: Synchronisation MySQL<->Windows-Passwort

Beitrag lesen

Hallo Sven, Hallo Forum,

  1. Deine Anwendung authentifiziert gegen die falsche Userdatenbank. Anstelle des Abgleichs der Userdaten mit der MySQL-Tabelle sollte dein Skript lieber gegen die Windows-Domäne (ActiveDirectory, eine Abart von LDAP) authentifizieren.

Danke, davon hatte ich heut morgen noch keine Ahnung, das scheint aber eine gute Idee zu sein. Jetzt hab ich mich eingelesen. Ich habe jetzt die LDAP-Erweiterung im Webserver aktiviert und folgendes Skript geschrieben:

define( LDAP_HOST,   "<<Domänencontroller>>" );
  define( LDAP_DOMAIN, "<<Domäne>>" );

function ldap_checkUser( $user, $pass ) {
    $ldap_host = "ldap://" . LDAP_HOST;
    $ldap_user = $username . "@" . LDAP_DOMAIN;
    $ldap_conn = @ldap_connect( $ldap_host );
    if ( $ldap_conn ) {
      $ldap_bind = @ldap_bind( $ldap_conn, $ldap_user, $pass );
      if ( $ldap_bind ) {
        return true;
      } else {
        // echo ldap_error($ldap_conn);
        return false;
      }
    }
  }

ldap_connect(...) funktioniert, ldap_bind(...) schlägt fehl, ganz gleich, ob die Zugangsdaten gültig sind oder nicht, ldap_error(...) sagt, es liegt an "Invalid credentials". Komischerweise funktioniert anonymes Binden, also ldap_bind($ldap_conn). Hmm...

MfG Benjamin.