Ldap .htaccess Datei

#1
Hallo ich habe ein Problem mit Ldap...
Ich möchte eine webseite Passwort sicher machen und der Browser soll sich das Passwort vom Ldap_Server holen...
woran kann es liegen das der browser das passwort im ldap_server nicht findet...
Ldap crypt das passwort mit DES....
und hier noch meine .htaccess Datei :

AuthType basic
AuthName tenshitest
#AuthLDAPDereferenceAliases searching
AuthLDAPEnabled on
AuthLDAPURL ldap://skylab............de:389/ou=klinikum,o=.....,c=de?uid
require valid-user


Bitte versucht mir zu helfen...

Danke Larissa
 

pate33

Well-Known Member
#4
dort unterscheidet sich die ldap url aber wesentlich von deiner, da eben auch uid=?uid etc. festgelegt sind, was man fuer einen ldap_connect eben auf jeden fall braucht.
 

pate33

Well-Known Member
#6
hast du mal versucht, auf ein plaintext passwort zu verbinden? nur um sicherzugehen, dass es an der verschluesselung liegt.
 

pate33

Well-Known Member
#8
du kannst in der datenbank einmal clearPassword und userPassword hinterlegen. userPassword ist das verschluesselte, clearPassword das plaintext. ;)
 
#11
haut immer noch nicht hin...

du sagmal ist das ein unterschied ob ich in der sladp.conf schreibe :

cn=admin,o=organisation,c=de

oder

cn=admin,dc=organisation,dc=de

macht das viel aus ob ich "o" oder "dc" benutze, das vielleicht mache befehle dadurch nicht funktionieren....
weil ich bekomme mit php den connect hin,
aber das durchsuchen des baums schlägt immer fehl, er schreibt ldap_search ist kein gültiges ldap hilfsmittel....



<?
# Hostname des LDAP-Servers
$def_host = "127.0.0.1";
# Username zur Authentifizierung
$def_user = "jank";
# das dazugehšrige Passwort
$def_pass = "test";
# Base-DN des LDAP-Baums
$base_dn = "dc=Company, dc=Incremental, dc=Internet";

function change_password($username,
$old_password, $new_password,
$new_password_retyped) {

global $def_host, $base_dn;

/* $username und $old_password dienen zur authentifizierung.
** $new_password und $new_passord_retyped sind das neue passwort.
*/

if (empty($username) || empty($new_password)) {
print "Fehler: Funktionsparameter sind nicht richtig gesetzt<br>";
return false;
}

if ($new_password != $new_password_retyped) {
print "Fehler: Passwšrter sind nicht gleich.<br>";
return false;
}

if (($conn_id = ldap_connect ($def_host)) == false) {
print "Fehler: Verbindung zum LDAP-Server konnte nicht hergestellt werden.<br>";
return false;
}

/* User-DN fŸr den Benutzer mir dem Usernamen $username ermitteln */

if (($link_id = ldap_bind ($conn_id)) == false) {
print "Fehler: Anonymer Bind fehlgeschlagen<br>";
return false;
}

if (($res_id = ldap_search
($link_id, $base_dn, "uid=$username")) == false) {
print "Fehler: Suche im LDAP-Baum fehlgeschlagen<br>";
return false;
}

if (ldap_count_entries($link_id, $res_id) != 1) {
print "Fehler: Username $username mehr als einmal gefunden<br>";
return false;
}

if (( $entry_id = ldap_first_entry($link_id, $res_id))== false) {
print "Fehler: Eintrag des Suchergenisses konnte nicht abgeholt werden<br>";
return false;
}

if (( $user_dn = ldap_get_dn($link_id, $entry_id)) == false) {
print "Fehler: Der User-DN konnte nicht ermittelt werden<br>";
return false;
}

/* Authentifizierung des User */
if (($link_id = ldap_bind
($conn_id, $user_dn, $old_password)) == false) {
print "Fehler: Authentifizierung fehlgeschlagen: $user_dn - $old_password<br>";
return false;
}

$change_passwd["userpassword"] = $new_password;

if (ldap_modify($link_id, $user_dn, $change_passwd) == false) {
print "Fehler: €ndern des Passwortes ist fehlgeschlagen<br>";
return false;
}

ldap_unbind ($link_id);
return true;
}

# "test1" als neues Passwort setzen:

if (change_password($def_user, $def_pass, "test1", "test1")
== true) {
print "PasswortŠnderung erfolgreich<br>";
}

?>
 

pate33

Well-Known Member
#12
klar ist das ein unterschied.

die ldap struktur ist ja hierarchisch:

-o company
- - dc abteilung
- - - cn mitarbeiter
- - dc abteilung
- - - cn mitarbeiter
- - - cn mitarbeiter

d.h. du sucht immer von oben durch den baum.

ich hatte hier mal eine php klasse fuer ldap verbindungen gepostet. Dort funktioniert das ldap_search auf jeden fall, einfach mal ausprobieren.

edit :: es gibt auf der php seite bei dem ldap kram ein beispiel, um die basedn auf zu loesen ... generell gild dn=,o=,dc=,dc=, was aber nicht immer bei allen unternehmen zutrifft. leider hab ich den link dazu nicht mehr, weiss nur dass es eine schleife war, die das array mit den verbindunsinfos aufgeloest und 'lesbar' dargestellt hat...

MfG
 
Zuletzt bearbeitet:
#13
gleich ausprobieren

muss ich eigentlich denn eintrag

max_link_ldap -1

in die php.ini schreiben und wenn kann ich denn einfach dazu schreibe oder muss der an einer bestimmten stelle stehen...
 
Oben