Назад | Перейти на главную страницу

Как ограничить доступ к Gitlab по группе LDAP (с фильтром поиска LDAP)?

У меня работает установка 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)))'