3 Authenticatie

Overzicht

De sectie Administratie → Authenticatie stelt u in staat de globale gebruikersauthenticatiemethode voor Zabbix te specificeren, evenals de interne wachtwoordvereisten. De beschikbare methoden zijn interne, HTTP, LDAP en SAML-authenticatie.

Standaard authenticatie

Standaard maakt Zabbix gebruik van interne Zabbix-authenticatie voor alle gebruikers. Het is mogelijk om de standaard methode voor systeembrede LDAP authenticatie te wijzigen of LDAP-authenticatie alleen in te schakelen voor specifieke gebruikersgroepen.

Om LDAP in te stellen als standaard authenticatiemethode voor alle gebruikers, ga naar het tabblad LDAP en configureer de authenticatieparameters. Ga vervolgens terug naar het tabblad Authenticatie en schakel de schakelaar voor Standaard authenticatie over naar LDAP.

Merk op dat de authenticatiemethode op gebruikersgroepniveau verder kan worden verfijnd. Zelfs als LDAP-authenticatie wereldwijd is ingesteld, kunnen sommige gebruikersgroepen nog steeds worden geauthenticeerd door Zabbix. Deze groepen moeten toegang tot frontend ingesteld hebben op Intern. Andersom, als interne authenticatie wereldwijd wordt gebruikt, kunnen LDAP-authenticatiegegevens worden gespecificeerd en gebruikt voor specifieke gebruikersgroepen waarvan toegang tot frontend is ingesteld op LDAP. Als een gebruiker is opgenomen in ten minste één gebruikersgroep met LDAP-authenticatie, kan deze gebruiker de interne authenticatiemethode niet gebruiken.

HTTP en SAML 2.0 authenticatiemethoden kunnen worden toegevoegd naast de standaard authenticatiemethode.

Interne authenticatie

Het tabblad Authenticatie maakt het mogelijk om aangepaste wachtwoordcomplexiteitseisen te definiëren voor interne Zabbix-gebruikers.

De volgende opties voor wachtwoordbeleid kunnen geconfigureerd worden:

Parameter Omschrijving
Minimale wachtwoordlengte Standaard is de minimale wachtwoordlengte ingesteld op 8. Ondersteund bereik: 1-70. Merk op dat wachtwoorden langer dan 72 tekens worden afgekapt.
Wachtwoord moet bevatten Vink een of meerdere selectievakjes aan om het gebruik van specifieke tekens in een wachtwoord te vereisen:
- een hoofdletter en een kleine letter in het Latijn
- een cijfer
- een speciaal teken

Houd de muisaanwijzer boven het vraagteken om een hint te zien met de lijst van tekens voor elke optie.
Vermijd makkelijk te raden wachtwoorden Indien aangevinkt, zal een wachtwoord gecontroleerd worden op de volgende eisen:
- mag de naam, achternaam of gebruikersnaam van de gebruiker niet bevatten
- mag geen van de veelgebruikte wachtwoorden of contextspecifieke wachtwoorden zijn.

De lijst van veelgebruikte en contextspecifieke wachtwoorden wordt automatisch gegenereerd op basis van de lijst van NCSC "Top 100k wachtwoorden", de lijst van SecLists "Top 1M wachtwoorden" en de lijst van Zabbix contextspecifieke wachtwoorden. Interne gebruikers zullen geen wachtwoorden kunnen instellen die in deze lijst zijn opgenomen, omdat deze wachtwoorden als zwak worden beschouwd vanwege hun veelvoorkomend gebruik.

Wijzigingen in de eisen voor wachtwoordcomplexiteit hebben geen invloed op bestaande wachtwoorden van gebruikers. Als een bestaande gebruiker echter ervoor kiest om het wachtwoord te wijzigen, moet het nieuwe wachtwoord voldoen aan de huidige vereisten. Een hint met de lijst van vereisten wordt weergegeven naast het Wachtwoord veld in het gebruikersprofiel en in het gebruikersconfiguratieformulier dat bereikbaar is via het Beheer→Gebruikers menu.

HTTP-authenticatie

HTTP- of webservergebaseerde authenticatie (bijvoorbeeld: basisauthenticatie, NTLM/Kerberos) kan worden gebruikt om gebruikersnamen en wachtwoorden te controleren. Merk op dat een gebruiker ook in Zabbix moet bestaan, maar dat het Zabbix-wachtwoord niet wordt gebruikt.

Wees voorzichtig! Zorg ervoor dat webserverauthenticatie correct is geconfigureerd en goed werkt voordat u deze inschakelt.

Configuratieparameters:

Parameter Omschrijving
HTTP-authenticatie inschakelen Vink het selectievakje aan om HTTP-authenticatie in te schakelen. Als je met de muis over beweegt, verschijnt er een hulppop-up die waarschuwt dat in het geval van webserverauthenticatie alle gebruikers (zelfs met frontend-toegang ingesteld op LDAP/Internal) geauthenticeerd zullen worden door de webserver, niet door Zabbix.
Standaard inlogformulier Specificeer of niet-geauthenticeerde gebruikers doorgestuurd moeten worden naar:
Zabbix inlogformulier - de standaard Zabbix inlogpagina.
HTTP inlogformulier - de HTTP-inlogpagina.
Het wordt aanbevolen om alleen authenticatie op basis van de webserver in te schakelen voor de pagina index_http.php. Als Standaard inlogformulier is ingesteld op 'HTTP-inlogpagina', wordt de gebruiker automatisch ingelogd als het webserverauthenticatiemodule een geldige gebruikersnaam instelt in de $_SERVER-variabele.
Ondersteunde $_SERVER-sleutels zijn PHP_AUTH_USER, REMOTE_USER, AUTH_USER.
Domeinnaam verwijderen Een door komma's gescheiden lijst van domeinnamen die uit de gebruikersnaam moeten worden verwijderd.
Bijvoorbeeld bedr,ijf - als de gebruikersnaam 'Admin@bedrijf' is, 'bedr\Admin', zal de gebruiker worden ingelogd als 'Admin'; als de gebruikersnaam 'geenbedrijf\Admin' is, wordt de login geweigerd.
Hoofdlettergevoelige inlog Deselecteer het selectievakje om hoofdlettergevoelige inlog (standaard ingeschakeld) voor gebruikersnamen uit te schakelen.
Bijvoorbeeld, schakel hoofdlettergevoelige inlog uit en log in met bijvoorbeeld de gebruiker 'ADMIN' zelfs als de Zabbix-gebruiker 'Admin' is.
Let op dat als hoofdlettergevoelige inlog is uitgeschakeld, de inlog wordt geweigerd als meerdere gebruikers met vergelijkbare gebruikersnamen in de Zabbix-database bestaan (bijvoorbeeld Admin, admin).

Voor interne gebruikers die niet kunnen inloggen met HTTP-inloggegevens (met HTTP-inlogformulier ingesteld als standaard), wat leidt tot de foutcode 401, kunt u een regel ErrorDocument 401 /index.php?form=default toevoegen aan de basisauthenticatie-directieven. Dit zal doorverwijzen naar het reguliere Zabbix-inlogformulier.

LDAP-authenticatie

Externe LDAP-authenticatie kan worden gebruikt om gebruikersnamen en wachtwoorden te controleren. Merk op dat een gebruiker ook in Zabbix moet bestaan, maar dat het Zabbix-wachtwoord niet wordt gebruikt.

Zabbix LDAP-authenticatie werkt minimaal met Microsoft Active Directory en OpenLDAP.

Configuratieparameters:

Parameter Omschrijving
LDAP-authenticatie inschakelen Vink het selectievakje aan om LDAP-authenticatie in te schakelen.
LDAP-host Naam van de LDAP-server. Bijvoorbeeld: ldap://ldap.zabbix.com
Voor een beveiligde LDAP-server gebruik het ldaps-protocol.
ldaps://ldap.zabbix.com
Bij OpenLDAP 2.x.x en later kan een volledige LDAP-URI in de vorm ldap://hostname:port of ldaps://hostname:port worden gebruikt.
Poort Poortnummer van de LDAP-server. Standaard is 389.
Voor een beveiligde LDAP-verbinding is het poortnummer meestal 636.
Niet gebruikt bij het gebruik van volledige LDAP-URI's.
Basis DN Basispad om accounts te zoeken:
ou=Users,ou=system (voor OpenLDAP),
DC=bedrijf,DC=com (voor Microsoft Active Directory)
Zoekattribuut LDAP-accountattribuut gebruikt voor zoeken:
uid (voor OpenLDAP),
sAMAccountName (voor Microsoft Active Directory)
Bind DN LDAP-account voor binding en zoeken op de LDAP-server, voorbeelden:
uid=ldap_search,ou=system (voor OpenLDAP),
CN=ldap_search,OU=gebruikersgroep,DC=bedrijf,DC=com (voor Microsoft Active Directory)
Anonieme binding wordt ook ondersteund. Let op dat anonieme binding potentieel de domeinconfiguratie openstelt voor ongeautoriseerde gebruikers (informatie over gebruikers, computers, servers, groepen, services, enz.). Om veiligheidsredenen schakelt u anonieme bindings uit op LDAP-hosts en gebruikt u in plaats daarvan geauthenticeerde toegang.
Hoofdlettergevoelige inlog Deselecteer het selectievakje om hoofdlettergevoelige inlog (standaard ingeschakeld) voor gebruikersnamen uit te schakelen.
Bijvoorbeeld, schakel hoofdlettergevoelige inlog uit en log in met bijvoorbeeld de gebruiker 'ADMIN' zelfs als de Zabbix-gebruiker 'Admin' is.
Let op dat als hoofdlettergevoelige inlog is uitgeschakeld, de inlog wordt geweigerd als meerdere gebruikers met vergelijkbare gebruikersnamen in de Zabbix-database bestaan (bijvoorbeeld Admin, admin).
Bindwachtwoord LDAP-wachtwoord van het account voor binding en zoeken op de LDAP-server.
Authenticatie testen Koptekst van een sectie voor testen
Inloggen Naam van een testgebruiker (die momenteel is ingelogd in de Zabbix-frontend). Deze gebruikersnaam moet bestaan in de LDAP-server.
Zabbix activeert LDAP-authenticatie niet als het de testgebruiker niet kan authenticeren.
Gebruikerswachtwoord LDAP-wachtwoord van de testgebruiker.

