Como restringir o acesso ao Gitlab pelo grupo LDAP (com filtro de pesquisa LDAP)?

5

Eu tenho uma instalação do Gitlab CE em execução com autenticação LDAP. Agora quero restringir o acesso com base na participação em grupos.

A opção user_filter parece ser a opção a seguir. No entanto, parece que não consigo permitir que ninguém faça login com base na associação ao grupo.

O que eu tentei é isso ( gitlabaccess sendo o grupo que deve ter permissão para fazer o login):

user_filter: '(&(objectclass=group)(samaccountname=gitlabaccess))'

ou:

user_filter: '(memberOf=cn=gitlabaccess,DC=my,DC=domain,DC=com)'

O documentação indica o seguinte, mas também não funciona e não tenho idéia do que os números devem ser:

user_filter: '(memberOf:1.2.840.113556.1.4.1941:=cn=gitlabaccess,DC=my,DC=domain,DC=com)'

Usuários específicos trabalham assim:

user_filter: '(&(objectclass=user)(samaccountname=jon.doe))'

Gitlab CE versão 9.5.5 instalado a partir do pacote omnibus.

Como alguém pode restringir o acesso ao Gitlab com base na associação do grupo LDAP?

    
por Sethos II 18.09.2017 / 10:09

1 resposta

3

Eu percebi isso. Você precisa especificar o caminho completo para o grupo com todas as OUs. No meu caso, isso foi:

user_filter: '(&(objectClass=user)(memberOf=CN=gitlabaccess,OU=mail-distribution-groups,OU=staff,DC=my,DC=domain,DC=com))'

Como apontado no comentários , a consulta acima somente retorna membros diretos do grupo. Se você também quiser incluir membros de grupos aninhados, você terá que adicionar :1.2.840.113556.1.4.1941: a memberOf da seguinte forma:

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))'

Se você quiser adicionar um usuário específico, use este:

user_filter: '(|(&(objectClass=user)(memberOf=CN=gitlabaccess,OU=mail-distribution-groups,OU=staff,DC=my,DC=domain,DC=com))(&(objectClass=user)(sAMAccountName=jon.doe)))'
    
por 04.10.2017 / 14:55

Tags