Когда веб-сервер (здесь Джанго размещен на IIS) заботится о проверке подлинности он обычно устанавливает переменную REMOTE_USER
среды для использования в базовой заявке. В Django REMOTE_USER
доступен в атрибуте request.META. Django может быть настроен на использование значения REMOTE_USER
с использованием классов RemoteUserMiddleware
и RemoteUserBackend
, найденных в django.contrib.auth. конфигурации Вы должны добавить django.contrib.auth.middleware.RemoteUserMiddleware
к установке MIDDLEWARE_CLASSES
после django.contrib.auth.middleware.AuthenticationMiddleware
:
MIDDLEWARE_CLASSES = (
...
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.RemoteUserMiddleware',
...
)
Далее, вы должны заменить ModelBackend
с RemoteUserBackend
в установке AUTHENTICATION_BACKENDS
:
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.RemoteUserBackend',
)
С помощью этой установки, RemoteUserMiddleware
воли определить имя пользователя в request.META['REMOTE_USER']
и выполнить аутентификацию и автозапуск этого пользователя с помощью RemoteUserBackend
.
(Подробнее https://docs.djangoproject.com/en/1.5/howto/auth-remote-user/)
Чтобы получить REMOTE_USER
в запросе сделать следующие настройки IIS:
1.In Панель управления, Программы и компоненты, а затем нажмите кнопку Включить для Windows или отключение компонентов.
2. Разверните службы Интернета, разверните веб-службы World Wide Web, разверните Безопасность и выберите Аутентификацию Windows.
Диспетчер IIS
- Откройте Диспетчер IIS и перейдите на уровень, которым нужно управлять.
- В представлении «Функции» дважды щелкните «Аутентификация».
- На странице «Аутентификация» выберите «Аутентификация Windows».
- В области «Действия» нажмите «Включить», чтобы использовать проверку подлинности Windows. (More info)
На окнах возвращается DOMAIN \ имя пользователя. Как я могу отказаться от части DOMAIN при переходе на django? –
Удалось ли это сделать, переопределив RemoteUserBackend.clean_username() –
@ DannyCullen, где вы меняете переопределение? – Radek