【问题标题】:setting specific users as staff users with django ldap使用 django ldap 将特定用户设置为员工用户
【发布时间】:2012-08-30 16:02:55
【问题描述】:

我已经成功地让 django-ldap 与我的活动目录服务器一起工作,但是现在我想让某些用户成为 django 的staff 组的一部分。

我不知道如何指定特定的用户帐户(这可能吗?),所以我决定只允许特定组的任何人:

# Set up the basic group parameters.
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("OU=mygroup,OU=users,DC=myserver",
    ldap.SCOPE_SUBTREE, "(objectClass=memberOf)"
)
AUTH_LDAP_GROUP_TYPE = ActiveDirectoryGroupType()
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
    "is_active": "OU=mygroup,OU=users,DC=myserver",
    "is_staff": "OU=mygroup,OU=users,DC=myserver",
}

# This is the default, but I like to be explicit.
AUTH_LDAP_ALWAYS_UPDATE_USER = True

# Use LDAP group membership to calculate group permissions.
AUTH_LDAP_FIND_GROUP_PERMS = True

# Cache group memberships for an hour to minimize LDAP traffic
AUTH_LDAP_CACHE_GROUPS = True
AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600

不幸的是,这个配置不起作用,这是日志条目:

CN=my_user,OU=mygroup,OU=users,DC=myserver is not a member of OU=mygroup,OU=users,DC=myserver

我真的不明白问题出在哪里,因为组成员船是相同的。是不是 AUTH_LDAP_GROUP_SEARCH 配置不正确?

【问题讨论】:

    标签: django ldap django-authentication


    【解决方案1】:

    组成员身份,正如 django-auth-ldap 使用的术语,与目录树结构没有任何关系。从这个意义上说,CN=my_user,OU=mygroup,OU=users,DC=myserver 不是OU=mygroup,OU=users,DC=myserver 的成员,它恰好是一个子DN。如果要根据任意属性(包括 DN)分配 Django 用户属性,可以将信号处理程序附加到 django_auth_ldap.backend.populate_user

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-15
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多