Django LDAP – 如何将描述字段映射到Django组

我正在尝试使用Django-Auth来设置我的Django应用程序的LDAP身份validation

我想要做的基本想法是任何在描述中都有“IT – 帮助台”的LDAP用户将映射到某个Django组,具有描述中的“Admin”的用户将转到另一个Django组,其他任何人都不会不得进入。

(有遗留的原因,我必须使用说明字段,所以这不是一个选项来改变)

更新:后续对话的一些部分移到这里 。

django-auth-ldap 1.0.9(3/27发布)添加了一对Django信号,客户可以使用它来自定义一些用户和configuration文件对象。 我build议连接到populate_user信号并使用LDAP属性来更新用户的组成员资格。 例如:

import django_auth_ldap.backend def update_groups(sender, user=None, ldap_user=None, **kwargs): # Remember that every attribute maps to a list of values descriptions = ldap_user.attrs.get("description", []) if "IT - Help Desk" in descriptions: # Add user to group else: # Remove user from group django_auth_ldap.backend.populate_user.connect(update_groups) 

与AUTH_LDAP_MIRROR_GROUPS结合使用甚至是安全的,因为信号是在所有内置用户填充完成后发送的。