Wir nutzen Cookies, um Ihnen eine optimale Nutzung dieser Webseite zu ermöglichen.Visit our Privacy Policy to learn more. Wir nehmen an, dass Sie damit einverstanden sind, falls Sie diese Webseite weiter besuchen.

Ihre Cookie-Einstellungen
Ihre Einstellungen wurden aktualisiert.
Damit die Änderungen wirksam werden, löschen Sie bitte Ihre Browser-Cookies und den Cache und laden dann die Seite neu.

Single Sign-On mit Kerberos

Checkmk Manual

Suche im Handbuch

Dieser Artikel ist noch nicht fertig und nur ein Entwurf!

1. Einleitung

Ein Single Sign-On auf die GUI von Checkmk mit Kerberos wird von Checkmk zwar nicht offiziell unterstützt, aber Sie können das recht einfach selbst einrichten. Wie das geht, zeigt Ihnen diese Anleitung.

Folgende Voraussetzungen müssen erfüllt sein, um die Konfiguration in Checkmk nachträglich auf SSO (Single Sign-On) mit Kerberos umzustellen:

  • Die Apache-Version ist 2.4 oder neuer.
  • Auf dem Checkmk-Server ist das Modul libapache-mod-auth-kerb (bzw. mod_auth_kerb unter RHEL/CentOS oder apache2-mod_auth_kerb unter SUSE) installiert.
  • Der Kerberos-Client ist auf dem Checkmk-Server installiert und konfiguriert.
  • Eine Keytab wurde erstellt und darf von dem Site-User gelesen werden.
  • Der Checkmk-Server wurde als Service Principal eingerichtet.
  • Der Browser der Clients ist für den Zugriff mittels Kerberos konfiguriert.
  • Die Checkmk-Instanz steht auf Cookie-Auth

Der letzte Punkt stellt sicher, dass sich Nutzer ohne SSO über die reguläre Loginseite anmelden können. Sie können diese Möglichkeit auch deaktiveren. In diesem Fall gilt die Voraussetzung natürlich nicht.

2. Integration von Kerberos

Um Checkmk auf die Authentifizierung über Kerberos umzustellen, wechseln Sie als Site User in das Verzeichnis des Apache und sichern die Datei cookie_auth.conf weg. Diese wird nicht mehr benötigt.

OMD[mysite]:~$ mv etc/apache/conf.d/auth.conf /tmp/

Danach wird die Datei auth.conf gelöscht und neu geschrieben. Passen Sie die benutzten Pfade entsprechend Ihrer Umgebung an und ersetzen Sie den KrbAuthRealm und den Wert der Variable SITE entsprechend Ihrer Umgebung:

~/etc/apache/conf.d/auth.conf
Define SITE mysite

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

<Location /${SITE}>
  Order allow,deny
  Allow from all

  AuthType Kerberos
  AuthName "Check_MK Kerberos Login"
  KrbServiceName HTTP
  KrbMethodNegotiate on
  KrbMethodK5Passwd off
  KrbLocalUserMapping on
  KrbSaveCredentials on

  # Use Kerberos auth only in case there is no Check_MK authentication
  # cookie provided by the user
  Require expr %{HTTP_COOKIE} =~ /auth_/
  Require expr %{REQUEST_URI} = "/${SITE}/check_mk/register_agent.py"
  Require expr %{QUERY_STRING} =~ /(_secret=|auth_|register_agent)/
  Require valid-user

  # Environment specific: Path to the keytab and the realm
  Krb5Keytab /etc/apache2/krb5.keytab.f-mk-mon-p01
  KrbAuthRealm MYCOMPANY.ORG

  # When Kerberos auth fails, show the login page to the user
  ErrorDocument 401 /${SITE}/check_mk/login.py
</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>

3. Auf Cookies basierende Logins

Wenn Sie nur noch Logins über SSO zulassen möchten, deaktivieren Sie das Cookie-Auth. Achten Sie darauf, dass Sie diesen Wert nur ändern können, wenn die Instanz gestoppt ist:

OMD[mysite]:~$ omd config set MULTISITE_COOKIE_AUTH off

Sie können dann entsprechend auch in der auth.conf die folgende Zeile weglassen oder auskommentieren:

~/etc/apache/conf.d/auth.conf
#  Require expr %{HTTP_COOKIE} =~ /auth_/