Django выполняет свою собственную аутентификацию NTLM (заголовки HTTP и все) - PullRequest
0 голосов
/ 25 июня 2010

Я рассматриваю возможность перехода с Apache на Lighttpd для внутреннего веб-приложения, написанного на python. Проблема в том, что я полагаюсь на libapache2-mod-auth-ntlm-winbind ... который на самом деле не выглядит как хорошо поддерживаемый и обновленный пакет (хотя это может быть потому, что он действительно хорошо работает).

Я ищу предложения и советы о том, что потребуется, чтобы использовать сам django для обработки HTTP-аутентификации. Это позволило бы мне быть независимым от веб-сервера и потенциально могло бы стать большим опытом обучения.

Некоторые актуальные проблемы:

  1. Разумно ли, чтобы пользовательское приложение выполняло настоящую HTTP-аутентификацию?
  2. Насколько это связано с подключением моего кода Python к контроллеру домена Windows к такому типу аутентификации без запроса пароля у пользователя?
  3. Предоставляет ли NTLM какой-либо доступ к данным пользователя и членству в группах, чтобы я мог прекратить поиск через еще одно подключение к контроллеру домена Windows через LDAP?

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

1 Ответ

1 голос
/ 24 сентября 2010

Частичный ответ:

Вы можете (и должны) передать аутентификацию NTLM внешнему помощнику.В основном, установите Samba на компьютер, настройте его, присоедините к домену, включите winbind, затем используйте вспомогательный двоичный файл «ntlm_auth», вероятно, в режиме «pipe».

Для аутентификации сеанса NTLM требуется безопасный канал кконтроллер домена, которому нужны учетные данные (например, учетная запись компьютера-участника Samba / домена).Это самый быстрый путь к нему.

Squid (веб-кеш) имеет код для выполнения NTLM-аутентификации с использованием внешнего помощника;FreeRadius делает нечто подобное.

Сама аутентификация NTLM не предоставляет никакой информации о группе;если вы используете winbind, вы, конечно, можете использовать вызовы "wbinfo" для получения групп пользователей.

...