Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:shibidp:config-sealer [2020/04/14 10:05] Silke Meyerde:shibidp:config-sealer [2024/07/26 10:02] (aktuell) – [Secret Key Management] Link aktualisiert Doreen Liebenau
Zeile 1: Zeile 1:
 +<- de:shibidp:config-slo|Single Logout ^ de:shibidp:uebersicht|Überblick: Tutorial zur IdP-Inbetriebnahme ^ de:shibidp:config-encryption|Konfiguration des Verschlüsselungsalgorithmus ->
 +
 ====== Secret Key Management ====== ====== Secret Key Management ======
  
-<callout type="danger" title="Datenbank?"> +<callout color="#ff9900" title="Datenbank?"> 
-Wenn Sie Sessions und User Consent in einer [[de:shibidp:config-storage#session-informationen_und_user_consent|IdP-seitigen Datenbank]] ablegen, können Sie diesen Schritt überspringen.+Wenn Sie Sessions und User Consent in einer [[de:shibidp:config-storage#session-informationen_und_user_consent|IdP-seitigen Datenbank]] ablegen, können Sie diesen Schritt **überspringen**.
 </callout> </callout>
  
-In der Standardeinstellung speichert der Shibboleth IdP Informationen zu Sitzungen und User Consent clientseitig im Browser, in Cookies und ggf. HTML Local Storage ([[https://wiki.shibboleth.net/confluence/display/IDP4/SecretKeyManagement|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.+In der Standardeinstellung speichert der Shibboleth IdP Informationen zu Sitzungen und User Consent clientseitig im Browser, in Cookies und ggf. HTML Local Storage ([[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199501624/SecretKeyManagement|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 ===== ===== Key-Rollover automatisieren =====
  
-Legen Sie Beispiel-Skript herunter und legen es nach ''/opt/shibboleth-idp/bin/update-sealer.sh'' (Quelle: [[https://wiki.shibboleth.net/confluence/display/IDP4/SecretKeyManagement|Shibboleth Wiki]]).+<callout color="#ff9900" title="secrets.properties"> 
 +Die 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 ([[de:shibidp:upgrade#auslagern_von_secrets|Doku]]). 
 +</callout> 
 + 
 +Laden Sie das Beispiel-Skript herunter und legen es nach ''/opt/shibboleth-idp/bin/update-sealer.sh'' (Quelle: [[https://shibboleth.atlassian.net/wiki/spaces/IDP5/pages/3199501624/SecretKeyManagement|Shibboleth Wiki]]).
  
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
-  + 
-set -e+set -e 
 set -u set -u
-  +
 # Default IDP_HOME if not already set # Default IDP_HOME if not already set
 if [ ! -d "${IDP_HOME:=/opt/shibboleth-idp}" ] if [ ! -d "${IDP_HOME:=/opt/shibboleth-idp}" ]
Zeile 23: Zeile 29:
     exit 1     exit 1
 fi fi
- +
 function get_config { function get_config {
     # Key to lookup (escape . for regex lookup)     # Key to lookup (escape . for regex lookup)
Zeile 31: Zeile 37:
     # Lookup key, strip spaces, replace idp.home with IDP_HOME value     # Lookup key, strip spaces, replace idp.home with IDP_HOME value
     local RESULT=$(sed -rn '/^'"${KEY//./\\.}"'\s*=/ { s|^[^=]*=(.*)\s*$|\1|; s|%\{idp\.home\}|'"${IDP_HOME}"'|g; p}' ${IDP_HOME}/conf/idp.properties)     local RESULT=$(sed -rn '/^'"${KEY//./\\.}"'\s*=/ { s|^[^=]*=(.*)\s*$|\1|; s|%\{idp\.home\}|'"${IDP_HOME}"'|g; p}' ${IDP_HOME}/conf/idp.properties)
 +    if [ -z "$RESULT" ]
 +    then
 +       local RESULT=$(sed -rn '/^'"${KEY//./\\.}"'\s*=/ { s|^[^=]*=(.*)\s*$|\1|; s|%\{idp\.home\}|'"${IDP_HOME}"'|g; p}' ${IDP_HOME}/credentials/secrets.properties)
 +    fi  
     # Set if no result with default - exit if no default     # Set if no result with default - exit if no default
-    echo ${RESULT:-${DEFAULT:?"No value in config and no default defined for: '${KEY}'"}}+    echo "${RESULT:-${DEFAULT:?"No value in config and no default defined for: '${KEY}'"}}"
 } }
- +
 # Get config values # Get config values
 ## Official config items ## ## Official config items ##
 +
 storefile=$(get_config idp.sealer.storeResource) storefile=$(get_config idp.sealer.storeResource)
 versionfile=$(get_config idp.sealer.versionResource) versionfile=$(get_config idp.sealer.versionResource)
Zeile 45: Zeile 56:
 # default cannot be empty - so "self" is the default (self is skipped for syncing) # default cannot be empty - so "self" is the default (self is skipped for syncing)
 sync_hosts=$(get_config idp.sealer._sync_hosts ${HOSTNAME}) sync_hosts=$(get_config idp.sealer._sync_hosts ${HOSTNAME})
-  +# Run the keygen utility  
-# Run the keygen utility +${0%/*}/seckeygen.sh \
-${0%/*}/runclass.sh net.shibboleth.utilities.java.support.security.BasicKeystoreKeyStrategyTool \+
     --storefile "${storefile}" \     --storefile "${storefile}" \
     --storepass "${storepass}" \     --storepass "${storepass}" \
Zeile 53: Zeile 63:
     --alias "${alias}" \     --alias "${alias}" \
     --count "${count}"     --count "${count}"
-  
 # Display current version # Display current version
 echo "INFO: $(tac "${versionfile}" | tr "\n" " ")" >&2 echo "INFO: $(tac "${versionfile}" | tr "\n" " ")" >&2
-  
 for EACH in ${sync_hosts} for EACH in ${sync_hosts}
 do do
Zeile 66: Zeile 74:
         echo "ERROR: Host '${EACH}' not reachable - skipping" >&2         echo "ERROR: Host '${EACH}' not reachable - skipping" >&2
     else     else
-        # run scp in the background+ # run scp in the background 
         scp "${storefile}" "${versionfile}" "${EACH}:${IDP_HOME}/credentials/" &         scp "${storefile}" "${versionfile}" "${EACH}:${IDP_HOME}/credentials/" &
     fi     fi
Zeile 88: Zeile 96:
 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. 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.
  
-=== Aufnahme in DFN-AAI-Produktivumgebung === +{{tag>idp4 tutorial not-included-in-ansible}}
-Die Basis-Konfiguration des IdPs ist damit abgeschlossen. Für die Inbetriebnahme des IdP beachten Sie bitte die Hinweise und Empfehlungen unter [[de:production|Produktivbetrieb]]. +
- +
-** Weiter geht es mit den [[de:shibidp3attributes|Attribut-Konfigurationen in der DFN-AAI]] **+
  • Zuletzt geändert: vor 6 Jahren