29

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

有没有人有一个很好的例子?

4

5 回答 5

10

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

通过 SSL 对 Active Directory (LDAP) 进行身份验证

于 2009-01-04T14:42:18.460 回答
10

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,那么获取证书的问题也会很好解决。您可以从服务器中提取它,也可以按照这些说明生成您自己的。

于 2011-10-27T09:55:43.177 回答
5

那个怎么样?你试过那个吗?

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

于 2009-01-04T03:44:56.040 回答
5

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

这是我为这个问题所做的: https ://github.com/susundberg/django-auth-ldap-ad

于 2014-08-29T13:44:53.327 回答
4

您可以对django-auth-ldap后端进行子类化,以使用 SASL 或 Kerberos 或其他方式添加 AD 功能。这是一个在 Django 2.1 中工作的 2018 年示例:

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

于 2018-08-19T15:27:30.907 回答