Python LDAP验证:OU(组织单位)中的变量

Python LDAP验证:OU(组织单位)中的变量,python,authentication,ldap,django-auth-ldap,Python,Authentication,Ldap,Django Auth Ldap,我正在使用django auth ldap库,一切正常。我正在使用AUTH\u LDAP\u USER\u DN\u模板进行直接绑定 用户的CN有这样的格式:“department.name”。部门是由5个字符组成的代码 DN的模板是这样形成的: AUTH_LDAP_USER_DN_TEMPLATE = 'CN=%(user)s,ou=Department,ou=Users,dc=example,dc=com' 用户的占位符正在工作。问题是部门OU是可变的。这取决于用户CN。由于这个库不允许为

我正在使用django auth ldap库,一切正常。我正在使用AUTH\u LDAP\u USER\u DN\u模板进行直接绑定

用户的CN有这样的格式:“department.name”。部门是由5个字符组成的代码

DN的模板是这样形成的:

AUTH_LDAP_USER_DN_TEMPLATE = 'CN=%(user)s,ou=Department,ou=Users,dc=example,dc=com'
用户的占位符正在工作。问题是部门OU是可变的。这取决于用户CN。由于这个库不允许为部门设置第二个占位符,我不知道该怎么办。当我为department设置一个固定字符串时,一切都正常工作,但是我无法验证来自其他部门的用户

有人有办法解决这个问题吗


提前感谢。

由于我的用户的CN格式是department.user,并且所有部门代码都由5个字符组成,因此我开发了这个适合我的解决方案:

AUTH_LDAP_USER_DN_TEMPLATE = 'CN=%(user)s,ou=%(user).5s,ou=Users,dc=example,dc=com'

注意第一个OU中的.5

很难相信它只包含一个占位符。您是否尝试过
%(部门)
并提供一个名为
部门
的淡水河谷?您是对的。为此,我必须更改django_auth_ldap的原始backend.py。我不确定这是否是一个好的做法。是否可以,或者是否有其他自定义身份验证方式?