Аутентификация Django apache2 с помощью remote_user и локальной базы данных - PullRequest
0 голосов
/ 07 июля 2019

Я приложение 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 для аутентификации.

...