2016-11-22 5 views
0

Ich versuche LDAP user password change code zu verwenden, aber ich habe auf einem Schritt stecken, wo ldap_modify werfen LDAP-Fehler:kann nicht ldap_modify arbeiten

1 - Operations error

Zuerst dachte ich, dass Passwort-Verschlüsselungsmethode nicht korrekt ist, aber auch Code

funktioniert nicht (erhalten den gleichen Fehler # 1).

Ich habe alle möglichen Kombinationen für rootDN versucht, aber binden nicht erhalten, wenn ldap_manager verwendet

$rootdn = "CN=users,DC=mycompany,DC=local"; 

    $username = 'ldap_mamanger'; 
    $domain = 'mycompany'; 

    $rootdn = $username; 
    $rootdn = $username.'@'.$domain; 
    $rootdn = $domain.'\\'.$username; 
    $rootdn = "uid=$username,cn=users,dc=$domain,dc=local"; 
    $rootdn = "uid=$username,dc=$domain,dc=local"; 
    $rootdn = "uid=$username,dc=local"; 
    $rootdn = "uid=$username,dc=$domain"; 

wenn $ldaprdn = $domain.'\\'.$username; für reguläre AD-Benutzer funktioniert gut (binden)

dsquery user -name ldap* kehrt

"CN=ldap_manager,CN=Users,DC=mycompany,DC=local" "CN=ldap_user,CN=Users,DC=mycompany,DC=local"

Irgendwelche Hinweise, was kann falsch sein?

+0

Sie haben ausreichende Berechtigungen in AD, um Datensätze zu ändern? – RamRaider

+0

@RamRaider Ja - das tue ich. Wenn ich auf meinen Code schaue, bin ich nicht sicher über $ rootdn Wert, wenn dies korrekt ist – JackTheKnife

+0

Verwenden Sie 'dsquery', um schnell die richtige Root-dn zu finden – RamRaider

Antwort

1

Soweit ich es sehe, versuchen Sie, einen vollständigen Eintrag zu ändern. Das bedeutet, ldap_modify ersetzt den aktuellen Inhalt, der sich unter dem angegebenen DN befindet, durch den neuen Inhalt. Und ich bin sicher, dass einige Felder leer sind, die benötigt werden, wenn Sie den aktuellen Eintrag durch einen ersetzen, der nur einen gegebenen Namen enthält.

Also entweder holen Sie den aktuellen Eintrag und ersetzen Sie den Wert in Frage in diesem Ergebnis, oder Sie sollten sich ldap_mod_replace ansehen.

+0

Switched zu 'ldap_mod_replace'. Jetzt kann ich mit 'ldap_manager' binden, aber das Endergebnis ist ein Fehler:' 53 - Server ist nicht bereit zu arbeiten', was nicht mit meiner Frage zusammenhängt. Jedenfalls bin ich näher dran als vorher. – JackTheKnife