Passwörter für SSO verschlüsseln
Um mit dem Schlüsselspeicher zu arbeiten, verwendet der Schlüsselspeicher-Anbieter ein sicheres Token, das in einer Datei verschlüsselt gespeichert wird. Alle Daten, die in den Schlüsselspeicher geschrieben werden, werden anhand des Passworts sicher gespeichert. Beim ersten Starten des Anbieters werden ein zufälliger Passwortwert und eine Keystore-Datei generiert, wenn sie nicht bereits vorhanden sind.
* 
Das Schlüsselspeicherpassword und die Schlüsselspeicherdatei sind auf den Anwendungsbenutzer zu beschränken. Der Anwendungsbenutzer muss Lese-/Schreibberechtigungen für die Dateien haben.
* 
Die folgenden Beispiele sind Windows-basiert. Ändern Sie die Befehle ggf., wenn Sie ein Linux-Betriebssystem verwenden.
Um eine Schlüsselspeicherdatei vorab zu erstellen und anfängliche Daten in ihr zu speichern, müssen Sie das Sicherheitsmanagement-Tool verwenden.
1. Laden Sie die Zip-Datei für das Sicherheitsmanagement-Tool von der PTC Support-Website herunter. Wenn dieses Tool bereits installiert ist, fahren Sie mit Schritt 3 fort.
2. Extrahieren Sie den Inhalt der ZIP-Datei in ein Verzeichnis.
3. Erstellen Sie eine Konfigurationsdatei mit den folgenden Parametern, und platzieren Sie sie im Ordner bin der entpackten Dateien.
* 
In diesem Beispiel heißt die Datei keystore.conf, die Version des Tools ist 1.0.0.36, und es befindet sich unter C://security-common-cli-1.0.0.36/bin.
* 
Die default-encryption-key-length muss der Anwendungskonfiguration entsprechen. In ThingWorx ist das der Parameter InternalAesCryptographicKeyLength, der sich in platform-settings.json befindet. Der Standardwert lautet 128, Sie können jedoch auch die 256-Bit-Verschlüsselung verwenden, wenn Sie Java 1.8.0_162 oder höher verwenden. Gegebenenfalls können Sie auch ältere Java-Versionen verwenden, indem Sie die Java-Richtlinie im Hinblick auf die maximale Schlüsselgröße aktualisieren.
{
security {
secret-provider = "com.thingworx.security.provider.keystore.KeyStoreProvider"
default-encryption-key-length = 128
keystore {
password-file-path = "/ThingworxPlatform/ssoSecurityConfig"
password-file-name = "keystore-password"
path = "/ThingworxPlatform/ssoSecurityConfig"
name = "_sso_keystore"
}
}
}
4. Halten Sie den ThingWorx Server an.
5. Starten Sie eine Eingabeaufforderung als Administrator, und gehen Sie zum Speicherort security-common-cli-1.0.0.36\bin.
6. Führen Sie den folgenden Befehl aus, um zur Eingabeaufforderung des Tools zu wechseln:
C:\security-common-cli-1.0.0.36\bin> security-common-cli.bat <path to keystore>\keystore.conf
7. Führen Sie den Satz von Befehlen unten aus, um die Passwörter einzufügen:
Datenbank-Passwort:

> set encrypt.accesstoken.password <add-password-here>
Passwort für den Keystore-Speicher (Passwort für sso-keystore.jks):
> set encrypt.keystorestore.password <add-keystorestore-password-here>
Passwort für die Keystore-Schlüssel (Passwort für die Schlüssel in sso-keystore.jks):
> set encrypt.keystorekey.password <add-keystorekey-password-here>
Client-Verschlüsselungswörter der Serviceanbieter: Legen Sie für jeden Eintrag AuthorizationServerSettings.<ID des Autorisierungsservers> (erwähnt in der Datei /ThingworxPlatform/ssoSecurityConfig/sso-settings.json)

> set <AuthorizationServerId>.encrypt.SP.clientSecret <add-SP-clientSecret-here>
Führen Sie beispielsweise für die nachfolgende Konfigurationsdatei "sso-settings.json" die Befehle aus, die unter der Datei aufgeführt sind:
"AuthorizationServersSettings": {
"PingFed1": {
"clientId": "twx-sp-client-1",
"clientSecret": "twx-sp-client_1234",
"authorizeUri": "https://pingfed1.com:9031/as/authorization.oauth2",
"tokenUri": "https://pingfed1.com:9031/as/token.oauth2",
"clientAuthScheme": "form"
},
"PingFed2": {
"clientId": "twx-sp-client-2",
"clientSecret": "twx-sp-client_123456",
"authorizeUri": "https://pingfed2.com:9031/as/authorization.oauth2",
"tokenUri": "https://pingfed2.com:9031/as/token.oauth2",
"clientAuthScheme": "form"
}
}

Run:
> set PingFed1.encrypt.SP.clientSecret twx-sp-client_1234
> set PingFed2.encrypt.SP.clientSecret twx-sp-client_123456
Client-Geheimnis des Ressourcen-Anbieters (nur, wenn ThingWorx als Ressourcen-Anbieter konfiguriert ist):
> set encrypt.RP.clientSecret <add-clientSecret-here>
8. Geben Sie exit ein, um den Shell-Modus zu verlassen:
> exit
9. Öffnen Sie /ThingworxPlatform/ssoSecurityConfig/sso-settings.json, und nehmen Sie die folgenden Aktualisierungen vor:
Datenbank-Passwort: Ändern Sie unter AccessTokenPersistenceSettings den Wert password in:
"encrypt.accesstoken.password"
Passwort für den Keystore-Speicher: Ändern Sie unter KeyManagerSettings den Wert keyStoreStorePass in:
"encrypt.keystorestore.password"
Passwort für die Keystore-Schlüssel: Ändern Sie unter KeyManagerSettings den Wert keyStoreKeyPassvalue in:
"encrypt.keystorekey.password"
Client-Verschlüsselungswörter der Serviceanbieter: Ändern Sie für jeden Eintrag AuthorizationServerSettings.<IDdesAutorisierungsservers>.clientSecret den Wert clientSecret in:
"encrypt.SP.clientSecret"
10. Wenn ThingWorx als Ressourcen-Anbieter konfiguriert ist, öffnen Sie die Datei /ThingworxPlatform/ssoSecurityConfig/resourceServerSettings.json, und nehmen Sie die folgende Aktualisierung vor:
Client-Verschlüsselungswort des Ressourcen-Anbieters: Ändern Sie unter "ResourceServerSettings.accessTokenServicesSettings" den Wert clientSecret in
"encrypt.RP.clientSecret"
.
11. Starten Sie den ThingWorx Server.
War dies hilfreich?