Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

12 Configuração do SAML com o Microsoft Entra ID

Visão geral

Esta seção fornece diretrizes para configurar o login único e o provisionamento de usuários no Zabbix a partir do Microsoft Entra ID (anteriormente Microsoft Azure Active Directory) usando autenticação SAML 2.0.

Configuração do Microsoft Entra ID

Criando aplicação

1. Faça login no Microsoft Entra admin center em Microsoft Entra ID. Para fins de teste, você pode criar uma conta gratuita de avaliação no Microsoft Entra ID.

2. No Microsoft Entra admin center selecione Aplicativos -> Aplicativos corporativos -> Novo aplicativo -> Criar seu próprio aplicativo.

3. Adicione o nome do seu aplicativo e selecione a opção Integrar qualquer outro aplicativo.... Depois disso, clique em Criar.

Configurando o single sign-on

1. Na página do seu aplicativo, vá para Configurar single sign on e clique em Começar. Em seguida, selecione SAML.

2. Edite a Configuração SAML básica:

  • Em Identificador (ID da entidade) defina um nome exclusivo para identificar seu aplicativo no Microsoft Entra ID, por exemplo, zabbix;
  • Em URL de resposta (URL do serviço de consumidor de asserção) defina o endpoint de single sign-on do Zabbix: https://<caminho-para-o-zabbix-ui>/index_sso.php?acs:

Observe que "https" é obrigatório. Para que isso funcione com o Zabbix, é necessário adicionar ao conf/zabbix.conf.php a seguinte linha:

$SSO['SETTINGS'] = ['use_proxy_headers' => true];

3. Edite Atributos e declarações. Você deve adicionar todos os atributos que deseja passar para o Zabbix (user_name, user_lastname, user_email, user_mobile, groups).

Os nomes dos atributos são arbitrários. Podem ser usados nomes de atributos diferentes, porém, é necessário que eles correspondam ao valor do campo respectivo nas configurações SAML do Zabbix.

  • Clique em Adicionar nova declaração para adicionar um atributo:

  • Clique em Adicionar uma declaração de grupo para adicionar um atributo para passar grupos para o Zabbix:

É importante nesta declaração que os nomes dos grupos (e não os IDs dos grupos) sejam passados para o Zabbix pelo Atributo de origem selecionado. Caso contrário, o provisionamento de usuários JIT não funcionará corretamente.

4. Em Certificados SAML faça o download do certificado Base64 fornecido pelo Entra ID e coloque-o em conf/certs da instalação do frontend do Zabbix.

Defina as permissões 644 executando:

chmod 644 entra.cer

5. Use os valores de Configurar <nome do seu aplicativo> no Entra ID para configurar a autenticação SAML do Zabbix (veja a próxima seção):

Configuração do Zabbix

1. No Zabbix, acesse as configurações SAML e preencha as opções de configuração com base na configuração do Entra ID:

Campo do Zabbix Campo de configuração no Entra ID Valor de exemplo
IdP entity ID Identificador do Microsoft Entra
SSO service URL URL de login
SLO service URL URL de logout
SP entity ID Identificador (Entity ID)
Username attribute Atributo personalizado (claim) user_email
Group name attribute Atributo personalizado (claim) groups
User name attribute Atributo personalizado (claim) user_name
User last name attribute Atributo personalizado (claim) user_lastname

2. Adicione o certificado Base64 fornecido pelo Entra ID.

Se $SSO['CERT_STORAGE'] = 'database' estiver definido no zabbix.conf.php, você pode colar o texto do certificado ou fazer upload do arquivo do certificado no frontend durante a configuração do SAML — nenhum arquivo é necessário no sistema de arquivos.

Se $SSO['CERT_STORAGE'] = 'file' estiver definido no zabbix.conf.php, o certificado deve estar disponível no sistema de arquivos (por padrão em ui/conf/certs ou no caminho configurado em zabbix.conf.php) e o frontend não armazenará certificados no banco de dados. Observe que se $SSO['CERT_STORAGE'] não estiver definido ou estiver comentado, o armazenamento em arquivo será assumido e os certificados serão lidos de ui/conf/certs.

Também é necessário configurar o mapeamento de grupos de usuários. O mapeamento de mídia é opcional.

3. Pressione o botão Atualizar para salvar essas configurações.

Provisionamento de usuários SCIM

1. Na página do seu aplicativo Entra ID, no menu principal, abra a página Provisionamento. Clique em Introdução e, em seguida, selecione o modo de provisionamento Automático:

  • Em URL do locatário, defina o seguinte valor: https://<caminho-para-o-zabbix-ui>/api_scim.php
  • Em Token secreto, insira um token da API do Zabbix com permissões de Super admin.
  • Clique em Testar conexão para verificar se a conexão foi estabelecida.

2. Agora você pode adicionar todos os atributos que serão passados com o SCIM para o Zabbix. Para isso, clique em Mapeamentos e depois em Provisionar usuários do Microsoft Entra ID.

Na parte inferior da lista de Mapeamento de Atributos, habilite Mostrar opções avançadas e, em seguida, clique em Editar lista de atributos para customappsso.

Na parte inferior da lista de atributos, adicione seus próprios atributos com o tipo 'String':

Salve a lista.

3. Agora você pode adicionar mapeamentos para os atributos adicionados. Na parte inferior da lista de Mapeamento de Atributos, clique em Adicionar novo mapeamento e crie os mapeamentos conforme mostrado abaixo:

Quando todos os mapeamentos forem adicionados, salve a lista de mapeamentos.

4. Como pré-requisito para o provisionamento de usuários no Zabbix, você deve ter usuários e grupos configurados no Entra ID.

Para isso, acesse o Centro de administração do Microsoft Entra e adicione usuários/grupos nas respectivas páginas de Usuários e Grupos.

5. Quando os usuários e grupos forem criados no Entra ID, você pode ir ao menu Usuários e grupos do seu aplicativo e adicioná-los ao app.

6. Vá ao menu Provisionamento do seu aplicativo e clique em Iniciar provisionamento para que os usuários sejam provisionados no Zabbix.

Observe que a solicitação PATCH de Usuários no Entra ID não suporta alterações em mídias.

Assinatura de solicitação de autenticação

É possível configurar o Entra ID para validar a assinatura de solicitações de autenticação assinadas.

Para que isso funcione, crie chaves pública/privada:

openssl req -x509 -newkey rsa:4096 -keyout /usr/share/zabbix/conf/certs/request-sign.key -out /usr/share/zabbix/conf/certs/request-sign.pem -sha256 -days 1825 -nodes

Atribua permissões:

chown apache /usr/share/zabbix/conf/certs/request-sign.key 
       chmod 400 /usr/share/zabbix/conf/certs/request-sign.key

Atualize a configuração do frontend do Zabbix adicionando:

$SSO['SP_KEY'] = 'conf/certs/request-sign.key';
       $SSO['SP_CERT'] = 'conf/certs/request-sign.crt';

Solução de problemas

Problemas de autenticação podem ocorrer com navegadores MicroSoft Edge quando um usuário, tentando fazer login no Zabbix via SAML, já está logado com o perfil MicroSoft Edge. Como sinal desse problema, o usuário pode conseguir fazer login no Zabbix usando o MicroSoft Edge no modo privado.

Para evitar problemas de autenticação nesse caso, pode ser necessário definir requestedAuthnContext como "false" no arquivo de configuração do frontend do Zabbix (zabbix.conf.php).

$SSO['SETTINGS'] = [
           'security' => [
               'requestedAuthnContext' => false
           ]
       ];