Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. Introduzione

La single sign-on (autenticazione unica) alla GUI di Checkmk con Kerberos non è ufficialmente supportata da Checkmk, ma puoi configurarla facilmente da solo. Queste istruzioni ti mostreranno come farlo.

Prima di poter modificare retroattivamente la configurazione in Checkmk per passare al single sign-on (autenticazione unica) con Kerberos, devono essere soddisfatti i seguenti prerequisiti:

  • La versione di Apache è 2.4 o più recente.

  • Sul server Checkmk è effettuata l'installazione del modulo libapache-mod-auth-kerb (oppure mod_auth_kerb su Red Hat Enterprise Linux e CentOS o apache2-mod_auth_kerb su SUSE).

  • L'installazione del client Kerberos è effettuata e configurata sul server Checkmk.

  • È stata effettuata l'installazione di un Keytab — ad esempio come /etc/krb5.keytab — che può essere letto dall'utente dell’istanza.

  • Il server Checkmk è stato configurato come Service Principal.

  • Il browser del client è stato configurato per l'accesso tramite Kerberos.

Opzionale:

Se vuoi che gli utenti senza SSO possano comunque effettuare l'accesso tramite la normale pagina di login, devi abilitare l'autenticazione tramite cookie.

2. Integrazione Kerberos

Per passare l'autenticazione di Checkmk tramite Kerberos, elimina il file ~/etc/apache/conf.d/auth.conf e riscrivilo. Le voci all'inizio del contenuto del file seguente sono solo esempi. Modifica quindi tutte le righe che iniziano con l'espressione Define in base al tuo ambiente:

~/etc/apache/conf.d/auth.conf
Define SITE MyCheckmkSite
Define REALM MyRealm.org
Define SERVICENAME myservice.mydomain.tld
Define KEYTAB /omd/sites/${SITE}/etc/apache/cmk_http.keytab

<IfModule !mod_auth_kerb.c>
  LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so
</IfModule>

<Location /${SITE}>
  <If "! %{HTTP_COOKIE} =~ /^(.*;)?auth_${SITE}/ && \
    ! %{REQUEST_URI} = '/${SITE}/check_mk/register_agent.py' && \
    ! %{REQUEST_URI} = '/${SITE}/check_mk/deploy_agent.py' && \
    ! %{REQUEST_URI} = '/${SITE}/check_mk/run_cron.py' && \
    ! %{REQUEST_URI} = '/${SITE}/check_mk/restapi.py' && \
    ! %{REQUEST_URI} = '/${SITE}/check_mk/webapi.py' && \
    ! %{REQUEST_URI} = '/${SITE}/check_mk/automation.py' && \
    ! %{REQUEST_URI} -strmatch '/${SITE}/check_mk/api/*' && \
    ! %{REQUEST_URI} = '/${SITE}/check_mk/ajax_graph_images.py' && \
    ! %{QUERY_STRING} =~ /(_secret=|auth_|register_agent)/ && \
    ! %{REQUEST_URI} =~ m#^/${SITE}/(omd/|check_mk/((images|themes)/.*\.(png|svg)|login\.py|.*\.(css|js)))# ">
  Order allow,deny
  Allow from all
  Require valid-user

  AuthType Kerberos
  AuthName "Checkmk Kerberos Login"

  KrbMethodNegotiate on
  KrbMethodK5Passwd off
  KrbLocalUserMapping on


  # Environment specific: Path to the Keytab, Realm and ServicePrincipal
  KrbAuthRealm ${REALM}
  KrbServiceName HTTP/${SERVICENAME}@${REALM}
  Krb5Keytab ${KEYTAB}

  # When Kerberos auth fails, show the login page to the user
  ErrorDocument 401 '<html> \
      <head> \
        <meta http-equiv="refresh" content="1; URL=/${SITE}/check_mk/login.py"> \
      </head> \
      <body> \
        Kerberos authentication failed, redirecting to login page. \
        <a href="/${SITE}/check_mk/login.py">Click here</a>. \
      </body> \
    </html>'
  </If>
</Location>

# These files are accessible unauthenticated (login page and needed ressources)
<LocationMatch /${SITE}/(omd/|check_mk/(images/.*\.png|login\.py|.*\.(css|js)))>
  Order allow,deny
  Allow from all
  Satisfy any
</LocationMatch>
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Una volta eseguita la configurazione di esempio mostrata, saranno consentite solo le autenticazioni tramite Kerberos. Ora devi decidere se vuoi continuare a supportare l'basic autho con o senza cookie — per gli utenti senza SSO, o come soluzione di ripiego. Ciò che dovrai configurare per questo è spiegato nei due capitoli seguenti.

3. Abilita l'autenticazione di base

Se vuoi continuare a consentire l'autenticazione tramite basic auth oltre all'SSO tramite Kerberos, devi modificare una riga nella configurazione sopra riportata.

Per farlo, cambia il valore nella riga seguente in on:

~/etc/apache/conf.d/auth.conf
  KrbMethodK5Passwd on
Copia il contenuto del file negli appunti
Contenuto del file copiato con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Per rendere l'autenticazione più comoda, Checkmk supporta anche l'accesso tramite cookie. In un'istanza Checkmk nuova e non modificata, questa è attualmente l'impostazione predefinita.

Infine, ma non meno importante, dovresti controllare se questa opzione di autenticazione è ancora abilitata e se deve rimanere tale.

Puoi controllare lo stato attuale del tuo sito con il seguente comando:

OMD[mysite]:~$ omd config show MULTISITE_COOKIE_AUTH
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Se qui ricevi un valore "on" e vuoi mantenere abilitata l'autenticazione tramite cookie — ad esempio come soluzione di ripiego — non devi fare altro a questo punto.

Se, invece, vuoi disabilitare l'MULTISITE_COOKIE_AUTH, puoi farlo con il seguente comando:

OMD[mysite]:~$ omd config set MULTISITE_COOKIE_AUTH off
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Quindi elimina il file cookie_auth.conf dalla directory Apache dell'istanza:

OMD[mysite]:~$ rm ~/etc/apache/conf.d/cookie_auth.conf
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

5. Diagnostica

Puoi verificare se la tua configurazione Kerberos funziona utilizzando i seguenti comandi:

root@linux# kinit -p username
root@linux# klist
Copia i comandi negli appunti
Comandi copiati con successo negli appunti!
L'accesso in scrittura agli appunti è stato negato!

Last modified: Tue, 20 Jan 2026 14:24:23 GMT via commit bc1234177
In questa pagina