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 deverá existir no Zabbix, porém, 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ários
É possível configurar o provisionamento de usuários JIT (just-in-time) para usuários LDAP. Nesse caso, não é necessário que um 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 ele 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 o servidor LDAP padrão posteriormente 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 Autenticação.
O provisionamento JIT também permite que as contas de usuários provisionados sejam atualizadas com base nas alterações no LDAP. Por exemplo, se um usuário for movido de um grupo LDAP para outro, ele também será movido de um grupo para outro no Zabbix; se um usuário for removido de um grupo LDAP, ele 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 provisionados 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 quando há pelo menos uma página do frontend aberta no navegador. Não há processos dedicados em segundo plano para provisionar usuários.
O LDAP oferece três formas de vinculação 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 pesquisas e provisionamento. Essa é a opção recomendada e mais flexível, pois 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 informadas pelo usuário no login (nenhum Bind DN / Bind password configurado); 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, as ações de provisionamento que exigem autenticação no LDAP fora da sessão de login do usuário (por exemplo, usando o botão Provision now ou executando o provisionamento em segundo plano quando o usuário não está conectado ativamente) não podem realizar a autenticação e, portanto, não funcionarão. O provisionamento e as atualizações para a 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 (consulte Configuração do servidor LDAP abaixo). |
| Login com distinção entre maiúsculas e minúsculas | Desmarque a caixa de seleção para desabilitar a distinção entre maiúsculas e minúsculas nos nomes de usuário (habilitada por padrão). Desabilitar a distinção entre maiúsculas e minúsculas no login permite, por exemplo, fazer login como "admin" mesmo que o usuário do Zabbix seja "Admin" ou "ADMIN". Observe que, se a distinção entre maiúsculas e minúsculas no login estiver desabilitada e houver vários usuários do Zabbix com nomes de usuário semelhantes (por exemplo, Admin e admin), o login desses usuários será sempre 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 conectado 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 |
|---|---|
| Nome | 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 um servidor LDAP seguro, use o protocolo ldaps e o nome do host. Exemplo: ldaps://ldap.example.com Com o OpenLDAP 2.x.x e versões posteriores, uma URI LDAP completa no formato ldap://hostname:port ou ldaps://hostname:port pode ser usada. |
| Porta | Porta do servidor LDAP. O padrão é 389. Para conexões LDAP seguras, o número da porta normalmente é 636. Não é usada ao utilizar URIs LDAP completas. |
| DN base | 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; consulte a observação abaixo) |
| Atributo de pesquisa | Atributo da conta LDAP usado para pesquisa: uid (para OpenLDAP), sAMAccountName (para Microsoft Active Directory) |
| DN de vinculação | Conta LDAP usada 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 é compatível. Observe que a vinculação anônima pode expor 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 nos hosts LDAP e use acesso autenticado. |
| Senha de vinculação | Senha LDAP da conta usada para vinculação e pesquisa no servidor LDAP. |
| Descrição | Descrição do servidor LDAP. |
| Configurar provisionamento JIT | Marque esta caixa de seleção para exibir opções relacionadas ao provisionamento JIT. |
| Configuração de grupos | Selecione o método de configuração de grupos: memberOf - pesquisando usuários e seu atributo de associação a grupos groupOfNames - pesquisando grupos por meio do atributo de membros Observe que memberOf é preferível por ser mais rápido; use groupOfNames se o servidor LDAP não for compatível com memberOf ou se for necessário filtrar grupos. |
| Atributo do nome do grupo | Especifique o atributo do qual obter o nome do grupo de todos os objetos no atributo memberOf (consulte o campo Atributo de associação do usuário ao grupo)O nome do grupo é necessário para o mapeamento de grupos de usuários. |
| Atributo de associação do usuário ao grupo | 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: memberOf=cn=zabbix-admin,ou=Groups,dc=example,dc=comEste campo está disponível somente para o método memberOf. |
| Atributo do nome do usuário | Especifique o atributo que contém o nome do usuário. |
| Atributo do sobrenome do usuário | Especifique o atributo que contém o sobrenome do usuário. |
| Mapeamento de grupos de usuários | Mapeie um padrão de grupo de usuários LDAP para um grupo de usuários e uma função de usuário do Zabbix. Isso é necessário para determinar qual grupo/função de usuário o usuário provisionado receberá no Zabbix. Clique em Adicionar para adicionar um mapeamento. O campo Padrão de grupo LDAP aceita curingas (consulte a observação abaixo). 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, ele se tornará membro de todos eles. Se um usuário corresponder a várias funções de usuário do Zabbix, receberá aquela com o nível de permissão mais alto entre elas. |
| Mapeamento de tipos de mídia | Mapeie os atributos LDAP de mídia do usuário (por exemplo, e-mail) para a mídia do usuário do Zabbix, para o envio de notificações (o valor do atributo é usado como o campo Enviar para da mídia). |
| Configuração avançada | Clique no cabeçalho Configuração avançada para exibir opções de configuração avançadas (consulte abaixo). |
| StartTLS | Marque a caixa de seleção para usar a operação StartTLS ao conectar-se ao servidor LDAP. A conexão falhará se o servidor não for compatível com StartTLS. StartTLS não pode ser usado com servidores que utilizam o protocolo ldaps. |
| Filtro de pesquisa | Defina uma string personalizada ao autenticar um usuário no LDAP. Os seguintes marcadores são compatíveis:%{attr} - nome do atributo de pesquisa (uid, sAMAccountName)%{user} - valor do nome de usuário a ser autenticadoPor exemplo, para realizar uma pesquisa que diferencie maiúsculas de 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 DN base (por exemplo, uid=%{user},dc=example,dc=com) e deixe os parâmetros BindDN e Senha de vinculação vazios.
Durante a autenticação, o marcador %{user} será substituído pelo nome de usuário informado durante o login.
Com a vinculação direta de usuário, o Zabbix tem acesso apenas às credenciais do usuário durante o login interativo.
Portanto, as tarefas de provisionamento que operam sem um login interativo (por exemplo, o botão Provisionar agora ou o método da API user.provision) ignorarão os usuários que se autenticam usando a vinculação direta de usuário, pois o Zabbix não pode realizar a vinculação em nome deles.
Use uma vinculação anônima ou um usuário de vinculação dedicado (conta de serviço) se precisar que o provisionamento e as pesquisas LDAP funcionem a partir do frontend sem exigir que o usuário final esteja conectado.
No campo Padrão de grupo LDAP, o curinga * se comporta como .* em expressões regulares, correspondendo a zero ou mais caracteres.
Por exemplo, o padrão *Demo*Admin corresponde aos grupos LDAP WebDemoSuperAdmin e WebDemoAdmin.
O padrão deve corresponder ao nome completo do grupo; portanto, Demo*Admin (sem o * inicial) não corresponde a nenhum desses grupos.
Os campos a seguir são específicos de "groupOfNames" como método de Configuração de grupos:

| Parâmetro | Descrição |
|---|---|
| DN base do grupo | Caminho base para os grupos no servidor LDAP. |
| Atributo do nome do grupo | Especifique o atributo do qual obter o nome do grupo no caminho base especificado para os grupos. O nome do grupo é necessário para o mapeamento de grupos de usuários. |
| Atributo de membros do grupo | Especifique o atributo que contém informações sobre os membros do grupo no LDAP (por exemplo, member). |
| Atributo de referência | Especifique o atributo de referência para o filtro de grupo (consulte o campo Filtro de grupo). Em seguida, use %{ref} no filtro de grupo para obter valores do atributo especificado aqui. |
| Filtro de grupo | 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 de membros 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.
É recomendável criar uma conta LDAP separada (DN de vinculação) para realizar a vinculação e a pesquisa no servidor LDAP com privilégios mínimos no LDAP, em vez de usar contas de usuários reais (usadas para fazer login no frontend do Zabbix).
Essa abordagem oferece mais segurança e elimina a necessidade de alterar a Senha de vinculação quando o usuário altera a 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 previamente com o nome do usuário atual do frontend do Zabbix). Esse nome de usuário deve existir no server 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. |