Tec*_*ard 27 python django ldap active-directory
我正在企业环境中开发基于Django的应用程序,并希望使用现有的Active Directory系统来验证用户(因此他们没有获得另一个登录/密码组合).我还想继续使用Django的用户授权/权限系统来管理用户功能.
有没有人有这方面的好例子?
dgo*_*sen 10
Jeff提供的链接确实有效,但它假设您有一个默认组,其中添加了用户.我简单地换了:
group=Group.objects.get(pk=1)
Run Code Online (Sandbox Code Playgroud)
通过
group,created=Group.objects.get_or_create(name="everyone")
Run Code Online (Sandbox Code Playgroud)
如果您想要更紧密的集成和更多功能,还有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
Run Code Online (Sandbox Code Playgroud)
如果您正在使用ssl,那么获取证书的问题也会很好.您可以从服务器中提取它,也可以按照这些说明生成自己的指令.
我遇到了同样的问题,并注意到django-auth-ldap根本不支持SASL->如果TSL不可用,则通过连接提供纯文本密码。
这是我为该问题所做的事情:https : //github.com/susundberg/django-auth-ldap-ad
您可以对django-auth-ldap后端进行子类化,以使用 SASL 或 Kerberos 等添加 AD 功能。这是在 Django 2.1 中运行的 2018 年示例: