ApacheAuthAD » Cronologia » Versione 10
Versione 9 (Simone Piccardi, 21-12-2010 11:54) → Versione 10/19 (Simone Piccardi, 20-05-2024 15:29)
h1. Autenticazione su Active Directory per Apache Per far eseguire ad Apache una autenticazione HTTP degli utenti appoggiandosi ad un server Active Directory si può utilizzare il supporto per l'autenticazione su LDAP fornito dai relativi moduli. *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 Debian questi sono installati insieme al server, ma ldap non sono fossero già abilitati di default, peranto andranno abilitati eseguendo i comandi: abilitarli in questo modo : <pre> a2enmod ldap a2enmod authnz_ldap </pre> Il primo passo per la configurazione è verificare la raggiungibilità ed il funzionamento della connessione ad Active directory usando LDAP, Per questo possiamo usare il comando @ldapsearch@ (installabile su Debian con il pacchetto @ldap-utils@, che consente di eseguire una interrogazione con: <pre> ldapsearch -x -ZZ -H ldap://192.168.0.184 -D "CN=user,CN=Users,DC=example,DC=com" -b "DC=example,DC=com" -w password </pre> dove @ Poniamo il caso di aver configurato direttamente ed unicamente un sito di default, questa è la configurazione di @/etc/apache2/sites-available/default@: <pre> 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> </pre>