martedì 15 novembre 2016

Login LDAP Active directory con ASP Classic

Per gli amanti dell'asp classic, ho qui uno script che consente di fare la login tramite ldap active directory.
Grazie a questo semplice script infatti, sarà possibile verificare l'accesso su un database ldap, passandogli username (l'utente di rete dell'active directory ad esempio) e password.

Ecco quindi il codice asp con la funzione da utilizzare nelle vostre pagine web:

<%
function loginldap(username,password,dominio)
    loginldap=False
    query="SELECT cn FROM 'LDAP://"&dominio&"' WHERE objectClass='*'"
    set conn=server.CreateObject("ADODB.Connection")
    conn.Provider="ADsDSOOBJECT"
    conn.properties("User ID")=username
    conn.properties("Password")=password
    conn.properties("Encrypt Password")=true
    conn.open "DS Query",username,password
    set cmd=server.CreateObject("ADODB.Command")
    set cmd.ActiveConnection=conn
    cmd.CommandText=query
    on error resume next
    set rs=cmd.Execute
    if rs.bof or rs.eof then
        loginldap=False
    else
        loginldap=True
    end if
    set rs=nothing
    set conn=nothing
    on error goto 0
end function

%>

Per far funzionare il tutto, basterà creare una form di login che passerà username e password alla funzione, richiamandola ad esempio in questo modo:

response.write loginldap(utente-di-rete,password,indirizzo-ip-server)

La funzione loginldap restituirà TRUE in caso la userid e la password siano corrette, o FALSE in tutti gli altri casi (anche nel caso in cui il server non sia raggiungibile).
Potrete quindi intercettare il risultato e gestire di conseguenza la pagina web, magari salvando in una sessione l'avvenuta autenticazione ldap tramite pagina asp.

Attenzione: tra i vari problemi che si potrebbero riscontrare con questa asp ldap connection, ci potrebbe anche essere l'errore "Server not Operational".
A me è capitato su un server in cui un firewall bloccava la chiamata, ma potrebbe anche essere un errore di cattiva risoluzione del netbios, o di cattiva risoluzione del dns.

Piaciuto l'articolo? Lascia un commento!

EmoticonEmoticon