Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
de:shibidp3monitoring [2016/07/26 14:50] – angelegt Martin Lunze | de:shibidp3monitoring [2021/05/03 14:58] – Silke Meyer | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ===== Monitoring der Logins | + | ===== Monitoring der Logins ===== |
+ | <callout color="# | ||
+ | Dieser Artikel ist ein Community-Beitrag für Shibboleth IdP 3.x. Es ist unklar, ob er für Shibboleth IdP 4.x so noch gilt. | ||
+ | </ | ||
+ | Standardmäßig werden innerhalb der '' | ||
- | Standardmäßig werden innerhalb | + | In der [[http:// |
- | Wie Sie z.B. die Anzahl | + | - Anpassung des Log-Formates: Es fehlt ein abschließendes " |
- | + | ||
- | Um das verwendete Analyse-Tool auch für den neuen IdP 3.x verwenden zu können müssen Sie jedoch | + | |
- | + | ||
- | Zum einen müssen Sie das Log-Format anpassen. Hier fehlt ein abschließendes " | + | |
- | + | ||
- | <file xml conf/ | + | |
<!-- ... --> | <!-- ... --> | ||
Zeile 17: | Zeile 15: | ||
<!-- ... --> | <!-- ... --> | ||
</ | </ | ||
- | + | - Anpassung des eigentlichen Analyse-Tools: Ersetzen Sie den Filter für einen Profil-Typ: <file python bin/ | |
- | Der zweite Punkt wäre die Anpassung des eigentlichen Analyse-Tools. Hier ersetzen wir den Filter für einen Profil-Typ. | + | |
- | + | ||
- | <file python bin/ | + | |
<!-- ... --> | <!-- ... --> | ||
Zeile 28: | Zeile 23: | ||
<!-- ... --> | <!-- ... --> | ||
</ | </ | ||
+ | |||
+ | ===== Alter der heruntergeladenen Metadaten ===== | ||
+ | |||
+ | Die Föderationsmetadaten der DFN-AAI sind fünf Tage lang gültig. Wenn der Download über den Zeitraum von ein paar Tagen nicht funktioniert, | ||
+ | Hier finden Sie in sehr einfaches Skript, das das Alter der Dateien für Sie prüft. Es lässt sich via NRPE durch Nagios oder andere kompatible Monitoring-Systeme direkt auf dem Shibboleth-IdP ausführen und warnt wenn die heruntergeladenen Dateien nicht existieren oder deren Zeitstempel zu weit in der Vergangenheit liegt. | ||
+ | |||
+ | <file bash check_metadata_time.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | RC=3 | ||
+ | ERR=" | ||
+ | |||
+ | WARN=" | ||
+ | CRIT=" | ||
+ | |||
+ | METAPATH="/ | ||
+ | METADATA=(" | ||
+ | |||
+ | CURTIME=$(date +%s) | ||
+ | MAX=0 | ||
+ | |||
+ | for i in " | ||
+ | do | ||
+ | FILE=" | ||
+ | MODTIME=$(stat -c %Y " | ||
+ | if [ -z " | ||
+ | echo " | ||
+ | exit 2 | ||
+ | else | ||
+ | DUR=$(( $CURTIME - $MODTIME )) | ||
+ | if [ $DUR -gt $MAX ]; then | ||
+ | MAX=$DUR | ||
+ | fi | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | if [ $MAX -lt $WARN ]; then | ||
+ | RC=0 | ||
+ | ERR=" | ||
+ | else | ||
+ | if [ $MAX -gt $CRIT ]; then | ||
+ | RC=2 | ||
+ | else | ||
+ | RC=1 | ||
+ | fi | ||
+ | ERR=" | ||
+ | fi | ||
+ | |||
+ | echo " | ||
+ | exit $RC | ||
+ | </ | ||
+ | |||
+ | Gern kann dieses mit Parametern versehen werden, um dynamisch die zu prüfenden Metadaten-Dateien zu bestimmen oder die Schwellwerte für Warnungen anzupassen. | ||
+ | |||
+ | ===== Automatischer Test-Login ===== | ||
+ | |||
+ | Um zu wissen, ob der Login am Shibboleth-IdP aus Sicht der Nutzer*innen möglich ist, empfiehlt es sich, einen kompletten Login-Vorgang durchzuführen. | ||
+ | Dazu können Sie folgendes Python-Skript in Ihrem Monitoring-System verwenden. Es wird lokal auf dem IdP (z.B. via NRPE) ausgeführt. | ||
+ | Voraussetzungen: | ||
+ | * Der IdP muss [[https:// | ||
+ | * Das Python-Modul ' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Folgende Stellen müssen Sie für Ihre Infrastruktur anpassen: | ||
+ | * Test-Nutzer und -Passwort, | ||
+ | * der zum Login verwendete SP | ||
+ | |||
+ | <file python check_shiblogin_v3.py> | ||
+ | <!-- ... --> | ||
+ | |||
+ | sp_entityid = " | ||
+ | sp_target_url = " | ||
+ | user = " | ||
+ | password = " | ||
+ | |||
+ | <!-- ... --> | ||
+ | </ | ||
+ | |||
+ | Das Skript kann in drei verschiedenen Modi ausgeführt werden: | ||
+ | * NormalLoginMode, | ||
+ | * ShortLoginMode, | ||
+ | * FullLoginMode, | ||
+ | |||
+ | < | ||
+ | usage: check_shiblogin_v3.py [-h] [-s | -f] | ||
+ | |||
+ | Script to check if shibboleth-login is working. Normal login attempt stops after attribute release. | ||
+ | |||
+ | optional arguments: | ||
+ | -h, --help | ||
+ | -s, --short | ||
+ | -f, --full | ||
+ | </ | ||
+ | |||
+ | ===== Gültigkeitsdauer der Zertifikate lokaler Metadaten prüfen ===== | ||
+ | |||
+ | Bindet man an der DFN-AAI vorbei auf dem IdP weitere lokale Metadatensätze ein, so empfiehlt es sich, die Gültigkeitsdauer der darin verwendeten Zertifikate zu überwachen. Ein Shibboleth-IdP stellt keine Verbindung zu Systemen mit abgelaufenen Zertifikaten her. | ||
+ | |||
+ | Die folgenden drei PHP-Skripte müssen dazu auf dem IdP hinterlegt und z.B. via NRPE vom Monitoring-Dienst ausgeführt werden. | ||
+ | |||
+ | {{ : | ||
+ | {{ : | ||
+ | {{ : | ||
+ | |||
+ | Dieses Skript wird genutzt, um die Gültigkeit der Zertifikate zu prüfen, die in den Metadaten der Shibboleth Service Provider hinterlegt sind. Es wurde speziell auf die Version 3.2.1 des Shibboleth Identity Providers zurecht geschnitten. FIXME | ||
+ | |||
+ | Funktionsweise: | ||
+ | |||
+ | Zunächst wird versucht die Datei ''/ | ||
+ | Berücksichtigt werden dabei jedoch nur Einträge mit dem Attribut '' | ||
+ | |||
+ | Nachdem alle Dateien durchlaufen wurden, wird eine Zusammenfassung im Nagios-Format ausgegeben. Mit Hilfe dieser Ausgabe kann im Centreon ein Check eingerichtet werden, wodurch vor ablaufenden SPs gewarnt wird. | ||
+ | |||
+ | Die Ausgabe enthält die entityIDs der betroffenen SPs und kann wie folgt aussehen: | ||
+ | |||
+ | < | ||
+ | OK - OK (30/30) | ||
+ | WARNING - OK (25/30), WARN (5/30) | ||
+ | CRITICAL - OK (20/30), WARN (8/30), CRIT (2/30) | ||
+ | WARN - The certificates of the following SPs are running End-Of-Live: | ||
+ | https:// | ||
+ | ... | ||
+ | http:// | ||
+ | CRIT - This are the SPs whome certificates are expired | ||
+ | https:// | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Der Aufruf des Skriptes kann wie folgt geschehen: | ||
+ | |||
+ | < | ||
+ | This script reads metadata of shibboleth service providers and checks the lifetime of their certificates. | ||
+ | |||
+ | Usage: | ||
+ | PHP metadataCertificateValidator.php | ||
+ | PHP metadataCertificateValidator.php [-h | --help] | ||
+ | PHP metadataCertificateValidator.php [-v | --verbose] | ||
+ | PHP metadataCertificateValidator.php [-p < | ||
+ | PHP metadataCertificateValidator.php [-m < | ||
+ | PHP metadataCertificateValidator.php [-w < | ||
+ | PHP metadataCertificateValidator.php [-c < | ||
+ | |||
+ | -h, --help | ||
+ | shows this help | ||
+ | -v, --verbose | ||
+ | turn on verbose-mode | ||
+ | -p, --provider < | ||
+ | path to config-file: | ||
+ | -m, --metadata < | ||
+ | directory of metadata-files | ||
+ | -w, --warning < | ||
+ | days until expiration of certificate (default: 30) | ||
+ | -c, --critical < | ||
+ | days until expiration of certificate (default: 7) | ||
+ | </ | ||
+ | |||
+ | {{tag> |