我正在公司环境中开发基于 Django 的应用程序,并希望使用现有的 Active Directory 系统对用户进行身份验证(因此他们不会再获得另一个登录名/密码组合)。我还想继续使用 Django 的用户授权/权限系统来管理用户能力。
有没有人有一个很好的例子?
我正在公司环境中开发基于 Django 的应用程序,并希望使用现有的 Active Directory 系统对用户进行身份验证(因此他们不会再获得另一个登录名/密码组合)。我还想继续使用 Django 的用户授权/权限系统来管理用户能力。
有没有人有一个很好的例子?
这是另一个更新的片段(2008 年 7 月,2015 年 12 月更新):
Jeff 提供的链接确实有效,尽管它假设您有一个默认组,用户被添加到其中。我只是替换:
group=Group.objects.get(pk=1)
经过
group,created=Group.objects.get_or_create(name="everyone")
如果您想要更紧密的集成和更多功能,还有django-auth-ldap可以让您更好地控制 ldap 用户/组如何映射到 django 用户/组。
为了调试 ldap 连接,我发现这篇博文很有用,特别是使用 ldap-utils 测试 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 不可用,则连接上的纯文本密码。
这是我为这个问题所做的: https ://github.com/susundberg/django-auth-ldap-ad
您可以对django-auth-ldap
后端进行子类化,以使用 SASL 或 Kerberos 或其他方式添加 AD 功能。这是一个在 Django 2.1 中工作的 2018 年示例: