首页 > 解决方案 > user_filter vs base 限制对 LDAP 用户的访问

问题描述

documentationGitlab 中,对 LDAP 用户的限制可以base通过user_filter. 所以我的问题是:

  1. 有什么用base
  2. gitlab 中何时使用base和何时使用user_filter来限制 LDAP 用户。

标签: ldapgitlab

解决方案


base指定搜索的起点,其值是数据库中存在的专有名称。

这与 ldapsearch 中的 user_filter 不同,后者是一个搜索过滤器

(&(objectClass=person)(objectClass=user))

所以 GitLab 会将user_filter指令翻译成objectClass=userldap 搜索过滤器。
但这仅适用base.

GitLab LDAP 配置显示了一个示例:

##
## Filter LDAP users
##
##   Format: RFC 4515 https://tools.ietf.org/search/rfc4515
##   Ex. (employeeType=developer)
##
##   Note: GitLab does not support omniauth-ldap's custom filter syntax.
##
##   Example for getting only specific users:
##   '(&(objectclass=user)(|(samaccountname=momo)(samaccountname=toto)))'
##
user_filter: ''

因此请查看RFC 4515,但是:
另请参阅issue 14464

GItLab 会自动将您指定的过滤器与用户的 uid 连接起来。
去掉 uid 部分,只使用 user_filter:

'memberOf=CN=gitlab,DC=test,DC=com'

推荐阅读