2014-11-12 4 views
6

Я хочу проверить подлинность пользователя django, используя учетную запись домена Windows (активный каталог), которая в настоящее время вошла на компьютер. Как я могу это сделать без запроса пользователя снова ввести имя пользователя/пароль, так как он уже зарегистрировался с использованием учетной записи домена в своей системе. Я использую django и python 2.7. Я прошел через link, но понимаю, как использовать его в моих представлениях. Пожалуйста, помогите мне.Django аутентифицировать, используя вход в домен пользователя Windows

Благодаря

ответ

5

Когда веб-сервер (здесь Джанго размещен на 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

  1. Откройте Диспетчер IIS и перейдите на уровень, которым нужно управлять.
  2. В представлении «Функции» дважды щелкните «Аутентификация».
  3. На странице «Аутентификация» выберите «Аутентификация Windows».
  4. В области «Действия» нажмите «Включить», чтобы использовать проверку подлинности Windows. (More info)
+0

На окнах возвращается DOMAIN \ имя пользователя. Как я могу отказаться от части DOMAIN при переходе на django? –

+0

Удалось ли это сделать, переопределив RemoteUserBackend.clean_username() –

+0

@ DannyCullen, где вы меняете переопределение? – Radek

Смежные вопросы