Datei "sso-settings.json" konfigurieren
* 
Führen Sie die Schritte für ThingWorx Flow aus, wenn Sie mit einer früheren Version als ThingWorx Flow 9.2 arbeiten. In ThingWorx Flow 9.2 werden die Schritte automatisch ausgeführt. Wenn Sie ThingWorx Flow installiert haben, müssen Sie alle ThingWorx Foundation und ThingWorx Flow Dienste einschließlich RabbitMQ und Nginx anhalten, bevor Sie die Datei sso-settings.json konfigurieren. Nachdem Sie diese Datei konfiguriert haben, müssen Sie zuerst RabbitMQ und dann alle ThingWorx Foundation und ThingWorx Flow Dienste, einschließlich Nginx, neu starten.
Erstellen Sie die Datei sso-Settings.json im Verzeichnis ssoSecurityConfig.
Wenn Ihre Umgebung einen anderen Pfad erfordert, legen Sie den Wert der Umgebungsvariable THINGWORX_SSO_SETTINGS fest, um die Datei sso-settings.json an einem anderen Speicherort zu speichern.
Nachfolgend sehen Sie eine Beispielstruktur der Datei sso-settings.json:
{
"BasicSettings": {
"clientBaseUrl": "Informationen siehe Tabelle unten",
"idpMetadataFilePath": "Informationen siehe Tabelle unten",
"metadataEntityId": "Informationen siehe Tabelle unten",
"metadataEntityBaseUrl": "Informationen siehe Tabelle unten",
"webSSOProfileConsumerResponseSkew": "Informationen siehe Tabelle unten",
"webSSOProfileConsumerReleaseDOM": "Informationen siehe Tabelle unten",
"webSSOProfileResponseSkew": "Informationen siehe Tabelle unten",
"retriggerOnScopesRemoval": "Informationen siehe Tabelle unten",
"samlAssertionUserNameAttributeName": "Informationen siehe Tabelle unten",
"samlAssertionMaxAuthenticationAge": "Informationen siehe Tabelle unten",
"authnContextAsPassword": "Informationen siehe Tabelle unten"
},
"AccessTokenPersistenceSettings": {
"dbType": "Informationen siehe Tabelle unten",
"driverClassName": "Informationen siehe Tabelle unten",
"url": "Informationen siehe Tabelle unten",
"username": "Informationen siehe Tabelle unten",
"password": "Informationen siehe Tabelle unten",
"encryptTokenInDatabase": "Informationen siehe Tabelle unten",
"keyczarKeyFolderPath": "Ab Version 9.3 veraltet. Informationen siehe Tabelle unten"
},
"KeyManagerSettings": {
"keyStoreFilePath": "Informationen siehe Tabelle unten",
"keyStoreStorePass": "Informationen siehe Tabelle unten",
"keyStoreKey": "Informationen siehe Tabelle unten",
"keyStoreKeyPass": "Informationen siehe Tabelle unten"
},
"AuthorizationServersSettings": {
"<AuthorizationServerId1>": {
"clientId": "Informationen siehe Tabelle unten",
"clientSecret": "Informationen siehe Tabelle unten",
"authorizeUri": "Informationen siehe Tabelle unten",
"tokenUri": "Informationen siehe Tabelle unten",
"clientAuthScheme": "Informationen siehe Tabelle unten"
},
"<AuthorizationServerId2>": {
"clientId": "Informationen siehe Tabelle unten",
"clientSecret": "Informationen siehe Tabelle unten",
"authorizeUri": "Informationen siehe Tabelle unten",
"tokenUri": "Informationen siehe Tabelle unten",
"clientAuthScheme": "Informationen siehe Tabelle unten"
}
}
}
}
* 
Stellen Sie sicher, dass Sie den Wert jedes Parameters gemäß Ihrer Anforderung bearbeiten. Ihre Implementierung sieht möglicherweise anders aus und hängt von mehreren Faktoren ab, z.B. dem Ort, an dem ThingWorx gehostet wird, den Sicherheitsrichtlinien Ihrer Organisation und dem CAS für Ihren Verbund. Verwenden Sie die Informationen in den folgenden Tabellen als Leitfaden, um Werte für die verschiedenen Parameter festzulegen.
In der folgenden Tabelle werden die verschiedenen Parameter und Standardwerte des Abschnitts BasicSettings der Datei sso-settings.json beschrieben:
Parameter
Beschreibung
Wert
clientBaseUrl
Gibt die URL der ThingWorx Serverinstanz an.
Legen Sie dies auf den vollständig qualifizierten Domänennamen (FQDN) des ThingWorx Servers fest.
Wenn ThingWorx Flow installiert ist, müssen Sie den ThingWorx Flow Nginx-Hostnamen und die ThingWorx Flow Nginx-Portnummer in der URL angeben.
Wenn Sie ThingWorx für den Betrieb in einer Hochverfügbarkeitsumgebung (HA, High Availability) konfiguriert haben, geben Sie den Host und den Port des Lastenausgleichs an.
http://<ThingWorx-FQDN>:<port-number>/Thingworx
ODER
Für ThingWorx Flow: https://<ThingWorx Flow Nginx-Hostname>:<ThingWorx Flow Nginx-Portnummer>/Thingworx
ODER
In einer Hochverfügbarkeitsumgebung: https://<Lastenausgleich-Hostname>:<Lastenausgleich-Portnummer>/Thingworx
idpMetadataFilePath
Gibt den absoluten Dateipfad-Speicherort der IdP-Metadatendatei an.
/ThingworxPlatform/ssoSecurityConfig/sso-idp-metadata.xml
metadataEntityId
Gibt die Entitäts-ID der Dienstanbieter-Verbindung an.
PingFederate als CAS: Verwenden Sie die eindeutige ID, die Sie beim Konfigurieren der Dienstanbieter-Verbindung gewählt haben.
Azure AD als CAS: Verwenden Sie die Identifier (Entitity ID), die Sie beim Konfigurieren der Basic SAML settings definiert haben.
AD FS als CAS: Verwenden Sie den Relying party trust identifier, den Sie beim Konfigurieren der Vertrauensstellungseinstellungen der vertrauenden Seite definiert haben.
metadataEntityBaseUrl
Gibt den vollständig qualifizierten Domänennamen des ThingWorx Servers an.
* 
Die Verwendung von nicht vollständig qualifizierten Domänennamen wird nicht empfohlen. Wenn Ihre Organisation sich für die Verwendung eines nicht vollständig qualifizierten Domänennamens entscheidet, muss die IT-Abteilung sicherstellen, dass der Domänenname für Client-Computer zugänglich und ordnungsgemäß in den ThingWorx SSO-Konfigurationsdateien konfiguriert ist.
Wenn ThingWorx Flow installiert ist, geben Sie die ThingWorx Flow Nginx-URL an.
* 
Führen Sie diesen Schritt aus, wenn Sie eine frühere Version als ThingWorx Flow 9.2 verwenden. Dieser Schritt wird in ThingWorx Flow 9.2 automatisiert.
Wenn Sie ThingWorx für den Betrieb in einer Hochverfügbarkeitsumgebung (HA, High Availability) konfiguriert haben, geben Sie den Host und den Port des Lastenausgleichs an.
http://<ThingWorx-FQDN>:<port-number>/Thingworx
ODER
Für ThingWorx Flow: https://<ThingWorx Flow Nginx-Hostname>:<ThingWorx Flow Nginx-Portnummer>/Thingworx
ODER
In einer Hochverfügbarkeitsumgebung: https://<Lastenausgleich-Hostname>:<Lastenausgleich-Portnummer>/Thingworx
webSSOProfileConsumerResponseSkew
Gibt die Versatztoleranz für die Assertion Consumer-Antwort für SAML 2.0 Web SSO an.
Berücksichtigen Sie beim Festlegen dieses Werts Ihre eigenen Sicherheitsanforderungen sowie Latenz im Unternehmensnetzwerk.
Verwenden Sie diese Einstellung, um den Zeitraum (in Sekunden) festzulegen, der für die Rückgabe einer Antwort auf eine Anmeldeanforderung vom CAS an ThingWorx zulässig ist. Wenn die Antwort auf eine Anmeldeanforderung länger als dieser Wert dauert, schlägt der Anmeldeversuch fehlt.
Die Versatztoleranz ist die Abweichung bei der Antwortgültigkeit, die der Empfänger aufgrund der angenommenen Unterschiede zwischen Systemtaktzeiten zulässt. Als optimale Vorgehensweise empfiehlt sich, die Auswirkungen des Versatzes zu minimieren, indem sichergestellt wird, dass die Taktraten der betroffenen Systeme ordnungsgemäß synchronisiert sind.
300
webSSOProfileConsumerReleaseDOM
Bestimmt, ob das Sicherheits-Framework an der SAML-Bestätigung festhält, nachdem die Authentifizierung abgeschlossen ist.
Wenn falsch festgelegt wird, wird die SAML-Bestätigung nach der Authentifizierung beibehalten.
wahr
webSSOProfileResponseSkew
Gibt die Versatztoleranz für die Profilantwort für SAML 2.0 Web SSO an.
Berücksichtigen Sie beim Festlegen dieses Werts Ihre eigenen Sicherheitsanforderungen sowie Latenz im Unternehmensnetzwerk.
Die Versatztoleranz ist die Abweichung bei der Antwortgültigkeit, die der Empfänger aufgrund der angenommenen Unterschiede zwischen Systemtaktzeiten zulässt. Als optimale Vorgehensweise empfiehlt sich, die Auswirkungen des Versatzes zu minimieren, indem sichergestellt wird, dass die Taktraten der betroffenen Systeme ordnungsgemäß synchronisiert sind.
300
retriggerOnScopesRemoval
Gibt an, ob die Liste der erforderlichen Bereiche geändert wurde und aktualisiert werden muss.
Wenn der Wert auf wahr festgelegt wird, gibt dies an, dass der Liste der erforderlichen Bereiche ein Bereich hinzugefügt oder aus ihr entfernt wurde.
Wenn der Wert auf falsch festgelegt wird, gibt dies an, dass der Liste der erforderlichen Bereiche ein Bereich hinzugefügt wurde.
wahr
samlAssertionUserNameAttributeName
Gibt an, welches SAML-Attribut den Wert enthält, der die Benutzernamen der ThingWorx Benutzer bei der Anmeldung speichert. Stellen Sie sicher, dass der Wert dieses Attributs im Identitätsanbieter mit den Benutzernamenwerten übereinstimmt, die Sie für ThingWorx Benutzernamen verwenden würden.
* 
Für das ThingWorx Administratorkonto muss der Benutzernamenwert auf Administrator festgelegt werden. Stellen Sie sicher, dass Sie den IdP so konfigurieren, dass er den Wert Administrator für das Administratorkonto zurückgibt. Weitere Informationen finden Sie unter ThingWorx Administrator-Alias im Identitätsanbieter erstellen.
PingFederate oder Azure AD als CAS:
UID
AD FS als CAS:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
samlAssertionMaxAuthenticationAge
Gibt das Höchstalter (in Sekunden) der SAML 2.0-Bestätigung an, bevor sie abläuft. Dies gibt auch die maximale Sitzungszeit für eine Authentifizierungsbestätigung an.
Legen Sie den Wert so fest, dass er mit dem Sitzungs-Zeitüberschreitungswert übereinstimmt, der im Identitätsanbieter angegeben wurde. Dieser Wert ist unterschiedlich, je nach verwendetem IdP.
PingFederate als CAS mit LDAP IdP (Windchill): 7200 (Standardeinstellung)
AD FS als IdP (mit AD FS oder PingFederate als CAS): 28800
Azure AD als IdP (mit Azure AD oder PingFederate als CAS): 86400
authnContextAsPassword
Optional. In seltenen Fällen erfordert IdP, dass Sie die nächste Bestätigung in die SAML-Anforderung einfügen.
<saml2p:RequestedAuthnContext Comparison="exact">
<saml2:AuthnContextClassRef xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
urn:oasis:names:tc:SAML:2.0:ac:classes:Password
</saml2:AuthnContextClassRef>
</saml2p:RequestedAuthnContext>
In diesen Fällen sollten Sie diese Eigenschaft definieren.
falsch
* 
Wenn Sie den Anwendungsschlüssel-Authentifikator aktivieren möchten, wenn SSO aktiviert ist, müssen Sie den folgenden ApplicationKeySettings-Konfigurationsabschnitt zu den sso-settings.json-Einstellungen unter BasicSettings hinzufügen. Dies ist nur erforderlich, wenn Sie Anwendungsschlüssel für die Authentifizierung über REST-API-Anforderungen verwenden möchten. Anwendungsschlüssel können weiterhin von Edge-Geräten über WebSockets verwendet werden, unabhängig davon, ob diese Einstellung aktiviert oder deaktiviert ist.
{
"BasicSettings": {
...
},
"ApplicationKeySettings": {
"enabled": true
},
...
}
In den folgenden Tabellen werden die verschiedenen Parameter und Standardwerte des Abschnitts AccessTokenPersistenceSettings der Datei sso-settings.json beschrieben:
Parameter
Beschreibung
Wert
dbType
Gibt den Typ der Datenbank an, die für die ThingWorx Installation konfiguriert ist und verwendet wird.
Um dieselbe Datenbank zu verwenden, die in der Datei platform-settings.json festgelegt ist, geben Sie denselben Datenbanktyp und dieselben Anmeldeinformationen wie in platform-settings.json an.
Um eine dedizierte Datenbank für das Autorisierungs-Token zu verwenden, geben Sie den Wert default an. Nach der Konfiguration als default wird eine neue dedizierte H2-Datenbank erstellt.
default
* 
Der Datenbanktyp default ist die Standardauswahl für SSO-Einstellungen.
H2
postgres
mssql
hana
driverClassName
Gibt den Treiberklassennamen an, den Sie in der Datei platform-settings.json verwenden.
Wenn dbType auf default festgelegt ist, legen Sie hier org.h2.Driver fest.
Wenn dbType auf h2 festgelegt ist, legen Sie hier org.h2.Driver fest.
Wenn dbType auf postgres festgelegt ist, legen Sie hier org.postgresql.Driver fest.
Wenn dbType auf mssql festgelegt ist, legen Sie hier com.microsoft.sqlserver.jdbc.SQLServerDriver fest.
Wenn dbType auf hana festgelegt ist, legen Sie hier com.sap.db.jdbc.Driver fest.
url
Gibt die URL zum Datenbankspeicherort für Ihre ThingWorx Installation an.
Wenn dbType auf default festgelegt ist, legen Sie hier jdbc:h2:\\<Laufwerk>:\\ThingworxPlatform\\ssoSecurityConfig\\sso-oauth2-client-db fest.
Wenn dbType auf h2 festgelegt ist, ist dieser Parameter nicht erforderlich.
Wenn dbType auf postgres festgelegt ist, legen Sie hier jdbc:postgresql://<Hostname>:<port>/thingworx fest.
Wenn dbType auf mssql festgelegt ist, legen Sie hier jdbc:sqlserver://<Hostname>:<Port>;databaseName=thingworx;applicationName=Thingworx fest.
Wenn dbType auf hana festgelegt ist, legen Sie hier jdbc:sap://<IP-Adresse>:39041/?databaseName=thingworx&currentschema=TWADMIN fest.
username
Gibt den Benutzernamen für die Datenbank an, die Ihr System zum Speichern von Zugriffs-Token verwendet. Dieser sollte mit dem Benutzernamen übereinstimmen, den Sie in der Datei platform-settings.json angegeben haben.
* 
Wenn SSO in ThingWorx aktiviert ist, muss die H2-Datenbank passwortgeschützt sein. Weitere Informationen finden Sie unter H2-Datenbank mit Passwort schützen, wenn SSO aktiviert ist.
password
Gibt das Passwort für die Datenbank an, die Ihr System zum Speichern von Zugriffs-Token verwendet. Dieser sollte mit dem Passwort übereinstimmen, das Sie in der Datei platform-settings.json angegeben haben.
* 
Wenn SSO in ThingWorx aktiviert ist, muss die H2-Datenbank passwortgeschützt sein. Weitere Informationen finden Sie unter H2-Datenbank mit Passwort schützen, wenn SSO aktiviert ist.
encryptTokenInDatabase
Legen Sie wahr fest, um das Zugriffs-Token zu verschlüsseln, bevor es in der Datenbank persistent gemacht wird.
Für ThingWorx 9.3 und höher:
Wenn dieser Wert auf true festgelegt ist, wird beim Starten von ThingWorx automatisch eine private-keyset.cfg-Datei erstellt und im Ordner ssoSecurityConfig gespeichert. Diese Keyset-Datei wird nur einmal erstellt.
Für ThingWorx 9.2.x und früher:
Legen Sie den keyczarKeyFolderPath auf einen gültigen keyCzarKey-Speicherort fest.
wahr
keyczarKeyFolderPath
Für ThingWorx 9.3 und höher:
Das Keyczar-Tool ist veraltet und wurde durch Tink ersetzt. Diese Eigenschaft ist nicht mehr erforderlich, um Zugriffs-Token zu verschlüsseln, bevor sie in der Datenbank persistent gemacht werden.
Für ThingWorx 9.2.x und früher:
Wenn der Wert des Parameters encryptTokenInDatabase auf true festgelegt wird, muss dieser Pfad auf einen gültigen keyCzarKey-Speicherort zeigen. Ändern Sie den Pfad so, dass er das Verzeichnis verwendet, in dem sich der Ordner ThingworxPlatform\ssoSecurityConfig\symmetric befindet.
* 
Es wird dringend empfohlen, einen Speicherort für den Keystore-Schlüssel zu verwenden, der sich vom Speicherort der Datei sso-Settings.json unterscheidet. Daher können Sie granularere Dateisystem-Zugriffssteuerungen auf diese Dateien anwenden. Die allgemeinen Einstellungen für ThingWorx sollten an einem anderen Ort als dem Ordner des Keystore-Schlüssels und der Datei sso-settings.json gespeichert werden.
Für ThingWorx 9.3 und höher:
Für ThingWorx 9.2.x und früher:
Für Windows: <Laufwerk>:\\ThingworxPlatform\\ssoSecurityConfig\\symmetric
wobei <Laufwerk> das Laufwerk ist, auf dem Sie ThingWorx installiert haben.
Für Linux: <vollständiger Pfad>/ThingworxPlatform/ssoSecurityConfig/symmetric
Abhängig vom Wert von dbType werden die OAuth 2.0-Zugriffs-Token (erteilte Berechtigungen) an verschiedenen Speicherorten gespeichert. Die folgende Tabelle enthält Informationen über den Speicherort in der Datenbank, in der erteilte Berechtigungen gespeichert werden:
dbType
Speicherort in der Datenbank, in der erteilte Berechtigungen gespeichert werden
default
Eine H2-Datenbank der Untermenge wird erstellt, wie durch den Pfad des Parameters url angegeben. Standardmäßig wird die Datenbank in einem Verzeichnis platziert, das relativ zum Tomcat-Verzeichnis ist.
Wenn Sie dbType als default festlegen, wird empfohlen, den vollständig qualifizierten Pfad der JDBC-URL anstelle des relativen Pfads anzugeben.
Beispiel: jdbc:h2:./ThingworxPlatform/ssoSecurityConfig/sso-oauth2-client-db
H2
ThingWorx H2-WAR-Dateien in ThingworxStorage/database-H2-Datenbankdateien.
postgres
In der Tabelle oauth_client_token in der ThingWorx PostgreSQL-Datenbank.
mssql
In der Tabelle oauth_client_token in der ThingWorx MS SQL-Datenbank.
hana
In der Tabelle oauth_client_token in der ThingWorx SAP HANA-Datenbank.
In der folgenden Tabelle werden die verschiedenen Parameter und Standardwerte des Abschnitts KeyManagerSettings der Datei sso-settings.json beschrieben:
Parameter
Beschreibung
Wert
keyStoreFilePath
Gibt den absoluten Dateipfad-Speicherort des Keystore an. Ändern Sie den Pfad entsprechend Ihrer Umgebung so, dass Sie das Verzeichnis verwenden, in dem die Keystore-Datei gespeichert ist.
* 
Es wird dringend empfohlen, einen Speicherort für den Keystore-Schlüssel zu verwenden, der sich vom Speicherort der Datei sso-Settings.json unterscheidet. Daher können Sie granularere Dateisystem-Zugriffssteuerungen auf diese Dateien anwenden. Die allgemeinen Einstellungen für ThingWorx sollten an einem anderen Ort als dem Ordner des Keystore-Schlüssels und der Datei sso-settings.json gespeichert werden.
Für Windows: <Laufwerk>:\\ThingworxPlatform\\ssoSecurityConfig\\sso-keystore.jks
wobei <Laufwerk> das Laufwerk ist, auf dem Sie ThingWorx installiert haben.
Für Linux: <vollständiger Pfad>/ThingworxPlatform/ssoSecurityConfig/sso-keystore.jks
keyStoreStorePass
Gibt das Keystore-Passwort an.
keyStoreKey
Gibt den Standardschlüssel an.
keyStoreKeyPass
Gibt das Passwort an, das zum Zuzugreifen auf private Schlüssel verwendet wird.
In der folgenden Tabelle werden die verschiedenen Parameter und Standardwerte des Abschnitts AuthorizationServersSettings der Datei sso-settings.json beschrieben:
* 
Die Einstellungen für AuthorizationServersSettings können Informationen für mehr als einen Autorisierungsserver enthalten. Jeder Server wird durch eine eindeutige ID in der Datei sso-settings.json identifiziert.
Parameter
Beschreibung
Wert
<AutorisierungsserverID1>.clientId
Gibt die Client-ID für den Abruf von Zugriffs-Token vom Autorisierungsserver an.
* 
Wählen Sie einen Wert, der für die Variable AuthorizationServerId1 angegeben werden soll. Dieser Wert der Variable AuthorizationServerId1 wird verwendet, um die Verbindungseinstellungen für einen Integrations-Konnektor oder eine Media-Entität zu konfigurieren. Wenn der Administrator oder Entwickler, der Konnektoreinstellungen konfiguriert, keinen Zugriff auf das Verzeichnis ssoSecurityConfig hat, müssen Sie ihm diese Informationen zur Verfügung stellen.
<AutorisierungsserverID1>.clientSecret
Gibt die Client-Anmeldeinformationen an, die zur Authentifizierung mit dem Autorisierungsserver verwendet werden.
Legen Sie diesen Parameter auf die vollständig qualifizierte Domänennamenserver-URL des Netzwerks fest.
<AutorisierungsserverID1>.authorizeUri
Gibt den URI an, zu dem der Benutzer umgeleitet wird, um ein Zugriffs-Token zu autorisieren.
PingFederate als CAS:
https://<PingFederate-Host-Name>:<PingFederate-Port-Number>/as/authorization.oauth2
* 
Verwenden Sie den PingFederate-Laufzeit-Port, der mit der PingFederate-Installation bereitgestellt wird.
Azure AD als CAS: Siehe ThingWorx Konfigurationsdateien aktualisieren in der Dokumentation für die Azure AD Autorisierung.
Azure FS als CAS: Siehe ThingWorx Konfigurationsdateien aktualisieren in der Dokumentation für die Azure FS Autorisierung.
<AutorisierungsserverID1>.tokenUri
Gibt den URI zum Abrufen eines OAuth2-Zugriffs-Tokens an.
Legen Sie diesen Parameter auf die vollständig qualifizierte Domänennamenserver-URL des Netzwerks fest.
https://<PingFederate-Host-Name>:<PingFederate-Port-Number>/as/token.oauth2
* 
Verwenden Sie den PingFederate-Laufzeit-Port, der mit der PingFederate-Installation bereitgestellt wird.
<AutorisierungsserverID1>.clientAuthScheme
Gibt das Schema zum Authentifizieren des Clients an. Die zulässigen Werte sind:
form
header
query
none
form
War dies hilfreich?