WARNUNG: Sie betrachten nicht die Live-Version, sondern eine ältere Version.

Produktivdatenbank in ein Testsystem übernehmen (Anmeldung als sadmin)

Diese Seite beschreibt, was zu tun ist, wenn die Datenbank eines Produktivsystems in ein bestehendes Test- oder Integrationssystem (im Folgenden „Testsystem“) übernommen wird und man sich danach wieder als Systemadministrator sadmin anmelden möchte. Sie gilt ab Webdesk 4.56 und richtet sich an Systemadministratoren und Berater. Grundlagen zur Konfigurationsdatei und zum Schlüssel finden Sie in Konfigurationsdatei webdesk.properties und Umgebungsvariablen.

Warum die Anmeldung nach der Übernahme scheitert

Webdesk verschlüsselt Passwörter, die in der Datenbank gespeichert sind, mit einem Schlüssel (AES-256). Dazu gehört auch das Passwort von sadmin: Es ist kein gewöhnlicher Benutzer, sondern ein verschlüsselt gespeicherter Systemparameter. Bei jeder Anmeldung entschlüsselt Webdesk den gespeicherten Wert und vergleicht ihn mit dem eingegebenen Passwort.

Der Schlüssel liegt aber nicht in der Datenbank, sondern bei der Installation: im Eintrag webdesk.encryption.key der Datei webdesk.properties oder in der Datei enc.key. Das Testsystem hat seinen eigenen Schlüssel. Nach der Übernahme enthält die Datenbank Werte, die mit dem Schlüssel des Produktivsystems verschlüsselt wurden, das Testsystem entschlüsselt sie aber weiter mit seinem eigenen Schlüssel:

Produktivsystem: Datenbank (verschlüsselt mit Schlüssel P) + webdesk.properties mit Schlüssel P
Testsystem:      Datenbank übernommen (Schlüssel P)         + webdesk.properties mit Schlüssel T
                 → Entschlüsseln mit T schlägt fehl

Folgen:

  • Die Anmeldung als sadmin scheitert, auch mit dem richtigen (produktiven) Passwort. Im Log steht eine Meldung mit javax.crypto.AEADBadTagException: Tag mismatch.
  • Alle anderen verschlüsselt gespeicherten Passwörter aus der Produktivdatenbank sind im Testsystem ebenfalls unlesbar, z. B. von Konnektoren, Repositories der Dokumentenverwaltung oder Groupware-Zugriffen.

Die Lösung ist, dem Testsystem den Schlüssel des Produktivsystems zu geben.

Vor dem ersten Start: Produktivkonfiguration beachten

Achtung: Mit der Produktivdatenbank übernimmt das Testsystem auch die Konfiguration des Produktivsystems, z. B. Zeiterfassungs-Anbindungen, Konnektoren, E-Mail-Versand und geplante Jobs. Sobald die Passwörter wieder entschlüsselt werden können, kann das Testsystem auf produktive Umsysteme zugreifen, Daten schreiben oder E-Mails versenden. Prüfen und deaktivieren bzw. umstellen Sie diese Einstellungen, bevor Sie das Testsystem mit dem Produktivschlüssel in Betrieb nehmen.

Hinweis: Mit dem Produktivschlüssel kann das Testsystem alle verschlüsselten Produktivdaten lesen. Schützen Sie die Konfiguration des Testsystems danach genauso wie die des Produktivsystems.

