A autenticação SAML 2.0 pode ser usada para fazer login no Zabbix.
Se apenas o login SAML 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 ao atributo de nome de usuário retornado pelo SAML.
É possível configurar o provisionamento de usuários JIT (just-in-time) para usuários SAML. Neste 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 faz login no Zabbix pela primeira vez.
Se o provisionamento JIT estiver habilitado, um grupo de usuários para usuários desprovisionados deve ser especificado na aba Autenticação.
Além do provisionamento JIT, também é possível habilitar e configurar o provisionamento SCIM (System for Cross-domain Identity Management) - gerenciamento contínuo de contas de usuários para aqueles usuários que foram criados pelo provisionamento de usuários. O provisionamento SCIM requer um token de API do Zabbix (com permissões de Super admin) para autenticação no Zabbix.
Por exemplo, se um usuário for movido de um grupo SAML 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 SAML, o usuário também será removido do grupo no Zabbix e, se não pertencer a nenhum outro grupo, adicionado ao grupo de usuários para usuários desprovisionados.
Se o SCIM estiver habilitado e configurado, um usuário SAML será provisionado no momento em que fizer login no Zabbix e continuamente atualizado com base nas alterações no SAML. Usuários SAML já existentes não serão provisionados, e apenas usuários provisionados serão atualizados. Observe que apenas mídias válidas serão adicionadas a um usuário quando o usuário for provisionado ou atualizado.
Se o SCIM não estiver habilitado, um usuário SAML será provisionado (e posteriormente atualizado) no momento em que fizer login no Zabbix.
Se a autenticação SAML estiver habilitada, os usuários poderão escolher entre fazer login localmente ou via SAML single sign-on. Se o provisionamento JIT for usado, então apenas o single sign-on será possível.
Para funcionar com o Zabbix, um provedor de identidade SAML (onelogin.com, auth0.com, okta.com, etc.) precisa ser configurado da seguinte forma:
<path_to_zabbix_ui>/index_sso.php?acs<path_to_zabbix_ui>/index_sso.php?slsExemplos de <path_to_zabbix_ui>: https://example.com/zabbix/ui, http://another.example.com/zabbix, http://<any_public_ip_address>/zabbix
É necessário instalar o php-openssl se você quiser usar a autenticação SAML no frontend.
Para usar a autenticação SAML, o Zabbix deve ser configurado da seguinte forma:
1. Forneça a chave privada e os certificados do SP. Um certificado IdP deve ser fornecido (colar ou escolher arquivo) para ativar o SAML via o frontend. Um certificado SP e uma chave privada SP devem ser fornecidos se as opções Assinar ou Criptografar forem selecionadas.
Se $SSO['CERT_STORAGE'] = 'database' estiver definido em 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 em 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.
Por padrão, o Zabbix procurará nos seguintes locais:
O material do certificado pode ser importado via o frontend colando o texto ou fazendo upload de arquivos. Embora importações não criptografadas sejam permitidas para conveniência em alguns ambientes, é altamente recomendável usar transporte criptografado (por exemplo, habilite HTTPS/TLS para o frontend do Zabbix). Quando certificados/chaves SAML são armazenados no banco de dados, habilite TLS/SSL para conexões com o banco de dados para proteger o tráfego entre o aplicativo e o banco de dados.
Criptografe backups do banco de dados que possam conter certificados SAML ou chaves privadas e limite o acesso aos arquivos de backup e às tabelas do banco de dados que armazenam material SAML. Restrinja os privilégios do usuário do banco de dados ao mínimo necessário.
2. Todas as configurações mais importantes podem ser feitas no frontend do Zabbix. No entanto, é possível especificar configurações adicionais no arquivo de configuração.

