0

staffdjango-ldapをActiveDirectoryサーバーで正常に動作させることができましたが、特定のユーザーをdjangoのグループの一部にしたいと思います。

特定のユーザーアカウントを指定する方法がわかりません(それは可能ですか?)ので、特定のグループのすべてのユーザーを許可することにしました。

# 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正しく設定されていないのは何かですか?

4

1 に答える 1

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にアタッチできます。

于 2012-08-30T20:41:10.813 に答える