django-auth-ldap新创建的用户

时间:2017-05-15 13:00:40

标签: django django-authentication django-auth-ldap

我有一个Django应用程序,它有两个身份验证后端,一个LDAP后端,所有内部'用户和具有'外部'的自定义后端用户。应使用is_staff创建与LDAP组搜索过滤器匹配的所有内部用户:True

以前,我们使用

AUTH_LDAP_USER_ATTR_MAP = {
    "name": "cn",
    "email": "mail",
    "is_staff": "mail",
}

这似乎工作正常,但是使用Django 1.10我们现在得到:

django.core.exceptions.ValidationError: ["'me@example.com' value must be either True or False."]

我知道我可以搜索群组成员资格并将其与is_staff相匹配,但基本上我希望针对LDAP进行身份验证的用户所有帐户自动设置为is_staff:{{ 1}}。

有没有正确的方法呢?我知道我可以通过挂钩True信号来修复它,但之后用户已经创建,最好我想在创建之前修改用户

1 个答案:

答案 0 :(得分:0)

正确实施可能采用AUTH_LDAP_USER_FLAGS_BY_GROUP设置,如下所示:http://pythonhosted.org/django-auth-ldap/users.html#easy-attributes

具体来说,如果您可以识别所有用户所属的组,则可以使用以下内容:

AUTH_LDAP_USER_FLAGS_BY_GROUP = {
    "is_staff": "cn=users,ou=groups,dc=example,dc=com"
}