多LDAP后端配置
1.1版新特性
你也许注意到了,之前我们所有的配置都有AUTH_LDAP_
前缀,这是默认选项,也可以通过继承LDAPBackend
来进行自定义配置。这么做的主要情形就是你需要创建2个分别可以操作的后端时。比如,你需要2个LDAP后端分别进行认证的时候,这里有个简短的例子:
# mypackage.ldap
from django_auth_ldap.backend import LDAPBackend
class LDAPBackend1(LDAPBackend):
settings_prefix = "AUTH_LDAP_1_"
class LDAPBackend2(LDAPBackend):
settings_prefix = "AUTH_LDAP_2_"
# settings.py
AUTH_LDAP_1_SERVER_URI = "ldap://ldap1.example.com"
AUTH_LDAP_1_USER_DN_TEMPLATE = "uid=%(user)s,ou=users,dc=example,dc=com"
AUTH_LDAP_2_SERVER_URI = "ldap://ldap2.example.com"
AUTH_LDAP_2_USER_DN_TEMPLATE = "uid=%(user)s,ou=users,dc=example,dc=com"
AUTHENTICATION_BACKENDS = (
"mypackage.ldap.LDAPBackend1",
"mypackage.ldap.LDAPBackend2",
)
常见规则如下:Django将尝试对每一个后端进行认证,直到验证成功。当用户在某个特定的后端验证成功,在这个会话的有效期内这个用户都会被链接到这个后端上。
注意:由于
AUTH_LDAP_GLOBAL_OPTIONS
具有全局特性,所以它将忽略设置的前缀。不管有多少个后端,这个属性只在第一次载入LDAP模块时被设置。