Angepasste Kennwortverschlüsselung aktivieren
Sie müssen Kennwörter, die in der Konfiguration von WebSphere Application Server enthalten sind, schützen. Nachdem Sie Ihr Serverprofil erstellt haben, können Sie den Zugriffschutz hinzufügen, indem Sie eine angepasste Klasse für die Verschlüsselung der Kennwörter erstellen.
Vorbereitende Schritte
Informationen zu diesem Vorgang
Vorgehensweise
- Fügen Sie für jeden Server- und Clientprozess die folgenden Systemeigenschaften hinzu. Aktualisieren Sie für
jeden Serverprozess die Datei server.xml. Fügen Sie
diese Eigenschaften als genericJvmArgument-Argument mit dem Präfix
-D hinzu.
com.ibm.wsspi.security.crypto.customPasswordEncryptionClass= com.acme.myPasswordEncryptionClass com.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=true
Wichtig: Falls wsadmin im Verbindungsmodus verwendet wird, muss diese Eigenschaft für den wsadmin-Client im Deployment Manager oder im Server, zu dem die Verbindung hergestellt ist, mit dem Befehl AdminTask.setJVMSystemProperties oder über die Konsole festgelegt werden. Falls wsadmin im lokalen Modus verwendet wird, (conntype=NONE) kann die Eigenschaft wie im folgenden Beispiel mit einer javaoption-Befehlsoption festgelegt werden:wsadmin -conntype none -lang jython -javaoption -Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionClass=<encryptionClassToUse>
Tipp: Falls die angepasste Verschlüsselungsklasse den Namen com.ibm.wsspi.security.crypto.CustomPasswordEncryptionImpl hat und im Klassenpfad enthalten ist, wird die Verschlüsselung automatisch aktiviert. Definieren Sie die oben aufgelisteten Systemeigenschaften nicht, wenn die angepasste Implementierung diesen Paket- und Klassennamen hat. Wenn Sie die Verschlüsselung für diese Klasse inaktivieren möchten, müssen Sie com.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=false als Systemeigenschaft angeben. - Wählen Sie eine der folgenden Methoden aus, um die Laufzeit von WebSphere Application Server
für das Laden
der angepassten Implementierungsklasse für die Verschlüsselung zu laden:
- Kopieren Sie die angepasste Verschlüsselungsklasse
in eine JAR-Datei (Java-Archiv) im Verzeichnis ${WAS_INSTALL_ROOT}/classes,
das Sie erstellt haben.
Fehler vermeiden: WebSphere Application Server erstellt das Verzeichnis ${WAS_INSTALL_ROOT}/classes nicht. Weitere Informationen zum Verzeichnis "classes" finden Sie im Artikel "Unterverzeichnis "classes" im Profil für angepasste Klassen erstellen".gotcha
- Kopieren Sie die angepasste Verschlüsselungsklasse in eine JAR-Datei (Java-Archiv) im Verzeichnis ${WAS_HOME}/lib/ext.
- Kopieren Sie die angepasste Verschlüsselungsklasse
in eine JAR-Datei (Java-Archiv) im Verzeichnis ${WAS_INSTALL_ROOT}/classes,
das Sie erstellt haben.
- Starten Sie alle Serverprozesse neu.
- Bearbeiten Sie alle Konfigurationsdokumente, die ein Kennwort enthalten, und speichern Sie die Konfiguration. Alle Kennwortfelder durchlaufen dann das Dienstprogramm WSEncoderDecoder. Wenn dieses Dienstprogramm aktiviert ist, ruft es den Verbindungspunkt auf. In den Konfigurationsdokumenten werden die Tags {custom:alias} angezeigt. Die Kennwörter sind auch nach der Verschlüsselung noch Base64-codiert. Sie ähneln bis auf die Tags codierten Kennwörtern.
- Verschlüsseln Sie alle Kennwörter in clientseitigen Eigenschaftendateien mit dem
Dienstprogramm PropsFilePasswordEncoder(.bat oder .sh). Dieses Dienstprogramm erfordert, dass die oben aufgelisteten Eigenschaften
im Script als Systemeigenschaften
definiert sind, damit die neuen Kennwörter verschlüsselt und nicht codiert werden. Sie müssen das Script bearbeiten, um die Eigenschaften in die
Java-Befehlszeile aufzunehmen.
Beispiel:
Eine Liste der Dateien, die in PropsFilePasswordEncoder ausgeführt werden müssen, finden Sie in Tabelle 2 im Artikel Kennwörter in Dateien codieren.%JAVA_EXE% -Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=true -Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionClass=mysample.MySampleEncryption -Dcmd.properties.file=%TMPJAVAPROPFILE% "-Dwas.install.root=%WAS_HOME%" com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.security.util.PropFilePasswordEncoder %*
- Wenn Sie die Kennwörter von Client-JVMs entschlüsseln möchten, fügen Sie die oben aufgelisteten Eigenschaften als Systemeigenschaften zu jedem Clientdienstprogramm hinzu.
- Stellen Sie vor dem Aktivieren dieser Funktion sicher, dass der Klassenpfad aller Knoten die angepassten Verschlüsselungsklassen
enthalten. Bei der Aktivierung spielt die Reihenfolge eine wichtige Rolle. Wenn Sie zu einer Zelle mit Kennwortverschlüsselung einen neuen Knoten hinzufügen, muss der neue
Knoten vor Verwendung des Befehls
addNode die angepassten Verschlüsselungsklassen enthalten. Schauen Sie sich die folgenden Aktivierungszenarien
für WebSphere Application Server Network Deployment an:
- Das Profil StandAloneProfile verschlüsselt Kennwörter vor der Integration in eine Deployment-Manager-Zelle mit einem anderen Schlüssel. Für dieses Szenario müssen Sie die angepasste Kennwortverschlüsselung deinstallieren, um sicherzustellen, dass den Kennwörtern in der Konfiguration vor Ausführung des Befehls addNode das Tag {xor} vorangestellt ist. Dieselbe Implementierung des Verbindungspunktes muss im Verzeichnis /classes enthalten sein, bevor der Befehl addNode ausgeführt wird. Außerdem müssen die richtigen Konfigurationseigenschaften so gesetzt sein, dass der neue Knoten das Format der verschlüsselten Kennwörter in der Datei security.xml lesen kann, nachdem die Integration abgeschlossen ist.
- Im Profil StandAloneProfile ist keine Kennwortverschlüsselung vor der Integration in eine Deployment-Manager-Zelle konfiguriert. Dieselbe Implementierung des Verbindungspunktes muss im Verzeichnis /classes enthalten sein, bevor der Befehl addNode ausgeführt wird. Außerdem müssen die richtigen Konfigurationseigenschaften so gesetzt sein, dass der neue Knoten das Format der verschlüsselten Kennwörter in der Datei security.xml lesen kann, nachdem die Integration abgeschlossen ist.
- Falls die angepasste Kennwortverschlüsselung in einer Zelle mit mehreren Knoten aktiviert wird, müssen die korrekten Konfigurationseigenschaften aktualisiert werden. Außerdem muss sich die Implementierung der angepassten Kennwortverschlüsselung auf allen Knoten befinden. Stoppen Sie alle Prozesse in der Zelle. Starten Sie dann den Deployment Manager. Bearbeiten Sie die Sicherheitskonfiguration in der Administrationskonsole, und speichern Sie die Konfiguration. Prüfen Sie, ob die Kennwörter verschlüsselt werden. Dies ist der Fall, wenn den Kennwörtern in der Datei security.xml das Tag {custom:alias} vorangestellt ist.
- Führen Sie auf jedem Knoten den Befehl syncNode aus. Starten Sie dann jeden Knoten einzeln. Falls ein Knoten nicht gestartet werden kann, vergewissern Sie sich, dass die angepasste Kennwortverschlüsselung in der Datei security.xml ordnungsgemäß aktiviert ist und dass sich die Implementierungsklasse im richtigen Verzeichnis /classes für die Plattform befindet.
Ergebnisse
Nächste Schritte
Unterartikel
Angepasste Kennwortverschlüsselung inaktivieren
Wenn die angepasste Kennwortverschlüsselung nicht funktioniert oder nicht mehr benötigt wird, führen Sie diese Task aus, um sie zu inaktivieren.
Zugehörige Konzepte:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_enable_custpass_encrypt
Dateiname:tsec_enable_custpass_encrypt.html