【问题标题】:Need help setting value for "is_staff" and "is_superuser" for Django LDAP authenticated users需要帮助为 Django LDAP 身份验证用户设置“is_staff”和“is_superuser”的值
【发布时间】:2020-01-15 02:05:52
【问题描述】:

我是 Django 和 LDAP 的新手。我正在创建一个使用 LDAP 身份验证作为登录系统的 Django 应用程序。我能够连接到 LDAP 服务器并使用来自 LDAP 的预先存在的帐户进行身份验证,然后填充我的 MySQL 数据库 auth_user 表以具有像 this 这样的数据行:

所以我的问题是如何将“is_staff”和“is_superuser”的值设置为 1?

-- settings.py 中的 LDAP 设置 --

AUTH_LDAP_SERVER_URI = "ldap://ldap.m*****.com.my:389"
AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
AUTH_LDAP_USER_SEARCH = LDAPSearch("o=m*****net", ldap.SCOPE_SUBTREE, "(uid=%(user)s)")

AUTH_LDAP_USER_ATTR_MAP = {
    "first_name": "givenName",
    "last_name": "sn",
    "email": "mail",
}

AUTHENTICATION_BACKENDS = (
    'django_auth_ldap.backend.LDAPBackend',
    'django.contrib.auth.backends.ModelBackend',
    )

# logging
logger = logging.getLogger('django_auth_ldap')
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)

【问题讨论】:

    标签: django ldap


    【解决方案1】:

    设置AUTH_LDAP_USER_FLAGS_BY_GROUP 可用于将组与用户标志匹配

    AUTH_LDAP_USER_FLAGS_BY_GROUP = {
        "is_active": "cn=active,ou=django,ou=groups,dc=example,dc=com",
        "is_staff": "cn=staff,ou=django,ou=groups,dc=example,dc=com",
        "is_superuser": "cn=superuser,ou=django,ou=groups,dc=example,dc=com",
    }
    

    【讨论】:

    • 感谢您的回复。我试过了,但我得到了这个错误:AUTH_LDAP_GROUP_TYPE 必须是一个 LDAPGroupType 实例。知道如何解决这个问题吗?
    • 示例配置可能是一个好的开始,您可以复制该设置,因为它只是在“cn”上搜索django-auth-ldap.readthedocs.io/en/latest/example.html
    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 2012-03-18
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 2010-11-23
    相关资源
    最近更新 更多