Как пройти аутентификацию в приложении Django с помощью RemoteUserBackend

Мое приложение требуется для поддержки пользователей, вошедших в систему через единый вход на стороннем сервере.

Я настроил settings.py на основании документов, т.е.

MIDDLEWARE_CLASSES = [
    '...',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.PersistentRemoteUserMiddleware',
    '...',
]

AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.RemoteUserBackend',
]

Я попытался проверить это с помощью Postman на нескольких URL-адресах приложения без авторизации и с базовой аутентификацией (пользователь определен) и, конечно же, с REMOTE_USER (И / или HTTP_REMOTE_USER заголовок установлен). Во всех случаях я получаю 401 - unauthorized код. Кроме того, точка останова в authenticate никогда не называется. process_request в промежуточном программном обеспечении называется, но REMOTE_USER заголовок не в request.META,

Что еще мне нужно настроить (в Django, Postman - или, что еще лучше, в Apache), чтобы REMOTE_USER будет установлен? Мои знания Apache минимальны, поэтому ссылка на пример очень поможет.

Самое близкое "решение", которое я увидел, заключается в следующем, но кажется, что человек обошел правильный способ сделать это.

ОБНОВИТЬ Запрос почтальона относится к одной из базовых служб, которая требует входа пользователей (@login_required декоратор в Django) Я пробовал как с базовой аутентификацией, так и без аутентификации. Ответ 401 без дополнительной информации.

>curl -i -H 'REMOTE_USER: user' localhost:9000/project/files/
HTTP/1.0 401 Unauthorized
Date: Sun, 17 Dec 2017 13:38:38 GMT
Server: WSGIServer/0.1 Python/2.7.10
Expires: Sun, 17 Dec 2017 13:38:38 GMT
Vary: Cookie
Last-Modified: Sun, 17 Dec 2017 13:38:38 GMT
Location: /accounts/login/?next=/project/files/
Cache-Control: no-cache, no-store, must-revalidate, max-age=0
X-Frame-Options: SAMEORIGIN
Content-Type: text/html; charset=utf-8

Та же команда с cURL. Местоположение, похоже, предполагает, что он пытался перенаправить на страницу входа (что не должно происходить)

0 ответов

Другие вопросы по тегам