非常。我正在使用django-python3-ldap来验证django应用程序的用户。 我们希望做到这一点,以便只有部分用户可以访问我们的django应用程序,因此昨天他们添加了安全组“ MyAppGroup”。唯一的问题是,我似乎无法将其添加到搜索库中。用户查找总是失败。
有效的搜索基础(返回所有用户):
"ou=Basic Users, ou=BIGAPP Users,dc=subd,dc=domain,dc=com"
当我问时,他们说MyAppGroup是一个安全组,“基本用户”和“ BIGAPP用户”是“ AD成员”。
dsquery group -name "MyAppGroup"
返回:
CN=MyAppGroup,OU=BIGAPP Groups,dc=subd,dc=domain,dc=com
此结果不能作为搜索基础。 我是否需要添加自定义搜索过滤器才能正常工作?任何帮助表示赞赏。
编辑:现在将(&(memberOf = BIGAPPS组)(memberOf = cn = MyAppGroup))添加到搜索过滤器将返回“ LDAP用户属性为空”
编辑2:
运行命令dsget group "CN=MyAppGroup,OU=BIGAPP Groups,dc=subd,dc=domain,dc=com" -members -expand
返回一个组成员列表:
“ CN =用户McLastname,OU =基本用户,OU = BIGAPP组,dc = subd,dc =域,dc = com” “ CN = User2姓氏,OU =基本用户,OU = BIGAPP组,dc = subd,dc =域,dc = com”,。etc
所以我知道这个小组存在。我觉得我缺少一些小东西来完成这项工作。
编辑3:
LDAP_AUTH_FORMAT_USERNAME = "django_python3_ldap.utils.format_username_active_directory"
LDAP_AUTH_USE_TLS = True
LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN = "SUBD"
LDAP_AUTH_SEARCH_BASE="DC=subd,DC=domain,DC=com"
LDAP_AUTH_OBJECT_CLASS="user"
LDAP_AUTH_USER_FIELDS = {
"username": "sAMAccountName,
"first_name": "givenName",
"last_name": "sn",
"email": "mail",
}
LDAP_AUTH_FORMAT_SEARCH_FILTERS="myapp.searchfilter.myapp_search_filters"
搜索过滤器
def myapp_search_filters(ldap_fields):
search_filters = format_search_filters(ldap_fields)
search_filters.append("(&(memberOf=cn=MyAppGroup,OU=BIGAPP_Group,DC=subd,DC=domain,dc=com))")
答案 0 :(得分:1)
在memberOf过滤器中使用组的标准DN:(&(memberOf=CN=MyAppGroup,OU=BIGAPP Groups,dc=subd,dc=domain,dc=com))