Использование AD в качестве аутентификации для Django - PullRequest
27 голосов
/ 04 января 2009

Я работаю над приложением на основе Django в корпоративной среде и хотел бы использовать существующую систему Active Directory для аутентификации пользователей (чтобы они не получили еще одну комбинацию имени и пароля). Я также хотел бы продолжать использовать систему авторизации / разрешения пользователей Django для управления возможностями пользователей.

У кого-нибудь есть хороший пример этого?

Ответы [ 5 ]

10 голосов
/ 04 января 2009

Вот еще один более свежий фрагмент (июль 2008 г., обновлено в декабре 2015 г.):

Аутентификация в Active Directory (LDAP) по SSL

10 голосов
/ 27 октября 2011

Ссылка, предоставленная Джеффом, действительно работает, хотя и предполагает, что у вас есть группа по умолчанию, в которую добавляются пользователи. Я просто заменил:

group=Group.objects.get(pk=1)

от

group,created=Group.objects.get_or_create(name="everyone")

Если вы хотите более тесную интеграцию и дополнительные функции, есть также django-auth-ldap , который дает вам больше контроля над тем, как пользователи / группы ldap отображаются на пользователей / группы django.

Для отладки соединения ldap я нашел эту запись в блоге полезной, в частности команду для проверки соединения ldap с помощью ldap-utils:

ldapsearch -H ldaps://ldap-x.companygroup.local:636 -D "CN=Something LDAP,OU=Random Group,DC=companygroup,DC=local" -w "p4ssw0rd" -v -d 1

Если вы пользуетесь ssl, вам также понравится проблема с получением сертификата. Либо вы извлекаете его с сервера, либо можете следовать этим инструкциям , чтобы создать свой собственный.

5 голосов
/ 29 августа 2014

У меня была такая же проблема, и я заметил, что django-auth-ldap вообще не поддерживает SASL -> обычные текстовые пароли через соединение, если TSL недоступен.

Вот что я сделал для этой проблемы: https://github.com/susundberg/django-auth-ldap-ad

5 голосов
/ 04 января 2009

Как насчет этого? Вы пробовали это?

http://www.djangosnippets.org/snippets/501/

3 голосов
/ 19 августа 2018

Вы можете создать подкласс django-auth-ldap для добавления возможностей AD поверх SASL, Kerberos или чего-либо еще. Вот пример 2018 года, работающий в Django 2.1:

https://partofthething.com/thoughts/authenticating-and-populating-users-in-django-using-a-windows-active-directory-and-sasl/

...