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

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

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

我想要实现的基本想法是,任何描述中带有“IT - 帮助台”的 LDAP 用户都会映射到某个 Django 组,描述中带有“管理员”的用户会转到另一个 Django 组,其他任何人都不允许加入。

(由于遗留原因我必须使用描述字段,因此这不是一个可以更改的选项)

更新:后续对话的部分内容已移至在这里

答案1

django-auth-ldap 1.0.9(发布于 3/27)添加了一对 Django 信号,客户端可以使用它们对用户和配置文件对象进行一些自定义填充。我建议连接到填充用户信号并使用 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,因为该信号是在所有内置用户填充完成后发送的。

相关内容