Zeige QuelltextÄltere VersionenLinks hierherNach oben Letzte ÄnderungenPer E-Mail sendenDruckenPermalink × Inhaltsverzeichnis Secret Key Management Key-Rollover automatisieren Manuelle Neuvergabe von Sealer-Passwörtern ← Single Logout Konfiguration des Verschlüsselungsalgorithmus → Secret Key Management Datenbank?Wenn Sie Sessions und User Consent in einer IdP-seitigen Datenbank ablegen, können Sie diesen Schritt überspringen. In der Standardeinstellung speichert der Shibboleth IdP Informationen zu Sitzungen und User Consent clientseitig im Browser, in Cookies und ggf. HTML Local Storage (siehe Shibboleth Wiki). Diese Daten werden durch Verschlüsselung geschützt. Die Keys, die dabei zum Einsatz kommen, sollten regelmäßig getauscht werden, wenn Sie die oben genannten Informationen nicht serverseitig speichern. Key-Rollover automatisieren secrets.propertiesDie folgende Version des Skriptes geht davon aus, dass Sie sensible IdP-interne Informationen in der Datei credentials/secrets.properties liegen, wie es im IdP 4.x als Standard eingeführt wurde (Doku). Legen Sie Beispiel-Skript herunter und legen es nach /opt/shibboleth-idp/bin/update-sealer.sh (Quelle: Shibboleth Wiki). #!/bin/bash set -e set -u # Default IDP_HOME if not already set if [ ! -d "${IDP_HOME:=/opt/shibboleth-idp}" ] then echo "ERROR: Directory does not exist: ${IDP_HOME}" >&2 exit 1 fi function get_config { # Key to lookup (escape . for regex lookup) local KEY=${1:?"No key provided to look up value"} # Passed default value local DEFAULT="${2:-}" # Lookup key, strip spaces, replace idp.home with IDP_HOME value local RESULT if [[ ${KEY} == "idp.sealer.storePassword" ]]; then RESULT=$(sed -rn '/^'"${KEY//./\\.}"'\s*=/ { s|^[^=]*=(.*)\s*$|\1|; s|%\{idp\.home\}|'"${IDP_HOME}"'|g; p}' ${IDP_HOME}/credentials/secrets.properties | sed 's/^\ //') else RESULT=$(sed -rn '/^'"${KEY//./\\.}"'\s*=/ { s|^[^=]*=(.*)\s*$|\1|; s|%\{idp\.home\}|'"${IDP_HOME}"'|g; p}' ${IDP_HOME}/conf/idp.properties | sed 's/^\ //') fi # Set if no result with default - exit if no default echo "${RESULT:-${DEFAULT:?"No value in config and no default defined for: '${KEY}'"}}" } # Get config values ## Official config items ## storefile=$(get_config idp.sealer.storeResource) versionfile=$(get_config idp.sealer.versionResource) storepass=$(get_config idp.sealer.storePassword) alias=$(get_config idp.sealer.aliasBase secret) ## Extended config items ## count=$(get_config idp.sealer._count 30) # default cannot be empty - so "self" is the default (self is skipped for syncing) sync_hosts=$(get_config idp.sealer._sync_hosts ${HOSTNAME}) # Run the keygen utility ${0%/*}/runclass.sh net.shibboleth.utilities.java.support.security.BasicKeystoreKeyStrategyTool \ --storefile "${storefile}" \ --storepass "${storepass}" \ --versionfile "${versionfile}" \ --alias "${alias}" \ --count "${count}" # Display current version echo "INFO: $(tac "${versionfile}" | tr "\n" " ")" >&2 for EACH in ${sync_hosts} do if [ "${HOSTNAME}" == "${EACH}" ] then echo "INFO: Host '${EACH}' is myself - skipping" >&2 elif ! ping -q -c 1 -W 3 ${EACH} >/dev/null 2>&1 then echo "ERROR: Host '${EACH}' not reachable - skipping" >&2 else # run scp in the background scp "${storefile}" "${versionfile}" "${EACH}:${IDP_HOME}/credentials/" & fi done Machen Sie das Skript ausführbar: root@idp:~# chmod 755 /opt/shibboleth-idp/bin/update-sealer.sh Dieses Skript liest die Sealer-relevanten Einstellungen aus ./conf/idp-properties und erzeugt damit neue Schlüsselwerte. Dazu legen Sie am besten einen täglichen Cronjob an: /etc/cron.d/shibboleth-idp 01 01 * * * root /opt/shibboleth-idp/bin/update-sealer.sh >/dev/null Manuelle Neuvergabe von Sealer-Passwörtern Falls Sie bei der IdP-Installation am Anfang ein zu einfaches Sealer-Passwort vergeben haben, können Sie dieses problemlos ändern: Löschen Sie die Dateien ./credentials/sealer.* und vergeben Sie in ./conf/idp.properties neue Passwörter (idp.sealer.storePassword und idp.sealer.keyPassword). Danach rufen Sie einfach obigen Cronjob manuell auf. Das Skript erstellt die fehlenden Dateien unter Verwendung der neuen Passwörter neu. Achtung: Sonderzeichen können in Javas .properties-Dateien zu Problemen führen. Daher raten wir davon ab, bei den Passwörtern Sonderzeichen zu verwenden. idp4, tutorial, not-included-in-ansible ← Single Logout Überblick: Tutorial zur IdP-Inbetriebnahme Konfiguration des Verschlüsselungsalgorithmus → idp4 tutorial not-included-in-ansible Zuletzt geändert: vor 23 Monaten Anmelden