Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Autenticazione ldap con php

    Ciao a tutti!
    Vorrei sapere come devo fare, dopo aver preso i valori in input da un form html con il metodo Post tramite $_POST in php, a confrontare username e password nel server ldap, dopo aver filtrato la ricerca con il comando ldap_search(...).
    In pratica riesco a mettere come filter l'uid che prende dal valore dell'username letto dal form, ma non so qual è l'alias corretto per confrontare la password.
    Qualcuno di voi può aiutarmi? Ogni piccola idea, magari anche apparentemente banale (potrebbe non esserlo!) è gradita.

  2. #2
    Devo fare una cosa così:
    Codice PHP:
    $ldapconn ldap_connect($serverAut) or die("Could not connect to LDAP server.");

    if (
    $ldapconn)
      
    $connesso = @ldap_bind($ldapconn$username$password);
    else
      
    $connesso false
    Dove devi impostare: $serverAut (server di autenticazione), $username e password
    Nella variabile $connesso hai true o false se è corretto o no.

  3. #3
    Sì ma in username e password cosa ci devo mettere?
    La directory ldap contiene i dati relativi ai dipendendi motorola (per esempio), e un utente che è inserito nella directory ldap deve autenticarsi su un sito intranet: username e password gli vengono presi in input da un form con il metodo POST, e dovrebbero essere confrontati con quelli inseriti nella directory ldap.
    In più vorrei sapere cosa indicano gli alias: ou, uid (penso userId), cn, dn, etc.
    Qualcuno ha una lista di tutti questi alias con una relativa spiegazione di cosa indicano, in modo che io possa usarli correttamente?
    C'è uno di questi alias riferiti alla password da mettere in un filter quando eseguo il comando ldap_search(...) ??

  4. #4
    Beh, in username e password devi passare i campi passati dal post, no?

    Codice PHP:
    $username $_POST['username'];
    $password $_POST['password']; 

  5. #5
    Sì ok, quello è scontato
    Il fatto è che facendogli leggere username e password con ldap_bind, non binda niente.
    Se provo a fare il bind anonimo invece, binda.
    Devo specificare per caso il dominio o qlcos'altro? Quando va a leggere l'username e la password, cosa gli entra in ldap?

  6. #6
    Ecco il mio codice:

    <?php
    $id = $_POST['id'];
    $pwd = $_POST['pwd'];
    $dn = "ou=people,ou=intranet,dc=motorola,dc=com";
    $host = "server ldap";
    $port = "389";

    echo $id, " ", $pwd, "
    "; //controllo sul post

    $conn = ldap_connect($host, $port) or die("Impossibile connettersi a $host
    ");

    if ($conn) {
    $bind = ldap_bind($conn, $id, $pwd) or die("No user");
    if ($bind) {
    echo "LDAP bind eseguito con successo ";
    } else {
    echo "LDAP bind fallito";
    }
    }
    $filter = "(uid=" . $id . ")"; //oppure: $filter = "(uid=$id)";
    $search = ldap_search($conn, $dn, $filter);
    $info = ldap_get_entries($conn, $search);
    echo $info["count"] . "entries restituiti\n";
    /*echo $info;*/

    ?>

  7. #7
    Se dovessi confrontare un input con un qualsiasi campo nella directory ldap, come farei?

  8. #8
    Non so dirti di più, posso dirti soltanto che io ho risolto un problema come il tuo aggiungendo @dominio.ext allo username.
    Puoi fare una prova veloce digitandolo completo (se non l'hai già fatto!)

  9. #9
    Ma serve per forza fare un bind autenticato se voglio confrontare la password?
    Non c'è un alias (tipo uid per l'username) da mettere nel $filter per confrontare la password?

  10. #10
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    Originariamente inviato da margherite
    Devo fare una cosa così:
    Codice PHP:
    $ldapconn ldap_connect($serverAut) or die("Could not connect to LDAP server.");

    if (
    $ldapconn)
      
    $connesso = @ldap_bind($ldapconn$username$password);
    else
      
    $connesso false
    Dove devi impostare: $serverAut (server di autenticazione), $username e password
    Nella variabile $connesso hai true o false se è corretto o no.

    sto provando questo codice

    però mi si connette sempre, anche se nomeutente e password sono sbagliati... :berto:

    Codice PHP:
    <?php
    $serverAut 
    "domein.dot";
    $username "userneim";
    $password "passweird";

    $ldapconn ldap_connect($serverAut) or die("Could not connect to LDAP server.");

    if (
    $ldapconn):
        echo 
    "connesso";
    else:
        echo 
    "non connesso";
    endif;
    ?>
    mi sono perso qualche passaggio? a me basterebbe una cosa del genere, pressappoco...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.