Bij problemen met certificaten moet u mogelijk een regel TLS_REQCERT allow toevoegen aan het configuratiebestand /etc/openldap/ldap.conf om een beveiligde LDAP-verbinding (ldaps) te laten werken. Dit kan de beveiliging van de verbinding met de LDAP-catalogus verminderen.

Het wordt aanbevolen om een apart LDAP-account (Bind DN) te maken om binding en zoeken uit te voeren op de LDAP-server met minimale rechten in de LDAP in plaats van echte gebruikersaccounts (gebruikt voor het inloggen in de Zabbix-frontend). Zo'n aanpak biedt meer veiligheid en vereist geen wijziging van het Bind-wachtwoord wanneer de gebruiker zijn eigen wachtwoord wijzigt in de LDAP-server. In de bovenstaande tabel is de naam van het ldap_search-account.

SAML-authenticatie

SAML 2.0-authenticatie kan worden gebruikt om in te loggen bij Zabbix. Merk op dat een gebruiker ook in Zabbix moet bestaan, maar dat het Zabbix-wachtwoord niet wordt gebruikt. Als de authenticatie succesvol is, zal Zabbix een lokale gebruikersnaam matchen met het gebruikersnaamattribuut dat wordt teruggestuurd door SAML.

Als SAML-authenticatie is ingeschakeld, kunnen gebruikers kiezen tussen lokaal inloggen of via SAML Single Sign-On.

Het instellen van de identiteitsprovider

Om met Zabbix te werken, moet een SAML-identiteitsprovider (onelogin.com, auth0.com, okta.com, enz.) als volgt worden geconfigureerd:

  • Assertion Consumer URL moet worden ingesteld op <pad_naar_zabbix_ui>/index_sso.php?acs
  • Single Logout URL moet worden ingesteld op <pad_naar_zabbix_ui>/index_sso.php?sls

Voorbeelden van <pad_naar_zabbix_ui>: %% https://voorbeeld.com/zabbix/ui, http://nogeen.voorbeeld.com/zabbix, http://<een_publiek_ip_adres>/zabbix %%

Het instellen van Zabbix

Het is vereist om php-openssl te installeren als je SAML-authenticatie in de frontend wilt gebruiken.

Om SAML-authenticatie te gebruiken, moet Zabbix als volgt worden geconfigureerd:

  1. De privésleutel en het certificaat moeten worden opgeslagen in de map ui/conf/certs/, tenzij aangepaste paden zijn opgegeven in zabbix.conf.php.

    Standaard zal Zabbix zoeken in de volgende locaties:

    • ui/conf/certs/sp.key - SP privésleutelbestand
    • ui/conf/certs/sp.crt - SP certificaatbestand
    • ui/conf/certs/idp.crt - IDP certificaatbestand
  2. Alle belangrijke instellingen kunnen geconfigureerd worden in de Zabbix frontend. Het is echter ook mogelijk om aanvullende instellingen op te geven in het configuratiebestand.

Configuratieparameters die beschikbaar zijn in de Zabbix frontend:

