2 LDAP

Visão geral

A autenticação LDAP externa pode ser usada para verificar nomes de usuário e senhas.

A autenticação LDAP do Zabbix funciona pelo menos com Microsoft Active Directory e OpenLDAP.

Se apenas o login LDAP estiver configurado, o usuário também deve existir no Zabbix, no entanto, sua senha do Zabbix não será usada. Se a autenticação for bem-sucedida, o Zabbix corresponderá um nome de usuário local com o atributo de nome de usuário retornado pelo LDAP.

Provisionamento de usuário

É possível configurar o provisionamento JIT (just-in-time) de usuários LDAP. Nesse caso, não é necessário que o usuário já exista no Zabbix. A conta de usuário pode ser criada quando o usuário fizer login no Zabbix pela primeira vez.

Quando um usuário LDAP informa seu login e senha LDAP, o Zabbix verifica no servidor LDAP padrão se esse usuário existe. Se o usuário existir e ainda não tiver uma conta no Zabbix, um novo usuário será criado no Zabbix e o usuário poderá fazer login.

Um usuário criado por meio do provisionamento JIT é associado ao servidor LDAP (diretório) definido como padrão no momento da criação. Alterar posteriormente o servidor LDAP padrão não altera nem atualiza o servidor LDAP vinculado aos usuários que já foram provisionados.

Se o provisionamento JIT estiver habilitado, um grupo de usuários para usuários desprovisionados deverá ser especificado na aba Authentication.

O provisionamento JIT também permite atualizar contas de usuários provisionadas com base em alterações no LDAP. Por exemplo, se um usuário for movido de um grupo LDAP para outro, o usuário também será movido de um grupo para outro no Zabbix; se um usuário for removido de um grupo LDAP, o usuário também será removido do grupo no Zabbix e, se não pertencer a nenhum outro grupo, será adicionado ao grupo de usuários para usuários desprovisionados. As contas de usuários provisionadas são atualizadas com base no período de provisionamento configurado ou quando o usuário faz login no Zabbix.

Observe que o provisionamento em segundo plano é realizado pelo frontend do Zabbix quando o usuário está interagindo com ele ou pelo menos mantém uma página do frontend aberta no navegador. Não há processos dedicados em segundo plano para provisionar usuários.

O LDAP oferece suporte a três formas de se vincular ao diretório para autenticação e pesquisas:

  • Vinculação anônima — nenhum Bind DN / Bind password é fornecido, e o servidor LDAP permite consultas anônimas.
  • Usuário de vinculação dedicado (conta de serviço) — uma conta LDAP específica é definida em Bind DN / Bind password e é usada pelo Zabbix para pesquisa e provisionamento. Esta é a opção recomendada e mais flexível, porque o Zabbix pode realizar pesquisas e provisionamento em segundo plano sem as credenciais do usuário final.
  • Vinculação direta do usuário — o Zabbix realiza a vinculação usando as credenciais que o usuário informa no login (sem Bind DN / Bind password configurados); isso é configurado incluindo um placeholder como uid=%{user} no Base DN. Nesse modo, o Zabbix só tem acesso à senha do usuário durante o login interativo. Como resultado, ações de provisionamento que exigem autenticação no LDAP fora da sessão de login do usuário (por exemplo, usar o botão Provision now ou executar o provisionamento em segundo plano quando o usuário não estiver ativamente conectado) não podem se autenticar e, portanto, não funcionarão. O provisionamento e as atualizações para vinculação direta do usuário ocorrem somente no momento em que o usuário faz login.

Vários servidores

Vários servidores LDAP podem ser definidos, se necessário. Por exemplo, um servidor diferente pode ser usado para autenticar um grupo de usuários diferente. Uma vez que os servidores LDAP estejam configurados, na configuração do grupo de usuários torna-se possível selecionar o servidor LDAP necessário para o respectivo grupo de usuários.

Se um usuário estiver em vários grupos de usuários e vários servidores LDAP, o primeiro servidor na lista de servidores LDAP ordenados por nome em ordem crescente será usado para autenticação.

Configuração

Parâmetros de configuração:

