Я пытаюсь защитить путь URL с основным автором и хотеть использовать пользователей из моего приложения Django, которые хранятся в базе данных Postgres. Пользователь app
позволяется получить доступ к этой базе данных, веб-приложение хорошо работает, но выполнения сценария аутентификации с неправильным пользователем.
WSGIDaemonProcess app user=app group=www-data home=/app
<VirtualHost>
# other stuff here
<Location /admin/protected>
AuthType Basic
AuthName "Login Required"
Require valid-user
AuthBasicProvider wsgi
WSGIAuthUserScript /app/scripts/auth.wsgi
</Location>
WSGIScriptAlias / /app/django.wsgi
WSGIProcessGroup app
</VirtualHost>
Это - ошибка, я вхожу в свои журналы:
OperationalError: FATAL: Ident authentication failed for user "www-data"
Есть ли способ изменить пользователя с который auth.wsgi
выполнения сценария?
Проверки системы аутентификации Apache выполняются в рабочих процессах Apache, а не в процессе демона WSGI. Система аутентификации Apache только сообщает, разрешен ли пользователю доступ к веб-приложению. Это не меняет пользователя, от имени которого работает рабочий процесс, и он будет продолжать работать как пользователь Apache. Если вы пытаетесь использовать доступ на основе доверия к базе данных в зависимости от того, от имени какого пользователя работает клиент, это не сработает.
Единственным вариантом будет запустить весь Apache в качестве пользователя приложения, установив глобального пользователя Apache директива. Это вряд ли то, что вы действительно хотите делать. Или настройте базу данных, чтобы разрешить доступ пользователю www-data.