我有一个运行Gitlab CE安装LDAP身份validation。 现在我想限制基于组成员资格的访问。
选项user_filter
似乎是一个select。 但是,我似乎无法让任何人被允许根据组成员login。
我试过的是( gitlabaccess
是应该被允许login的组):
user_filter: '(&(objectclass=group)(samaccountname=gitlabaccess))'
要么:
user_filter: '(memberOf=cn=gitlabaccess,DC=my,DC=domain,DC=com)'
该文件声明以下,但它也不起作用,我不知道应该是什么数字:
user_filter: '(memberOf:1.2.840.113556.1.4.1941:=cn=gitlabaccess,DC=my,DC=domain,DC=com)'
特定用户的工作是这样的:
user_filter: '(&(objectclass=user)(samaccountname=jon.doe))'
从omnibus软件包安装的Gitlab CE版本9.5.5。
如何限制基于LDAP组成员资格的访问Gitlab?
我想到了。 您需要指定与所有OU的组的整个path。 在我的情况是这样的:
user_filter: '(&(objectClass=user)(memberOf=CN=gitlabaccess,OU=mail-distribution-groups,OU=staff,DC=my,DC=domain,DC=com))'
正如在评论中指出的那样,上面的查询只返回组的直接成员。 如果你还想包含嵌套组的成员,你将不得不添加:1.2.840.113556.1.4.1941:
到memberOf
像这样:
user_filter: '(&(objectClass=user)(memberOf:1.2.840.113556.1.4.1941:=CN=gitlabaccess,OU=mail-distribution-groups,OU=staff,DC=my,DC=domain,DC=com))'
如果你想添加一个特定的用户,使用这个:
user_filter: '(|(&(objectClass=user)(memberOf=CN=gitlabaccess,OU=mail-distribution-groups,OU=staff,DC=my,DC=domain,DC=com))(&(objectClass=user)(sAMAccountName=jon.doe)))'