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. Introduction

L'authentification unique (SSO) à l'interface graphique de Checkmk avec Kerberos n'est pas officiellement prise en charge par Checkmk, mais vous pouvez facilement la configurer vous-même. Ces instructions vous expliquent comment procéder.

Les conditions préalables suivantes doivent être remplies avant que la configuration dans Checkmk puisse être modifiée rétroactivement pour passer à l'authentification unique (SSO) avec Kerberos :

  • La version d'Apache est 2.4 ou plus récente.

  • Le module libapache-mod-auth-kerb est installé sur le serveur Checkmk (ou mod_auth_kerb sous Red Hat Enterprise Linux et CentOS, ou apache2-mod_auth_kerb sous SUSE).

  • Le client Kerberos est installé et configuré sur le serveur Checkmk.

  • Un fichier Keytab — par exemple /etc/krb5.keytab — a été installé et peut être lu par l'utilisateur de l'instance.

  • Le serveur Checkmk a été configuré en tant que Service Principal.

  • Le navigateur du client a été configuré pour l'accès via Kerberos.

Facultatif :

Si vous souhaitez que les utilisateurs ne disposant pas de SSO puissent toujours se connecter via la page de login standard, l'authentification par cookie doit être activée.

2. Intégration de Kerberos

Pour faire passer Checkmk à l'authentification via Kerberos, supprimez le fichier `~/etc/apache/conf.d/auth.conf` et réécrivez-le. Les entrées figurant au début du contenu du fichier suivant ne sont que des exemples. Modifiez donc toutes les lignes commençant par l'expression `Define` afin de les adapter à votre environnement :

~/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>
Copier le contenu du fichier dans le presse-papiers
Contenu du fichier copié avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Une fois la configuration d'exemple présentée exécutée, seules les authentifications via Kerberos seront autorisées. Vous devez maintenant décider si vous souhaitez continuer à prendre en charge l'basic auth, avec ou sans cookies, pour les utilisateurs ne disposant pas de SSO, ou à titre de solution de secours. Les paramètres à configurer à cet effet sont expliqués dans les deux chapitres suivants.

3. Activer l'authentification de base

Si vous souhaitez continuer à autoriser l'authentification via basic auth en plus de l'authentification unique (SSO) via Kerberos, vous devez modifier une ligne dans la configuration ci-dessus.

Pour ce faire, remplacez la valeur de la ligne suivante par on :

~/etc/apache/conf.d/auth.conf
  KrbMethodK5Passwd on
Copier le contenu du fichier dans le presse-papiers
Le contenu du fichier a été copié avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Pour faciliter l'authentification, Checkmk prend également en charge la connexion via un cookie. Dans une instance Checkmk nouvelle et non modifiée, c'est actuellement le paramètre par défaut.

Enfin, vous devriez vérifier si cette option d'authentification est toujours activée et si elle doit le rester.

Vous pouvez vérifier l'état actuel de votre instance à l'aide de l'instruction suivante :

OMD[mysite]:~$ omd config show MULTISITE_COOKIE_AUTH
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Si vous obtenez ici la valeur « on » et que vous souhaitez conserver l'authentification par cookie activée — par exemple à titre de solution de secours —, aucune autre action n'est nécessaire à ce stade.

Si, en revanche, vous souhaitez désactiver l'MULTISITE_COOKIE_AUTH, vous pouvez le faire à l'aide de l'instruction suivante :

OMD[mysite]:~$ omd config set MULTISITE_COOKIE_AUTH off
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Supprimez ensuite le fichier cookie_auth.conf du répertoire Apache de l'instance :

OMD[mysite]:~$ rm ~/etc/apache/conf.d/cookie_auth.conf
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

5. Diagnostic

Vous pouvez vérifier si votre configuration Kerberos fonctionne à l'aide des instructions suivantes :

root@linux# kinit -p username
root@linux# klist
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Last modified: Tue, 20 Jan 2026 14:24:23 GMT via commit bc1234177
Sur cette page