Parameter Beschrijving
SAML-authenticatie inschakelen Markeer het selectievakje om SAML-authenticatie in te schakelen.
IDP-entiteit-ID De unieke identificator van de SAML-identiteitsprovider.
SSO-service-URL De URL waarnaar gebruikers worden doorgestuurd bij het inloggen.
SLO-service-URL De URL waarnaar gebruikers worden doorgestuurd bij het uitloggen. Als dit leeg wordt gelaten, wordt de SLO-service niet gebruikt.
// Gebruikersnaamattribuut// Het SAML-attribuut dat als gebruikersnaam wordt gebruikt bij het inloggen op Zabbix.
De lijst met ondersteunde waarden wordt bepaald door de identiteitsprovider.

Voorbeelden:
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-entiteit-ID De unieke identificator van de SAML-serviceprovider.
SP name ID-formaat Definieert welk naam-ID-formaat moet worden gebruikt.

Voorbeelden:
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
Signeren Markeer de selectievakjes om entiteiten te selecteren waarvoor SAML-ondertekening moet worden ingeschakeld:
Berichten
Assertions
AuthN-verzoeken
Uitlogverzoeken
Uitlogreacties
Versleutelen Markeer de selectievakjes om entiteiten te selecteren waarvoor SAML-versleuteling moet worden ingeschakeld:
Assertions
Naam-ID
Hoofdlettergevoelige aanmelding Markeer het selectievakje om hoofdlettergevoelige aanmelding in te schakelen (standaard uitgeschakeld) voor gebruikersnamen.
Je kunt bijvoorbeeld hoofdlettergevoelige aanmelding uitschakelen en inloggen met 'ADMIN'-gebruiker, zelfs als de Zabbix-gebruiker 'Admin' is.
Opmerking dat bij uitgeschakelde hoofdlettergevoelige aanmelding de aanmelding wordt geweigerd als er meerdere gebruikers met vergelijkbare gebruikersnamen in de Zabbix-database staan (bijvoorbeeld Admin, admin).
Geavanceerde instellingen

Aanvullende SAML-parameters kunnen geconfigureerd worden in het Zabbix frontend configuratiebestand (zabbix.conf.php):

  • $SSO['SP_KEY'] = '<pad naar het SP privésleutelbestand>';
  • $SSO['SP_CERT'] = '<pad naar het SP certificaatbestand>';
  • $SSO['IDP_CERT'] = '<pad naar het IDP certificaatbestand>';
  • $SSO['SETTINGS']

Zabbix maakt gebruik van de OneLogin's SAML PHP Toolkit bibliotheek (versie 3.4.1). De structuur van de $SSO['SETTINGS'] sectie moet vergelijkbaar zijn met de structuur die door de bibliotheek wordt gebruikt. Voor de beschrijving van configuratieopties, zie de officiële bibliotheek documentatie.

Alleen de volgende opties kunnen worden ingesteld als onderdeel van $SSO['SETTINGS']:

  • strict
  • baseurl
  • compress
  • contactPerson
  • organization
  • sp (alleen opties gespecificeerd in deze lijst)
    • attributeConsumingService
    • x509certNew
  • idp (alleen opties gespecificeerd in deze lijst)
    • singleLogoutService (slechts één optie)
      • responseUrl
    • certFingerprint
    • certFingerprintAlgorithm
    • x509certMulti
  • security (alleen opties gespecificeerd in deze lijst)
    • signMetadata
    • wantNameId
    • requestedAuthnContext
    • requestedAuthnContextComparison
    • wantXMLValidation
    • relaxDestinationValidation
    • destinationStrictlyMatches
    • rejectUnsolicitedResponsesWithInResponseTo
    • signatureAlgorithm
    • digestAlgorithm
    • lowercaseUrlencoding

Alle andere opties worden uit de database gehaald en kunnen niet overschreven worden. De debug optie wordt genegeerd.

Bovendien, als de Zabbix UI achter een proxy of een load balancer staat, kan de aangepaste use_proxy_headers optie worden gebruikt:

  • false (standaard) - negeer de optie;
  • true - gebruik de X-Forwarded-* HTTP-headers voor het opbouwen van de basis-URL.

Als je een load balancer gebruikt om verbinding te maken met de Zabbix-instantie, waarbij de load balancer TLS/SSL gebruikt en Zabbix niet, moet je de parameters 'baseurl', 'strict' en 'use_proxy_headers' als volgt aangeven:

$SSO_SETTINGS=['strict' => false, 'baseurl' => "https://zabbix.example.com/zabbix/", 'use_proxy_headers' => true]

Voorbeeld configuratie:

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