Progetto

Generale

Profilo

Actions

ApacheAuthAD » Cronologia » Versione 10

« Precedente | Versione 10/19 (diff) | Successivo »
Simone Piccardi, 20-05-2024 15:29


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. Nel caso di Debian questi sono installati insieme al server, ma non sono abilitati di default, peranto andranno abilitati eseguendo i comandi:

a2enmod ldap 
a2enmod authnz_ldap

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:

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

dove @

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>

Aggiornato da Simone Piccardi 4 mesi fa · 10 revisions