Python 使用AD作为Django的身份验证

Python 使用AD作为Django的身份验证,python,django,active-directory,ldap,Python,Django,Active Directory,Ldap,我正在公司环境中开发一个基于Django的应用程序,并希望使用现有的Active Directory系统对用户进行身份验证(这样他们就不会获得另一个登录/密码组合)。我还想继续使用Django的用户授权/许可系统来管理用户功能 有谁有这样的好例子吗 怎么样?你试过那个吗 这里是另一个最近的片段(2008年7月,2015年12月更新): Jeff提供的链接确实有效,尽管它假定您有一个默认组,您有一个添加用户的组。我只是简单地替换了: group=Group.objects.get(pk=1) 借

我正在公司环境中开发一个基于Django的应用程序,并希望使用现有的Active Directory系统对用户进行身份验证(这样他们就不会获得另一个登录/密码组合)。我还想继续使用Django的用户授权/许可系统来管理用户功能


有谁有这样的好例子吗

怎么样?你试过那个吗


这里是另一个最近的片段(2008年7月,2015年12月更新):


Jeff提供的链接确实有效,尽管它假定您有一个默认组,您有一个添加用户的组。我只是简单地替换了:

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

如果您想要更紧密的集成和更多的功能,还可以通过这些功能更好地控制ldap用户/组映射到django用户/组的方式

对于调试ldap连接,我发现非常有用,特别是用于使用ldap UTIL测试ldap连接的命令:

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,那么获得证书的问题也会很好地解决。您可以从服务器中提取它,也可以根据它生成自己的密码。

我也遇到了同样的问题,并注意到django auth ldap根本不支持SASL->如果TSL不可用,则通过连接使用纯文本密码

以下是我为解决该问题所做的:

您可以将
django auth ldap
后端子类化,通过SASL或Kerberos或其他方式添加广告功能。以下是使用Django 2.1的2018示例:


Django的广告认证是否有更新?我正在使用Django 1.5。谢谢
ldapsearch -H ldaps://ldap-x.companygroup.local:636 -D "CN=Something LDAP,OU=Random Group,DC=companygroup,DC=local" -w "p4ssw0rd" -v -d 1