У меня работает установка Gitlab CE с аутентификацией LDAP. Теперь я хочу ограничить доступ на основе членства в группе.
Опция user_filter
кажется вариант пойти с. Однако я не могу заставить кого-либо войти в систему на основе членства в группе.
Я пробовал это (gitlabaccess
группа, которой должен быть разрешен вход):
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))'
Gitlab CE версии 9.5.5 устанавливается из омнибусного пакета.
Как можно ограничить доступ к Gitlab на основе членства в группе LDAP?
Я понял. Вам нужно указать весь путь к группе со всеми OU. В моем случае это было:
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)))'