在我的Gitlab的LDAP设置中,我使用了
user_filter : '(memberof=CN=%v,OU=groupname,DC=company,DC=local)
但它给了我一个错误:
格式错误的格式化字符串 - %v
我可以为CN
答案 0 :(得分:1)
正如GitLAb LDAP man page中所述,语法应仅遵循RFC 4515:
# 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: ''
在您的情况下,CN应该是组的名称,而不是像%v
这样的占位符
请参阅示例gitlab-ce issue 34150
您可以使用以下方法进行测试:
尝试在没有过滤器设置的情况下通过Rails控制台运行这组查询,然后使用过滤器集 使用
sudo gitlab-rails console
启动Rails控制台。
adapter = Gitlab::LDAP::Adapter.new('ldapmain')
person = Gitlab::LDAP::Person.find_by_uid('<username>', adapter)
person.memberof