2012-08-30 3 views
0

django-ldap을 활성 디렉토리 서버에서 성공적으로 관리 할 수있게되었지만 지금은 특정 사용자를 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-auth-ldap에서 사용하는 그룹 구성원은 디렉토리 트리 구조와 관련이 없습니다. CN=my_user,OU=mygroup,OU=users,DC=myserver은이 의미에서 OU=mygroup,OU=users,DC=myserver의 구성원이 아니며 단지 하위 DN 일뿐입니다. 임의의 속성 (DN 포함)을 기반으로 장고 사용자 속성을 지정하려면 django_auth_ldap.backend.populate_user에 신호 처리기를 연결할 수 있습니다.

관련 문제