12 SAML installatie met OneLogin

Overzicht

Dit gedeelte biedt richtlijnen voor het configureren van single sign-on en gebruikersvoorziening in Zabbix vanuit OneLogin met behulp van SAML 2.0-authenticatie.

OneLogin configuratie

Applicatie aanmaken
  1. Log in op je account bij OneLogin. Voor testdoeleinden kun je een gratis ontwikkelaarsaccount aanmaken bij OneLogin.

  2. In de OneLogin webinterface ga naar Applications → Applications.

  3. Klik op "App toevoegen" en zoek de juiste app. De richtlijnen op deze pagina zijn gebaseerd op het voorbeeld van de app SCIM Provisioner with SAML (SCIM v2 Enterprise, volledige SAML).

  4. Als eerste wil je mogelijk de weergavenaam van je app aanpassen. Je wilt ook het pictogram en de app-details toevoegen. Klik daarna op Opslaan.

SSO/SCIM provisioning instellen
  1. In Configuration -> Application details, stel de Zabbix single sign-on endpoint http://<zabbix-instance-url>/zabbix/index_sso.php?acs in als de waarde voor deze velden:

    • ACS (Consumer) URL Validator
    • ACS (Consumer) URL

    Let op het gebruik van "http", en niet "https", zodat de acs parameter niet wordt weggelaten in het verzoek.

    Het is ook mogelijk om "https" te gebruiken. Om dat te laten werken met Zabbix, is het nodig om de volgende regel toe te voegen aan conf/zabbix.conf.php:

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

    Laat andere opties met hun standaardwaarden.

  2. In Configuration -> API connection, stel de volgende waarden in:

    • SCIM Base URL: https://<zabbix-instance-url>/zabbix/api_scim.php
    • SCIM JSON Template: moet alle aangepaste attributen bevatten die je via SCIM aan Zabbix wilt doorgeven, zoals user_name, user_lastname, user_email en user_mobile:
    {
             "schemas": [
               "urn:ietf:params:scim:schemas:core:2.0:User"
             ],
             "userName": "{$parameters.scimusername}",
             "name": {
               "familyName": "{$user.lastname}",
               "givenName": "{$user.firstname}"
             },
              "user_name": "{$user.firstname}",
              "user_lastname": "{$user.lastname}",
              "user_mobile": "{$user.phone}",
              "user_email": "{$user.email}"
           }

    De attribuutnamen zijn willekeurig. Verschillende attribuutnamen kunnen worden gebruikt, maar ze moeten overeenkomen met de respectieve veldwaarde in de Zabbix SAML-instellingen.

    Let op dat OneLogin voor gebruikersvoorziening een 'name'-attribuut moet ontvangen in de respons met 'givenName' en 'familyName', zelfs als dit niet vereist was door de serviceprovider. Daarom is het nodig om dit te specificeren in het schema in het gedeelte van de applicatieconfiguratie.

    • SCIM Bearer Token: voer een Zabbix API-token in met Super admin-rechten.

    Klik op Enable om de verbinding te activeren.

  3. Op de pagina Provisioning activeer je de Provisioning-optie:

  4. De pagina Parameters bevat een lijst met standaardparameters:

    • Zorg ervoor dat 'scimusername' overeenkomt met de gebruikersaanmeldingswaarde in OneLogin (bijvoorbeeld e-mail);
    • Markeer de optie Include in User Provisioning voor de parameter 'Groups';
    • Klik op "+" om de aangepaste parameters te maken die vereist zijn voor SAML-asserties en gebruikersvoorziening, zoals user_name, user_lastname, user_email en user_mobile:

    Als je een parameter toevoegt, zorg er dan voor dat zowel de opties Include in SAML assertion als Include in User Provisioning zijn gemarkeerd.

    • Voeg een 'group'-parameter toe die overeenkomt met gebruikersrollen in OneLogin. Gebruikersrollen worden doorgegeven als een tekenreeks, gescheiden door een puntkomma ;. De gebruikersrollen van OneLogin worden gebruikt voor het maken van gebruikersgroepen in Zabbix:

    Controleer de lijst met parameters:

  5. Op de pagina Rules maak je gebruikersroltoewijzingen aan de standaard Groups-parameter.

    Je kunt een reguliere expressie gebruiken om specifieke rollen als groepen door te geven. De rolnamen mogen geen ; bevatten, omdat OneLogin dit gebruikt als scheidingsteken wanneer een attribuut met meerdere rollen wordt verzonden.

Zabbix-configuratie

  1. In Zabbix ga je naar de SAML-instellingen en vul je de configuratieopties in op basis van de OneLogin-configuratie:

    Zabbix-veld Setup-veld in OneLogin Voorbeeldwaarde
    IdP entity ID Issuer URL
    (zie het tabblad SSO van je applicatie in OneLogin)
    SSO service URL SAML 2.0 Endpoint (HTTP)
    (zie het tabblad SSO van je applicatie in OneLogin)
    SLO service URL SLO Endpoint (HTTP)
    (zie het tabblad SSO van je applicatie in OneLogin)
    Username attribute Aangepaste parameter user_email
    Group name attribute Aangepaste parameter group
    User name attribute Aangepaste parameter user_name
    User last name attribute Aangepaste parameter user_lastname

    Het is ook nodig om de gebruikersgroepmapping te configureren. Mediamapping is optioneel. Klik op Update om deze instellingen op te slaan.

  2. Download het certificaat dat door OneLogin wordt verstrekt en plaats het in conf/certs van de Zabbix frontend-installatie, als idp.crt.

    Geef het de rechten 644 met het volgende commando:

    chmod 644 idp.crt

    Je kunt het certificaat downloaden in OneLogin via Applications -> SSO -> klik op View details onder het huidige certificaat.

    Het is mogelijk om een andere certificaatnaam en -locatie te gebruiken. Voeg in dat geval de volgende regel toe aan conf/zabbix.conf.php:

    $SSO['IDP_CERT'] = 'path/naar/certnaam.crt';

Met gebruikersvoorziening ingeschakeld, is het nu mogelijk om gebruikers en hun rollen toe te voegen/wijzigen in OneLogin en ze onmiddellijk te voorzien in Zabbix.

Bijvoorbeeld, je kunt een nieuwe gebruiker aanmaken:

Voeg deze gebruiker toe aan een gebruikersrol en de applicatie die de gebruiker zal voorzien:

Wanneer je de gebruiker opslaat, wordt deze voorzien in Zabbix. In Application -> Users kun je de voorzieningsstatus van huidige applicatiegebruikers controleren:

Indien succesvol voorzien, is de gebruiker zichtbaar in de Zabbix-gebruikerslijst.