авторизация mod_wsgi с пользователями Django от базы данных пост-ГРЭС

Я пытаюсь защитить путь 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 выполнения сценария?

0
задан 26 May 2015 в 13:42
1 ответ

Проверки системы аутентификации Apache выполняются в рабочих процессах Apache, а не в процессе демона WSGI. Система аутентификации Apache только сообщает, разрешен ли пользователю доступ к веб-приложению. Это не меняет пользователя, от имени которого работает рабочий процесс, и он будет продолжать работать как пользователь Apache. Если вы пытаетесь использовать доступ на основе доверия к базе данных в зависимости от того, от имени какого пользователя работает клиент, это не сработает.

Единственным вариантом будет запустить весь Apache в качестве пользователя приложения, установив глобального пользователя Apache директива. Это вряд ли то, что вы действительно хотите делать. Или настройте базу данных, чтобы разрешить доступ пользователю www-data.

0
ответ дан 24 November 2019 в 08:32

Теги

Похожие вопросы