Parâmetro Descrição
Habilitar autenticação LDAP Marque a caixa de seleção para habilitar a autenticação LDAP.
Habilitar provisionamento JIT Marque a caixa de seleção para habilitar o provisionamento JIT.
Servidores Clique em Adicionar para configurar um servidor LDAP (veja Configuração do servidor LDAP abaixo).
Login com diferenciação de maiúsculas/minúsculas Desmarque a caixa de seleção para desabilitar o login com diferenciação de maiúsculas/minúsculas para nomes de usuário (habilitado por padrão).
Desabilitar o login com diferenciação de maiúsculas/minúsculas permite, por exemplo, fazer login como "admin" mesmo que o usuário do Zabbix seja "Admin" ou "ADMIN".
Observe que, se o login com diferenciação de maiúsculas/minúsculas estiver desabilitado e houver vários usuários do Zabbix com nomes de usuário semelhantes (por exemplo, Admin e admin), o login para esses usuários sempre será negado com a seguinte mensagem de erro: "Falha na autenticação: as credenciais fornecidas não são exclusivas."
Período de provisionamento Defina o período de provisionamento, ou seja, com que frequência o usuário logado será provisionado enquanto estiver trabalhando com o frontend.

Configuração do servidor LDAP

Parâmetros de configuração do servidor LDAP:

Parâmetro Descrição
Name Nome do servidor LDAP na configuração do Zabbix.
Host Nome do host, IP ou URI do servidor LDAP. Exemplos: ldap.example.com, 127.0.0.1, ldap://ldap.example.com
Para servidor LDAP seguro, use o protocolo ldaps e o nome do host. Exemplo: ldaps://ldap.example.com
Com OpenLDAP 2.x.x e posteriores, pode ser usada uma URI LDAP completa no formato ldap://hostname:port ou ldaps://hostname:port.
Port Porta do servidor LDAP. O padrão é 389.
Para conexão LDAP segura, o número da porta normalmente é 636.
Não é usada ao utilizar URIs LDAP completas.
Base DN Caminho base para as contas de usuário no servidor LDAP:
ou=Users,ou=system (para OpenLDAP),
DC=company,DC=com (para Microsoft Active Directory)
uid=%{user},dc=example,dc=com (para vinculação direta de usuário, veja a observação abaixo)
Search attribute Atributo da conta LDAP usado para pesquisa:
uid (para OpenLDAP),
sAMAccountName (para Microsoft Active Directory)
Bind DN Conta LDAP para vinculação e pesquisa no servidor LDAP, exemplos:
uid=ldap_search,ou=system (para OpenLDAP),
CN=ldap_search,OU=user_group,DC=company,DC=com (para Microsoft Active Directory)
A vinculação anônima também é suportada. Observe que a vinculação anônima potencialmente expõe a configuração do domínio a usuários não autorizados (informações sobre usuários, computadores, servidores, grupos, serviços etc.). Por motivos de segurança, desative vinculações anônimas em hosts LDAP e use acesso autenticado em vez disso.
Bind password Senha LDAP da conta usada para vinculação e pesquisa no servidor LDAP.
Description Descrição do servidor LDAP.
Configure JIT provisioning Marque esta caixa de seleção para exibir opções relacionadas ao provisionamento JIT.
Group configuration Selecione o método de configuração de grupo:
memberOf - pesquisando usuários e o atributo de associação a grupos deles
groupOfNames - pesquisando grupos por meio do atributo member
Observe que memberOf é preferível por ser mais rápido; use groupOfNames se o seu servidor LDAP não suportar memberOf ou se for necessário filtrar grupos.
Group name attribute Especifique o atributo para obter o nome do grupo de todos os objetos no atributo memberOf (veja o campo User group membership attribute)
O nome do grupo é necessário para o mapeamento de grupos de usuários.
User group membership attribute Especifique o atributo que contém informações sobre os grupos aos quais o usuário pertence (por exemplo, memberOf).
Por exemplo, o atributo memberOf pode conter informações como esta: memberOf=cn=zabbix-admin,ou=Groups,dc=example,dc=com
Este campo está disponível apenas para o método memberOf.
User name attribute Especifique o atributo que contém o primeiro nome do usuário.
User last name attribute Especifique o atributo que contém o sobrenome do usuário.
User group mapping Mapeie um padrão de grupo de usuário LDAP para um grupo de usuários do Zabbix e uma função de usuário.
Isso é necessário para determinar qual grupo/função de usuário o usuário provisionado receberá no Zabbix.
Clique em Add para adicionar um mapeamento.
O campo LDAP group pattern suporta curingas. O nome do grupo deve corresponder a um grupo existente.
Se um usuário LDAP corresponder a vários grupos de usuários do Zabbix, o usuário se tornará membro de todos eles.
Se um usuário corresponder a várias funções de usuário do Zabbix, ele receberá aquela com o nível de permissão mais alto entre elas.
Media type mapping Mapeie os atributos LDAP de mídia do usuário (por exemplo, email) para mídias de usuário do Zabbix para envio de notificações (o valor do atributo é usado como o campo Send to da mídia).
Advanced configuration Clique no cabeçalho Advanced configuration para exibir opções avançadas de configuração (veja abaixo).
StartTLS Marque a caixa de seleção para usar a operação StartTLS ao conectar ao servidor LDAP. A conexão falhará se o servidor não suportar StartTLS.
StartTLS não pode ser usado com servidores que utilizam o protocolo ldaps.
Search filter Defina uma string personalizada ao autenticar um usuário no LDAP. Os seguintes placeholders são suportados:
%{attr} - nome do atributo de pesquisa (uid, sAMAccountName)
%{user} - valor do nome de usuário a ser autenticado
Por exemplo, para realizar uma pesquisa sensível a maiúsculas e minúsculas em um ambiente LDAP ou Microsoft Active Directory que não diferencia maiúsculas de minúsculas, a string pode ser definida da seguinte forma:
(%{attr}:caseExactMatch:=%{user}).
Se o filtro não for personalizado, o LDAP usará o padrão: (%{attr}=%{user}).

