Я приложение Django со следующими параметрами:
Debian: 9.9 Apache2: 2.4.25-3 + deb9u7 Django: 2.2.1 Mysql: mariadb-server-10.1
,Для аутентификации я хотел бы использовать удаленную аутентификацию, но через локальную базу данных.Есть ли для него какой-либо класс аутентификации?
Моя цель - иметь всплывающее окно apache2 для аутентификации, но данные аутентификации должны поступать, например, не из ldap, а из локальной базы данных и REMOTE_USER.переменная также должна быть установлена.
Мой текущий файл apache conf выглядит следующим образом:
<VirtualHost *:80>
ServerName 127.0.0.25
ServerAlias infokom.localhost prj.256.hu prj.128.hu
DocumentRoot /usr/share/prj
<Directory /usr/share/prj>
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess prj.djangoserver user=prj processes=10 threads=20 display-name=%{GROUP} python-path=/usr/share/prj:/home/prj/.virtualenvs/prj/lib/python3.5/site-packages
WSGIProcessGroup prj.djangoserver
WSGIScriptAlias / /usr/share/prj/prj/wsgi.py
CustomLog ${APACHE_LOG_DIR}/prj-access.log combined
ErrorLog ${APACHE_LOG_DIR}/prj-error.log
LogLevel debug
</VirtualHost>
.Файл wsgi.py просто:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'cworld.settings')
application = get_wsgi_application()
.Связанные части settings.py:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.RemoteUserMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
...
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.RemoteUserBackend']
.С этой текущей настройкой, когда требуется журнал, он перенаправляет меня на страницу входа в систему (например: / account / login /? Next = ...), но я бы предпочел иметь здесь всплывающее окно apache2 для аутентификации.