thaddaeus93
Goto Top

Ldap-bind mit OpenLDAP schlägt fehl (PHP)

Hallo Zusammen,

mein Ziel ist es, mich von einem Webserver (PHP) auf ein OpenLDAP (sldapd) zu verbinden - die Verbindung selber scheint zu passen, allerdings klappt der bind nicht.

Zur Umgebung:
- LDAP-Server 192.168.178.107
- Webserver 192.168.178.108

Hier mein Sourcecode:

<?php
// LDAP variables
$ldaphost = "192.168.178.107";  // your ldap servers  
$ldapport = 389;                 // your ldap server's port number 

// Connecting to LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
          or die("Could not connect to $ldaphost");  

if($ldapconn)
{
    
    $username = "ldapadmin@dlp.local";  
    $upasswd = "g111uO885557rQ58F";  

    $ldapbind = ldap_bind($ldapconn, $username, $upasswd);
    
    if($ldapbind) 
        {
            print("Congratulations! $username is authenticated.");  
        }
    else 
        {
            print("Access Denied!");  
            exit;
        }
}
?>

Wenn das Script ausgeführt wird kommt die Meldung "Access Denied!". Im /var/log/apache2/error.log finde ich folgenden Eintrag:

[Wed Oct 19 20:22:23.264191 2022] [php7:warn] [pid 15281] [client 192.168.178.100:56486] PHP Warning:  ldap_bind(): Unable to bind to server: Invalid DN syntax in /var/www/html/createuser.php on line 16

Da ich das Ganze mit einem ActiveDirectory bereits zum Laufen gebracht habe, gehe ich davon aus, dass es mit OpenLDAP/Linux irgendwelche speziellen Parameter gibt. Vermutlich ist einfach die Schreibweise bei $username falsch.. Probiert habe ich schon einiges.. Den Usernamen only "ldapadmin", mit Domain "DLP\ldapadmin", mit AT "ldapadmin@DLP", nur jedes mal kommt die selbe Meldung im Error-Log.

So sieht das LDAP aus
2022-10-19 22_39_29-uid=ldapadmin,ou=users,dc=dls,dc=local - softerra ldap browser 4.5

Und das ist der Bind-User
2022-10-19 22_40_58-eigenschaften von uid=ldapadmin

Danke schon mal vorab!

Viele Grüße

Content-ID: 4338680115

Url: https://administrator.de/contentid/4338680115

Ausgedruckt am: 08.11.2024 um 00:11 Uhr

tikayevent
Lösung tikayevent 19.10.2022 um 22:53:49 Uhr
Goto Top
Invalid DN syntax in /var/www/html/createuser.php on line 16
Du musst den Benutzernamen im DN-Format eintragen, also in deinem Fall
uid=ldapadmin,ou=users,dc=irgendwas,dc=anderes
thaddaeus93
thaddaeus93 19.10.2022 um 22:59:22 Uhr
Goto Top
Zitat von @tikayevent:

Invalid DN syntax in /var/www/html/createuser.php on line 16
Du musst den Benutzernamen im DN-Format eintragen, also in deinem Fall
uid=ldapadmin,ou=users,dc=irgendwas,dc=anderes

Hi,
leider gibt das die gleiche Fehlermeldung face-sad
Zusätzlich erscheint allerdings im error.log noch folgender Eintrag:

[Wed Oct 19 20:57:48.178817 2022] [php7:warn] [pid 15280] [client 192.168.178.100:56522] PHP Warning:  ldap_bind(): Unable to bind to server: Protocol error in /var/www/html/createuser.php on line 18
tikayevent
tikayevent 19.10.2022 um 23:05:12 Uhr
Goto Top
Dein Programm hat Port 389 drinstehen, deine Screenshots 45389.
thaddaeus93
Lösung thaddaeus93 19.10.2022 um 23:06:39 Uhr
Goto Top
Die Meldung "Protocol error" hat mir keine Ruhe gelassen - habe die Lösung gefunden!
1. Der Username muss in dem Format wie von @tikayevent beschrieben, geschrieben werden.

Zitat von @tikayevent:

Invalid DN syntax in /var/www/html/createuser.php on line 16
Du musst den Benutzernamen im DN-Format eintragen, also in deinem Fall
uid=ldapadmin,ou=users,dc=irgendwas,dc=anderes


2. folgendes muss man nach dem ldap_connect "nachlegen":

ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);

Vielen Dank an @tikayevent für die super schnelle Antwort und den Beitrag zur Lösung des Problems. Hoffe das hilft dem ein- oder anderen Forumsteilnehmer weiter.

VG
thaddaeus93
thaddaeus93 19.10.2022 um 23:07:41 Uhr
Goto Top
Zitat von @tikayevent:

Dein Programm hat Port 389 drinstehen, deine Screenshots 45389.

Ja da habe ich nur den LDAP per SSH durchgetunnelt, damit ich mit dem LDAP-Browser schön durchschauen kann face-wink

VG