Ich versuche, remote LDAP-Server zu verwenden. Aus Sicherheitsgründen versuche ich nur eine sichere Verbindung zu verwenden. Ich bin in der Lage, etwas Code zu arbeiten, aber ich bin nicht sicher, angesichts der PHP-Dokumentation von Start TLS selbst, dass, wenn der folgende Code nur auf sicheren Kanal funktioniert. Kann mir bitte jemand helfen?PHP mit TLS für sicheres LDAP
$is_valid_user = FALSE;
try {
$ds = ldap_connect('ldap.foo.com', 389);
if (! ldap_set_option($ds, LDAP_OPT_REFERRALS, 0)) {
return "";
}
if (! ldap_start_tls($ds)) {
return "";
}
} catch(Exception $e) {
return "";
}
if (! ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
$error = "LDAP Server protocol error.";
return "";
}
try {
$bnd = @ldap_bind($ds, 'uid='.$user.', ou=people, dc=ldap, dc=foo, dc=com' , $passwd);
if ($bnd) {
$is_valid_user = TRUE;
$srch=ldap_search($ds, 'dc=ldap, dc=foo, dc=com', "uid=$user");
$info=ldap_get_entries($ds, $srch);
$userdn=$info[0]["dn"];
$usernm=$info[0]["cn"][0];
return $usernm;
} else {
return "";
}
} catch(Exception $e) {
return "";
}
Vielen Dank. Der Grund für das Zurückgeben einer Null-Zeichenfolge ist, dass diese Zeilen Teil einer Funktion sind, um Informationen von einer Funktion zurückzuholen. Ich hätte auch FALSCH zurückgeben können, vielleicht sollte es sein. Aber dachte, dieser Rückgabetyp ist konsistenter, ein bedeutungsloses Argument in PHP. Wie bei anderen Tools muss ich nur authentifizieren und Namen bekommen, das ist alles. – user926918