Vorgehen

  1. Webdesk im Testsystem stoppen (bei mehreren Knoten alle Knoten).
  2. Sicherung der Datei webdesk.properties des Testsystems anlegen (und von enc.key, falls vorhanden).
  3. Schlüssel des Produktivsystems ermitteln. In der webdesk.properties des Produktivsystems steht unter webdesk.encryption.key.source, wo der Schlüssel liegt:
    • webdesk_properties: Der Schlüssel ist der Wert von webdesk.encryption.key in derselben Datei.
    • file: Der Schlüssel steht in der Datei enc.key neben webdesk.properties.
    Übertragen Sie den Schlüssel auf einem sicheren Weg, nicht per E-Mail oder Ticket.
  4. Schlüssel im Testsystem eintragen, auf eine der beiden Arten:
    webdesk.encryption.key.source = webdesk_properties
    webdesk.encryption.key = <Schlüssel des Produktivsystems>
    oder enc.key durch die Datei des Produktivsystems ersetzen und webdesk.encryption.key.source = file setzen (der Eintrag webdesk.encryption.key entfällt dann). Bei mehreren Knoten auf jedem Knoten.
  5. Zugangsdaten der Datenbank neu verschlüsseln. Benutzername und Passwort der Testdatenbank in webdesk.properties sind mit dem bisherigen Schlüssel des Testsystems verschlüsselt und passen nach dem Schlüsselwechsel nicht mehr. Ohne diesen Schritt kann sich das Testsystem nicht mehr mit seiner Datenbank verbinden. Den Schritt brauchen Sie nur, wenn webdesk.credentials.encrypted = true gesetzt ist; bei false (Klartext) oder beim alten Eintrag webdesk.connection.encrypted hängen die Werte nicht vom Schlüssel ab. Zwei Möglichkeiten:
    • Webdesk verschlüsselt beim Start (empfohlen): Benutzernamen und Passwörter der Webdesk- und der Shark-Datenbank im Klartext eintragen und die Zeilen webdesk.credentials.encrypted und shark.credentials.encrypted löschen (nicht auf false setzen):
      webdesk.connection.username = <Datenbank-Benutzer>
      webdesk.connection.password = <Datenbank-Passwort>
      shark.connection.username = <Datenbank-Benutzer>
      shark.connection.password = <Datenbank-Passwort>
      Beim nächsten Start verschlüsselt Webdesk die Werte mit dem neuen Schlüssel, trägt die Einträge ...credentials.encrypted = true wieder ein und speichert die Datei. Der Benutzer, unter dem Webdesk läuft, braucht dafür Schreibrechte auf die Datei. Bei false würde Webdesk die Werte als gewollten Klartext stehen lassen.
    • Mit dem Werkzeug: Auf Windows-Installationen manageWebdeskDBProps.bat im Verzeichnis bin von Tomcat starten, „Basic“-Modus wählen und im Menü die Option zur Eingabe neuer Werte verwenden. Das Werkzeug verschlüsselt die eingegebenen Werte mit dem Schlüssel aus der Datei. Verwenden Sie dafür nicht die Parameter webdeskLogin= / webdeskPassword= des „Expert“-Modus: Bei bereits verschlüsselten Dateien werden sie unverschlüsselt gespeichert. Das Werkzeug unterstützt nur webdesk.encryption.key.source = webdesk_properties.
  6. Webdesk starten. Prüfen, dass das System startet, und dass in webdesk.properties die Zugangsdaten wieder verschlüsselt (als Base64-Text) stehen.
  7. Als sadmin mit dem Passwort des Produktivsystems anmelden.
  8. Die geänderte webdesk.properties (bzw. enc.key) des Testsystems neu sichern.

Fehlersuche

  • Testsystem startet nach dem Schlüsselwechsel nicht, Datenbankverbindung schlägt fehl: Die Zugangsdaten der Datenbank sind noch mit dem alten Schlüssel des Testsystems verschlüsselt (Schritt 5).
  • Anmeldung als sadmin scheitert weiterhin, im Log steht AEADBadTagException: Das Testsystem verwendet nicht den Schlüssel des Produktivsystems. Prüfen Sie Schlüsselquelle und Schlüssel bzw. enc.key auf allen Knoten.
  • Die Zugangsdaten stehen nach dem Start weiterhin im Klartext in der Datei: Webdesk konnte die Datei nicht schreiben (Schreibrechte), oder die Zeilen ...credentials.encrypted stehen noch mit false in der Datei.
  • Der Schlüssel des Produktivsystems ist nicht mehr auffindbar: Die verschlüsselten Werte aus der Produktivdatenbank, einschließlich des sadmin-Passworts, lassen sich dann nicht wiederherstellen. Wenden Sie sich an den Webdesk-Support.
Kommentare (0)