Progetto

Generale

Profilo

Autenticazione su Active Directory per Apache

Sistema Operativo : GNU/Linux - Debian/Lenny

WebServer : Apache/2.2.8 (Debian) DAV/2 SVN/1.4.6 mod_mono/1.2.4 PHP/5.2.5-3 with Suhosin-Patch mod_python/3.3.1 Python/2.4.5 mod_perl/2.0.3 Perl/v5.8.8 Server at localhost Port 80

Moduli abilitati : alias.conf, authnz_ldap.load, authz_user.load,dav.load,dir.load,mime.load, negotiation.load,python.load, status.load,alias.load,authz_default.load, autoindex.conf,dav_svn.conf, env.load, mod-modo-auto.conf, perl.load, setenvif.conf, userdir.conf, auth_basic.load, authz_groupfile.load, autoindex.load, dav_svn.load, ldap.load, mod-modo-auto.load, php5.conf, setenvif.load, userdir.load, authn_file.load, authz_host.load,cgi.load, dir.conf, mime.conf, negotiation.conf, php5.load, status.conf

Nel caso i moduli di ldap non fossero già abilitati abilitarli in questo modo :

a2enmod ldap 
a2enmod authnz_ldap

Poniamo il caso di aver configurato direttamente ed unicamente un sito di default, questa è la configurazione di /etc/apache2/sites-available/default:

NameVirtualHost *
LDAPVerifyServerCert Off
<VirtualHost *>
    ErrorLog /var/log/apache2/error.log
        LogLevel warn
    CustomLog /var/log/apache2/access.log combined
    ServerSignature On
    ServerAdmin xxx@yyy.zz
    <Location /myrepo >
        # Impostiamo il tipo di autenticazione su Basic (attenzione le password viaggiano in chiaro)
              AuthType Basic
        # Con questa direttiva diciamo ad apache che se Ldap non autentica l'utente non deve tentare altre autenticazioni
        AuthBasicProvider ldap        
        AuthName "Qui mettiamo il titolo della finestra che appare per chiedere l'utente e la password" 
        # Ora si definisce l'URL a cui indirizzare la richiesta LDAP
          # ed il relativo formato del tipo: scheme://host:port/basedn?attribute?scope?filter
            # L'URL di seguito riportato effettuera' una ricerca per tutti gli oggetti ricorsivamente a partire dal basedn
              # Effettua inoltre la validazione sull'attributo sAMAccountName
            AuthLDAPURL "ldap://servera/DC=mydomain,DC=com?sAMAccountName?sub?(objectClass=*)" 
        # Active Directory requires an authenticating DN to access records
          # This is the DN used to bind to the directory service
            # This is an Active Directory user account
              AuthLDAPBindDN "mydomain\user" 
        AuthLDAPBindPassword password
        AuthzLDAPAuthoritative on
        Require valid-user
    </Location>
</VirtualHost>