Para configurar um servidor LDAP para vinculação direta de usuário, acrescente um atributo uid=%{user} ao parâmetro Base DN (por exemplo,uid=%{user},dc=example,dc=com) e deixe os parâmetros BindDN e Bind password vazios. Ao autenticar, um placeholder %{user} será substituído pelo nome de usuário informado durante o login.
Com vinculação direta de usuário, o Zabbix só tem acesso às credenciais do usuário durante o login interativo. Portanto, tarefas de provisionamento que operam sem um login interativo (por exemplo, o botão Provision now ou o método de API user.provision) ignorarão usuários que se autenticam usando vinculação direta de usuário, porque o Zabbix não pode se vincular em nome deles. Use vinculação anônima ou um usuário de vinculação dedicado (conta de serviço) se você precisar que o provisionamento e as pesquisas LDAP funcionem a partir do frontend sem exigir que o usuário final esteja conectado.

Os campos a seguir são específicos de "groupOfNames" como método de Group configuration:

Parâmetro Descrição
Group base DN Caminho base para os grupos no servidor LDAP.
Group name attribute Especifique o atributo para obter o nome do grupo no caminho base especificado para grupos.
O nome do grupo é necessário para o mapeamento de grupos de usuários.
Group member attribute Especifique o atributo que contém informações sobre os membros do grupo no LDAP (por exemplo, member).
Reference attribute Especifique o atributo de referência para o filtro de grupo (veja o campo Group filter).
Em seguida, use %{ref} no filtro de grupo para obter valores do atributo especificado aqui.
Group filter Especifique o filtro para recuperar o grupo do qual o usuário é membro.
Por exemplo, (member=uid=%{ref},ou=Users,dc=example,dc=com) corresponderá a "User1" se o atributo member do grupo for uid=User1,ou=Users,dc=example,dc=com e retornará o grupo do qual "User1" é membro.

Em caso de problemas com certificados, para fazer uma conexão LDAP segura (ldaps) funcionar, talvez seja necessário adicionar uma linha TLS_REQCERT allow ao arquivo de configuração /etc/openldap/ldap.conf. Isso pode reduzir a segurança da conexão com o catálogo LDAP.

Recomenda-se criar uma conta LDAP separada (Bind DN) para realizar vinculação e pesquisa no servidor LDAP com privilégios mínimos no LDAP, em vez de usar contas reais de usuários (usadas para fazer login no frontend do Zabbix).
Essa abordagem oferece mais segurança e não exige a alteração da Bind password quando o usuário altera sua própria senha no servidor LDAP.
Na tabela acima, esse é o nome da conta ldap_search.

Testando o acesso

O botão Testar permite testar o acesso do usuário:

Parâmetro Descrição
Login Nome de usuário LDAP a ser testado (preenchido com o nome de usuário atual do frontend do Zabbix). Este nome de usuário deve existir no servidor LDAP.
O Zabbix não ativará a autenticação LDAP se não conseguir autenticar o usuário de teste.
Senha do usuário Senha do usuário LDAP a ser testada.