Come autenticare da Apache verso il database utenti di DjangoLink to this heading
Dal momento che mantenere più database di autenticazione sincronizzati è un problema comune quando si ha a che fare con Apache, è possibile configurare Apache in modo che si autentichi direttamente sul sistema di autenticazione di Django. Questo richiede la versione di Apache >= 2.2 e mod_wsgi >= 2.0. Ad esempio, potresti:
Distribuire files static/media direttamente da Apache solo ad utenti autenticati.
Autenticare l’accesso un repository Subversion per gli utenti Django con un certo permesso.
Permettere ad alcuni utenti di connettersi ad una condivisione WebDAV creata con mod_dav.
Autenticazione con mod_wsgiLink to this heading
Assicurati che mod_wsgi sia installato ed attivato e che tu abbia seguito gli step per impostare Apache con mod_wsgi.
Ora, modifica la tua configurazione di Apache per aggiungere una cartella che vuoi sia visibile solo ad utenti autenticati:
WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com
WSGIProcessGroup %{GLOBAL}
WSGIApplicationGroup %{GLOBAL}
<Location "/secret">
AuthType Basic
AuthName "Top Secret"
Require valid-user
AuthBasicProvider wsgi
WSGIAuthUserScript /path/to/mysite.com/mysite/wsgi.py
</Location>
La direttiva WSGIAuthUserScript dice a mod_wsgi di eseguire la funzione check_password nello script wsgi specificato, passando il nome utente e la password che riceve dal prompt. In questo esempio, WSGIAuthUserScript è lo stesso di WSGIScriptAlias che definisce la tua applicazione creata da django-admin startproject.
Infine, modifica il tuo script WSGI mysite.wsgi per legare l’autenticazione di Apache ai meccanismi di autenticaizione del tuo sito importando la funzione check_password:
import os
os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"
from django.contrib.auth.handlers.modwsgi import check_password
from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandler()
Le richieste che iniziano con /secret/ richiederanno un utente per l’autenticazione
La documentazione sui meccanismi di controllo di accesso di mod_wsgi offre dettagli aggiuntivi ed informazioni riguardo a metodi alternativi di autenticazione.