Parâmetros de configuração disponíveis no frontend do Zabbix:
| Parâmetro | Descrição |
|---|---|
| Habilitar autenticação SAML | Marque a caixa de seleção para habilitar a autenticação SAML. |
| Habilitar provisionamento JIT | Marque a caixa de seleção para habilitar o provisionamento de usuário JIT. |
| IDP entity ID | O identificador exclusivo da entidade dentro do provedor de identidade SAML. |
| URL do serviço SSO | A URL para a qual os usuários serão redirecionados ao fazer login. |
| URL do serviço SLO | A URL para a qual os usuários serão redirecionados ao fazer logout. Se deixado em branco, o serviço SLO não será usado. |
| Atributo de nome de usuário | Atributo SAML a ser usado como nome de usuário ao fazer login no Zabbix. A lista de valores suportados é determinada pelo provedor de identidade. Exemplos: uid userprincipalname samaccountname username userusername urn:oid:0.9.2342.19200300.100.1.1 urn:oid:1.3.6.1.4.1.5923.1.1.1.13 urn:oid:0.9.2342.19200300.100.1.44 |
| SP entity ID | O identificador exclusivo do provedor de serviço (se não corresponder, a operação será rejeitada). É possível especificar uma URL ou qualquer string de dados. |
| Formato do nome de entidade do SP | Solicite um formato específico de nome de entidade na resposta. Exemplos: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified urn:oasis:names:tc:SAML:2.0:nameid-format:transient |
| Certificado IdP | Conteúdo do certificado do provedor de serviço (SP) para configuração do serviço SAML single sign-on (SSO). |
| Chave privada do SP | Conteúdo da chave privada do provedor de serviço (SP) para configuração do serviço SAML single sign-on (SSO). Fornece autenticação segura e troca de dados com o Provedor de Identidade (IdP). |
| Certificado do SP | Conteúdo do certificado do provedor de serviço (SP) para configuração do serviço SAML single sign-on (SSO). |
| Assinar | Marque as caixas de seleção para selecionar as entidades para as quais a assinatura SAML deve ser habilitada: Mensagens Declarações Solicitações AuthN Solicitações de logout Respostas de logout |
| Criptografar | Marque as caixas de seleção para selecionar as entidades para as quais a criptografia SAML deve ser habilitada: Nome de entidade Declarações |
| 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." |
| Configurar provisionamento JIT | Marque esta caixa de seleção para mostrar opções relacionadas ao provisionamento de usuário JIT. |
| Atributo de nome do grupo | Especifique o atributo de nome do grupo para provisionamento de usuário JIT. |
| Atributo de nome do usuário | Especifique o atributo de nome do usuário para provisionamento de usuário JIT. |
| Atributo de sobrenome do usuário | Especifique o atributo de sobrenome do usuário para provisionamento de usuário JIT. |
| Mapeamento de grupo de usuário | Mapeie um padrão de grupo de usuário SAML para grupo de usuário e função de usuário do Zabbix. Isto é 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 SAML suporta curingas. O nome do grupo deve corresponder a um grupo existente. Se um usuário SAML 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, o usuário receberá o nível de permissão mais alto entre elas. |
| Mapeamento de tipo de mídia | Mapeie os atributos de mídia SAML do usuário (por exemplo, e-mail) para a mídia de usuário do Zabbix para envio de notificações. |
| Habilitar provisionamento SCIM | Marque esta caixa de seleção para habilitar o provisionamento SCIM 2.0. |
Veja exemplos de configuração de provedores de identidade SAML para login e provisionamento de usuários no Zabbix com:
Para provisionamento SCIM, especifique o caminho para o frontend do Zabbix e adicione api_scim.php a ele, no lado do provedor de identidade, ou seja:
Os atributos de usuário que são usados no Zabbix (nome de usuário, nome, sobrenome e atributos de mídia) precisam ser adicionados como atributos personalizados e, se necessário, o namespace externo deve ser o mesmo do esquema de usuário: urn:ietf:params:scim:schemas:core:2.0:User.
Parâmetros SAML adicionais podem ser configurados no arquivo de configuração do frontend do Zabbix (zabbix.conf.php):
O Zabbix utiliza a biblioteca OneLogin's SAML PHP Toolkit (versão 3.4.1). A estrutura da seção $SSO['SETTINGS'] deve ser semelhante à estrutura usada pela biblioteca. Para a descrição das opções de configuração, consulte a documentação oficial da biblioteca.
Apenas as seguintes opções podem ser definidas como parte de $SSO['SETTINGS']:
Todas as outras opções serão obtidas do banco de dados e não podem ser sobrescritas. A opção debug será ignorada.
Além disso, se a interface do Zabbix estiver atrás de um proxy ou balanceador de carga, a opção personalizada use_proxy_headers pode ser usada:
Se estiver usando um balanceador de carga para conectar à instância do Zabbix, onde o balanceador de carga usa TLS/SSL e o Zabbix não, você deve indicar os parâmetros 'baseurl', 'strict' e 'use_proxy_headers' da seguinte forma:
$SSO['SETTINGS'] = [
'strict' => false,
'baseurl' => 'https://zabbix.example.com/zabbix/',
'use_proxy_headers' => true
];Exemplo de configuração:
$SSO['SETTINGS'] = [
'security' => [
'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384'
'digestAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#sha384',
// ...
],
// ...
];O arquivo de configuração do frontend do Zabbix (zabbix.conf.php) pode ser usado para configurar o SSO com autenticação Kerberos e ADFS:
$SSO['SETTINGS'] = [
'security' => [
'requestedAuthnContext' => [
'urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos',
],
'requestedAuthnContextComparison' => 'exact'
]
]; Neste caso, no campo SP name ID da configuração SAML, defina: