3 Autenticação

Visão geral

O módulo Administração → Autenticação permite que você defina o método de autenticação a ser utilizado pela interface web do Zabbix. Os métodos disponíveis são: Interno, LDAP e autenticação HTTP.

By default, internal Zabbix authentication is used. To change, click on the button with the method name and press Update.

Interno

Método padrão de autenticação. Os dados de usuários são armazenados e verificados no mesmo banco de dados do Zabbix.

LDAP

Um servidor LDAP externo pode ser utilizado para verificar os nomes e senhas dos usuários. Observe que o usuário deverá ser cadastrado no servidor LDAP e no Zabbix e que o campo de senha do perfil de usuário não estará mais disponível.

A autenticação LDAP do Zabbix funciona tanto com o Microsoft Active Directory quanto com o OpenLDAP.

Parâmetros de configuração:

Parâmetro Descrição
Servidor LDAP Nome do servidor LDAP. Por exemplo: ldap://ldap.zabbix.com
Para conexão segura ao LDAP use o protocolo ldaps.
ldaps://ldap.zabbix.com
Porta Porta do servidor LDAP. O padrão é 389.
Para o LDAP seguro a porta padrão costuma ser 636.
Base DN Caminho base para pesquisar contas de usuário:
ou=Users,ou=system (para o OpenLDAP),
DC=company,DC=com (para o Microsoft Active Directory)
Atributo de pesquisa Atributo de conta LDAP utilizado na pesquisa:
uid (para o OpenLDAP),
sAMAccountName (para o Microsoft Active Directory)
Bind DN Conta LDAP para conexão e pesquisa no servidor LDAP, exemplos:
uid=ldap_search,ou=system (para o OpenLDAP),
CN=ldap_search,OU=user_group,DC=company,DC=com (para o Microsoft Active Directory)

Obrigatório, conexão anônima não é suportada.
Senha para o bind Senha da conta de BIND no LDAP.
Teste de autenticação Cabeçalho para a seção de teste
Login Nome de um usuário de teste (que esteja atualmente conectado à interface web do Zabbix). Este nome de usuário deverá existir no servidor LDAP.
O Zabbix não irá ativar a autenticação LDAP sem antes conseguir testar um usuário.
Senha do usuário Senha do usuário de teste no LDAP.

É recomendável criar uma conta em separado para o processo de conexão (Bind DN) que possua o mínimo de privilégios possível no LDAP ao invés de utilizar uma conta real de usuário (utilizada para se autenticar na interface web do Zabbix).
Esta abordagem proê mais segurança e não requer mudança na Senha para o Bind quando as contas de usuário mudarem suas próprias senhas no servidor LDAP.

Alguns grupos de usuários podem continuar sendo autenticados internamente no Zabbix. Estes grupos precisam ter o campo acesso à interface web definido como interno.

HTTP

A autenticação baseada em Apache (HTTP) pode ser utilizada para verificar nomes e senhas. Assim como na autenticação LDAP o usuário precisará existir no Zabbix também, e a senha do Zabbix não será utilizada.

Atenção! Certifique-se de que a autenticação apache esteja correta e funcional antes de alterar para este modo de autenticação.

No caso da autenticação apache todos os usuário (mesmo os com o acesso à interface web definido como interno) serão autorizados somente pelo apache!

Setting up the identity provider

In order to work with Zabbix, a SAML identity provider (onelogin.com, auth0.com, okta.com, etc.) needs to be configured in the following way:

  • Assertion Consumer URL should be set to <path_to_zabbix_ui>/index_sso.php?acs
  • Single Logout URL should be set to <path_to_zabbix_ui>/index_sso.php?sls

<path_to_zabbix_ui> examples: %% https://example.com/zabbix/ui, http://another.example.com/zabbix, http://<any_public_ip_address>/zabbix %%

Setting up Zabbix

It is required to install php-openssl if you want to use SAML authentication in the frontend.

To use SAML authentication Zabbix should be configured in the following way:

1. Private key and certificate should be stored in the ui/conf/certs/, unless custom paths are provided in zabbix.conf.php.

By default, Zabbix will look in the following locations:

  • ui/conf/certs/sp.key - SP private key file
  • ui/conf/certs/sp.crt - SP cert file
  • ui/conf/certs/idp.crt - IDP cert file

2. All of the most important settings can be configured in the Zabbix frontend. However, it is possible to specify additional settings in the configuration file.

Configuration parameters, available in the Zabbix frontend:

Parameter Description
Enable SAML authentication Mark the checkbox to enable SAML authentication.
IDP entity ID The unique identifier of SAML identity provider.
SSO service URL The URL users will be redirected to when logging in.
SLO Service URL The URL users will be redirected to when logging out. If left empty, the SLO service will not be used.
// Username attribute// SAML attribute to be used as a username when logging into Zabbix.
List of supported values is determined by the identity provider.

Examples:
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 The unique identifier of SAML service provider.
SP name ID format Defines which name identifier format should be used.

Examples:
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
urn:oasis:names:tc:SAML:2.0:nameid-format:transient
urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos
urn:oasis:names:tc:SAML:2.0:nameid-format:entity
Sign Mark the checkboxes to select entities for which SAML signature should be enabled:
Messages
Assertions
AuthN requests
Logout requests
Logout responses
Encrypt Mark the checkboxes to select entities for which SAML encryption should be enabled:
Assertions
Name ID
Case-sensitive login Mark the checkbox to enable case-sensitive login (disabled by default) for usernames.
E.g. disable case-sensitive login and log in with, for example, 'ADMIN' user even if the Zabbix user is 'Admin'.
Note that with case-sensitive login disabled the login will be denied if multiple users exist in Zabbix database with similar usernames (e.g. Admin, admin).
Advanced settings

Additional SAML parameters can be configured in the Zabbix frontend configuration file (zabbix.conf.php):

  • $SSO['SP_KEY'] = '<path to the SP private key file>';
  • $SSO['SP_CERT'] = '<path to the SP cert file>';
  • $SSO['IDP_CERT'] = '<path to the IDP cert file>';
  • $SSO['SETTINGS']

Zabbix uses OneLogin's SAML PHP Toolkit library (version 3.4.1). The structure of $SSO['SETTINGS'] section should be similar to the structure used by the library. For the description of configuration options, see official library documentation.

Only the following options can be set as part of $SSO['SETTINGS']:

  • strict
  • baseurl
  • compress
  • contactPerson
  • organization
  • sp (only options specified in this list)
    • attributeConsumingService
    • x509certNew
  • idp (only options specified in this list)
    • singleLogoutService (only one option)
      • responseUrl
    • certFingerprint
    • certFingerprintAlgorithm
    • x509certMulti
  • security (only options specified in this list)
    • signMetadata
    • wantNameId
    • requestedAuthnContext
    • requestedAuthnContextComparison
    • wantXMLValidation
    • relaxDestinationValidation
    • destinationStrictlyMatches
    • rejectUnsolicitedResponsesWithInResponseTo
    • signatureAlgorithm
    • digestAlgorithm
    • lowercaseUrlencoding

All other options will be taken from the database and cannot be overridden. The debug option will be ignored.

In addition, if Zabbix UI is behind a proxy or a load balancer, the custom use_proxy_headers option can be used:

  • false (default) - ignore the option;
  • true - use X-Forwarded-* HTTP headers for building the base URL.

Configuration example:

$SSO['SETTINGS'] = [
           'security' => [
               'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384'
               'digestAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#sha384',
               // ...
           ],
           // ...
       ];