2012-08-30 64 views
0

我已經成功地設法讓Django的LDAP與我的Active Directory服務器的工作,但現在我想使Django的staff組的某些用戶的一部分。設置特定的用戶爲用戶的工作人員和Django LDAP

我不看我怎麼可以指定特定的用戶帳戶(這可能嗎?),所以我決定只允許特定組中的任何一個:

# 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

回答

1

組成員,作爲Django的認證 - 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

相關問題