Arbeitsanweisungsbausteine für den Sitzungsbenutzer konfigurieren (Windchill Authentifizierung)
Die Authentifizierungsoption Sitzungsbenutzer verwendet Windchill für die Authentifizierung mit ThingWorx. Greift der Benutzer auf ThingWorx zu, so wird er für die Authentifizierung an Windchill weitergeleitet. Nach der Authentifizierung wird der Benutzer zu ThingWorx zurückgeleitet. Diese Konfiguration erfordert, dass der Benutzer sowohl in Windchill als auch in ThingWorx vorhanden ist.
ThingWorx enthält eine Konfigurationsoption für die automatische Erstellung von Benutzern in ThingWorx sobald diese in Windchill authentifiziert wurden. Ist diese Konfigurationsoption nicht ausgewählt, müssen Benutzer unabhängig voneinander in Windchill und ThingWorx vorhanden sein. Der ThingWorx Benutzer muss der entsprechenden ThingWorx Benutzergruppe hinzugefügt werden, um auf die Entitäten und Dienste des Arbeitsanweisungsbausteins zugreifen zu können. Wird die Option für die automatische Erstellung von Benutzern in ThingWorx aktiviert, so kann die Benutzergruppe ausgewiesen werden, der die automatisch erstellten Benutzer hinzugefügt werden sollen.
Einstellungen müssen in Windchill, ThingWorx und am Arbeitsanweisungsbaustein vorgenommen werden, um den Arbeitsanweisungsbaustein so zu konfigurieren, dass dieser die Authentifizierungsoption Sitzungsbenutzer verwendet.
Voraussetzungen für die Windchill Authentifizierung
Windchill muss für SSL konfiguriert sein.
ThingWorx muss für SSL konfiguriert sein.
Arbeitsanweisungsbausteine und ThingWorx für die Verwendung der Windchill Authentifizierung konfigurieren
Führen Sie die folgenden Schritte aus, um den Arbeitsanweisungsbaustein und ThingWorx für die Verwendung von Windchill zur Authentifizierung zu konfigurieren:
1. Die ThingWorx Java-Instanz muss Kenntnis von den Zertifikaten des Windchill Servers haben. Importieren Sie das Stammzertifikat in den von ThingWorx verwendeten Java-Keystore.
2. Wird EnableSSO in der Datei platform-settings.json für ThingWorx angezeigt, legen Sie die Option auf "falsch" fest, und starten Sie den ThingWorx Server neu. Fahren Sie andernfalls mit Schritt 3 fort.
3. Erstellen Sie einen neuen Data Shape in ThingWorx mit dem Namen CustomHeadersDataShape. Erstellen Sie unter Felddefinitionen die folgenden beiden Felddefinitionen mit Basistyp=Zeichenfolge:
Accept-Language
Authorization
4. Duplizieren Sie das Ding PTC.SCA.SCO.MPMLink_ODataConnector für Ihre Konfigurationen, da Anpassungen, wie das Überschreiben eines Dienstes, an einem Duplikat durchgeführt werden müssen. Weitere Informationen finden Sie unter MPMLink OData-Konnektor konfigurieren und Bausteinentitäten duplizieren.
a. Legen Sie unter Konfiguration die folgenden Werte fest:
Wählen Sie unter Verbindungseinstellungen für allgemeinen Konnektor die Option Keine für Authentifizierungstyp aus.
Geben Sie unter CSRF-Einstellungen /servlet/odata für Relative URL für CSRF-Get-Anforderung ein.
Machen Sie unter Verbindungseinstellungen für HTTP-Konnektor folgende Angaben:
Lassen Sie die Felder Benutzername und Passwort leer.
Geben Sie für Basis-URL https://<Windchill Hostname>:<Port>/Windchill/sslClientAuth ein, wobei <Windchill Hostname> und <Port> die entsprechenden Werte für Ihr Windchill System sind.
Geben Sie unter Relative URL die Zeichenfolge /servlet/odata ein.
Geben Sie für Verbindungs-URL /servlet/WindchillGW/wt.httpgw.HTTPServer/ping ein.
Klicken Sie auf Speichern.
b. Überschreiben Sie unter Dienste den Dienst GetCustomHeaderParameters. Fügen Sie dem Dienst den folgenden Code hinzu:
var Language = Resources["CurrentSessionInfo"].GetCurrentUserLanguage();
var params = {
infoTableName: "InfoTable",
dataShapeName: "CustomHeadersDataShape"
};
var result = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
params = {
tableName: "GenericConnectorConnectionSettings" /* STRING */
};
var configTable = me.GetConfigurationTable(params);
var row = configTable.getRow(0);
var authType = row.getStringValue("AuthenticationType");
if ("None".equals(authType)) {
var CurrentUser = Resources["CurrentSessionInfo"].GetCurrentUser();
var baseEncodedStr = base64EncodeString(CurrentUser + ':');
var authHeaderValue = "Basic " + baseEncodedStr;
row = {
"Accept-Language": Language,
"Authorization": authHeaderValue
};
} else {
row = {
"Accept-Language": Language
};
}
result.AddRow(row);
c. Klicken Sie auf Fertig.
d. Klicken Sie auf Speichern.
5. Öffnen Sie das Ding PTC.SCA.SCO.MPMLinkWorkDefinitionConverter für die Bearbeitung. Stellen Sie sicher, dass das Feld Konnektor auf den duplizierten Konnektor verweist, den Sie in Schritt 4 konfiguriert haben.
6. Öffnen Sie das Ding PTC.SCA.SCO.OperatorAdvisorContentProxyMediaEntity für die Bearbeitung. Legen Sie unter Konfiguration die folgenden Werte fest:
Machen Sie unter Verbindungsinformationen für Inhaltsquelle die folgenden Angaben:
Wählen Sie das Kontrollkästchen Dynamischer Inhalt aus.
Geben Sie als URL https://<Windchill Hostname>:<Port> ein, wobei <Windchill Hostname> und <Port> die entsprechenden Werte für Ihr Windchill System sind.
Wählen Sie das Kontrollkästchen SSL-Fehler ignorieren aus.
Wählen Sie für Authentifizierungstyp die Option Sitzungsbenutzer aus.
Lassen Sie die Felder Benutzername und Passwort leer.
Geben Sie für URL der Testverbindung https://<Windchill Hostname>:<Port>/Windchill/sslClientAuth/servlet/odata ein, wobei <Windchill Hostname> und <Port> die entsprechenden Werte für Ihr Windchill System sind.
Legen Sie unter SSL-Verbindungkonfiguration die folgenden Werte fest:
Geben Sie für SSL-Keystore-Pfad den Pfad zum ThingWorx Keystore ein.
Geben Sie für SSL-Keystore-Passwort das Passwort für den ThingWorx Keystore ein.
Geben Sie für SSL-Vertrauensspeicher-Pfad den Pfad zum Vertrauensspeicher ein.
Geben Sie für SSL-Vertrauensspeicher-Passwort das Passwort für den Vertrauensspeicher ein.
Geben Sie unter Konfiguration des Benutzers der Sitzung für Abfrageparameter für Sitzungsbenutzer wt.effectiveUid ein.
7. Klicken Sie auf Speichern.
8. Richten Sie die Integration Runtime ein. Weitere Informationen finden Sie unter Den Dienst "Integration Runtime" konfigurieren.
9. Testen Sie die Konfiguration für ThingWorx:
a. Navigieren Sie zum Ding PTC.SCA.SCO.MPMlink_ODataConnector aus Schritt 4.
b. Führen Sie unter Dienste den Dienst ValidateConnectionaus. Das folgende Ergebnis bestätigt eine erfolgreiche Verbindung:
Ausgabe für den Dienst "ValidateConnection"
PTC Identitätsanbieter-Authentifikator konfigurieren
* 
Stellen Sie vor der Konfiguration des PTC Identitätsanbieter-Authentifikators sicher, dass die neueste ptc-windchill-extension-[Release-Version] Erweiterung in ThingWorx importiert ist. So greifen Sie auf die neueste Erweiterung zu:
1. Laden Sie die Datei PTC-Windchill-Extension-for-ThingWorx herunter und entpacken Sie deren Inhalt. Gehen Sie zur Seite PTC Software-Download und erweitern Sie die folgenden Ordner, um den Download zu finden: PTC Smart Connected Applications > Release APPs > PTC Windchill Extension for ThingWorx.
2. Öffnen Sie die Datei ptc-windchill-extension-<Version>.zip und löschen Sie die Datei ptc-thingview-extension.zip. Eine neuere Version von ptc-thingview-extension.zip wurde bereits als Teil des Arbeitsanweisungsbausteins importiert.
3. Importieren Sie die Datei ptc-windchill-extension-<Version>.zip.
Führen Sie die folgenden Schritte aus, um den PTC Identitätsanbieter-Authentifikator zu konfigurieren:
1. Navigieren Sie in ThingWorx Composer zu Sicherheit > Authentifikatoren im Navigationsbereich.
2. Öffnen Sie die Datei ptc-identity-provider-authenticator.
3. Machen Sie unter Allgemeine Informationen die folgenden Angaben:
Wählen Sie das Kontrollkästchen Aktiviert aus.
Geben Sie den entsprechenden Priorität-Wert ein. Standardmäßig beträgt dieser Wert 1 und gibt an, dass es sich bei diesem Authentifikator um den ersten Authentifikator, der ausgeführt wird, handelt. Der Priorität-Wert ist wichtig, wenn Sie Prüfungen durch mehrere Authentifikatoren implementieren möchten. Schlägt der Authentifikator mit Priorität 1 fehl, so führt der nächste Authentifikator die Authentifizierungsprüfung durch, usw.
4. Machen Sie unter Konfiguration die folgenden Angaben:
Unter Authentifikatorkonfiguration müssen zwei Optionen konfiguriert werden: CreateUserDynamically und HomeMashup.
CreateUserDynamically – Bei Auswahl dieser Option erstellt der Authentifikator automatisch einen Benutzer in ThingWorx, wenn der Benutzer nicht bereits vorhanden ist und der Benutzer von Windchill authentifiziert wurde. Ist das Kontrollkästchen nicht aktiviert, wird der Browser dennoch an Windchill für die Authentifizierung weitergeleitet. Das Öffnen von ThingWorx schlägt jedoch fehl, wenn der Benutzer nicht auch in ThingWorx vorhanden ist.
HomeMashup – Weist den neu erstellten Benutzern ein Home-Mashup zu. Ist kein Home-Mashup angegeben, leitet ThingWorx den Browser an die ThingWorx Suchseite weiter.
Fügen Sie unter User Configuration eine UserGroup hinzu. Dies ist die Benutzergruppe, der die dynamisch erstellten ThingWorx Benutzer automatisch hinzugefügt werden. Wählen Sie eine Benutzergruppe aus, die Zugriff auf die Entitäten und Dienste des Arbeitsanweisungsbausteins bietet.
5. Klicken Sie auf Speichern.
Servlet-Filter zur Tomcat-Konfiguration hinzufügen
Der Authentifizierungsfilter für Windchill Identitätsanbieter wird verwendet, um einen nicht authentifizierten ThingWorx Benutzer zur Authentifizierung in das Windchill Anmeldeformular umzuleiten. Nach erfolgreicher Authentifizierung erhält die ThingWorx Anwendung einen Schlüssel und einen Benutzernamen.
Die ThingWorx Seite des Filters wird in der Datei web.xml im ThingWorx Tomcat-Installationsverzeichnis konfiguriert:
1. Halten Sie Tomcat und Integration Runtime an.
2. Öffnen Sie die zuvor heruntergeladene Datei PTC-Windchill-Extension-for-ThingWorx, und kopieren Sie die Datei ptc-identity-provider-authentication-filter-<Version>.jar aus dem Verzeichnis idp in das Verzeichnis WEB-INF/lib der ThingWorx Tomcat-Installation.
3. Navigieren Sie zur Datei <ThingWorx Tomcat>\webapps\Thingworx\WEB-INF\web.xml.
4. Erstellen Sie eine Kopie der Datei web.xml und speichern Sie sie an einem bekannten Speicherort.
5. Ersetzen Sie die Datei <ThingWorx Tomcat>\webapps\Thingworx\WEB-INF\web.xml durch die Datei web.xml aus dem Verzeichnis \idp\twx-8.x.x der zuvor heruntergeladenen Datei PTC-Windchill-Extension-for-ThingWorx.
6. Öffnen Sie diese web.xml-Datei und fügen Sie Ihre Windchill Serverdetails zu den Einträgen IdentityProviderAuthenticationFilter und IdentityProviderKeyValidatorFilter unter Verwendung des folgenden Formats hinzu:
[http or https]://[Windchill-host]:[Windchill-port]/[Windchill WebApp name]
[Windchill WebApp name] kann durch Suchen nach wt.webapp.name in <Windchill>\codebase\wt.properties gefunden werden.
7. Starten Sie Tomcat und Integration Runtime.
Weitere Windchill Konfigurationen
1. Erstellen Sie die Datei ca-bundle.crt unter <HTTPSERVER_HOME>\conf\.
2. Bearbeiten Sie die Datei ca-bundle.crt:
Hängen Sie den Inhalt des Windchill Server SSL-Zertifikats an.
Hängen Sie den Inhalt des ThingWorx SSL-Zertifikats an.
* 
Ist Windchill mit einer Drittanbieter-SSL-Zertifikatkette konfiguriert, hängen Sie die Zertifikate an oder kopieren Sie den Inhalt der Windchill und ThingWorx Zertifikate in die Datei ca-bundle.crt, und zwar in der folgenden Reihenfolge:
a. Windchill Stammzertifikat
b. Windchill Zwischenzertifikat
c. Windchill Serverzertifikat
d. ThingWorx Zertifikat
3. Speichern Sie die Datei ca-bundle.crt.
4. Erstellen Sie die Datei sslclientauth.conf unter <HTTPSERVER_HOME>\conf\sslvhostconf.d.
5. Bearbeiten Sie die Datei sslclientauth.conf, um ihr die folgende Zeile hinzuzufügen:
SSLCACertificateFile <PFAD>\ca-bundle.crt
. Ersetzen Sie <PFAD> durch den Dateipfad für die Datei ca-bundle.crt.
6. Speichern Sie die Datei sslclientauth.conf.
7. Bearbeiten Sie die Datei <HTTPSERVER_HOME>\conf\conf.d\20-mod_ssl.conf:
Kommentieren Sie die Zeile, die Folgendes enthält, aus, d.h. entfernen Sie das Rautezeichen (#) am Anfang der Zeile:
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
Kommentieren Sie die Zeile, die Folgendes enthält, aus:
SSLVerifyDepth
8. Speichern Sie die Datei 20-mod_ssl.conf.
9. Bearbeiten Sie die Datei <HTTPSERVER_HOME>\conf\httpd.conf. Stellen Sie sicher, dass die folgenden Zeilen auskommentiert sind, d.h., dass das Rautezeichen (#) am Anfang der Zeilen entfernt wurde:
LoadModule log_config_module modules/mod_log_config.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
10. Speichern Sie die Datei httpd.conf.
11. Öffnen Sie die Datei <HTTPSERVER_HOME>\conf\conf.d\30-app-Windchill-Auth.conf. Bestätigen Sie, dass ein sslClientAuth-Eintrag, der dem folgenden ähnlich ist, vorhanden ist:
# SSL client certificate authenticated resources
<IfModule ssl_module>
<LocationMatch ^/+Windchill/+sslClientAuth(;.*)?>
Require all granted
SSLVerifyClient require
SSLOptions +ExportCertData
</LocationMatch>
</IfModule>
12. Starten Sie den PTC HTTP-Server mit der Option -DSSL, um SSL zu aktivieren.
13. Bearbeiten Sie die Datei <Windchill>\codebase\WEB-INF\web.xml.
a. Suchen Sie nach <filter-name>TrustedSSLAuthFilter</filter-name>
b. Fügen Sie einen neuen init-param nach einem vorhandenen hinzu:
<init-param>
<param-name>trustedSubjectPattern.1</param-name>
<param-value>.*[hostname].* </param-value>
</init-param>
Verwenden Sie den Hostnamen aus dem Zertifikatantragsteller für [hostname]. Beispiel: Ist der Antragsteller CN=mycompany.domain.com, verwenden Sie mycompany für [hostname].
14. Speichern Sie die Datei web.xml.
15. Starten Sie Windchill neu.
Konfiguration verifizieren
Der Name für den Administratorbenutzer für Windchill und ThingWorx muss identisch sein. Es bestehen folgende Optionen:
Wenn Sie keine Änderungen in Windchill vorgenommen haben, wurde bei der Installation von Windchill ein Administratorbenutzer mit dem Namen Administrator erstellt. Bei der Verwendung eines konfigurierten ThingWorx Systems können Sie sich als dieser Benutzer authentifizieren und haben somit alle Zugriffsrechte als Administrator in ThingWorx.
Wenn Sie Änderungen an Windchill vorgenommen haben und ein Benutzer namens Administrator nicht vorhanden ist, so müssen Sie sich für einen Benutzernamen, der Windchill und ThingWorx gemeinsam ist, entscheiden und diesen Benutzer zu ThingWorx hinzufügen, und zwar zur Benutzergruppe Administratoren.
Öffnen Sie einen Browser zur ThingWorx URL, um die Windchill Authentifizierungskonfiguration zu verifizieren. Der Browser wird zur Authentifizierung an Windchill weitergeleitet. Stellen Sie die Windchill Anmeldeinformationen für Administrator bereit (oder für einen anderen Benutzer, der als ThingWorx Administrator konfiguriert wurde). Der Browser wird zu ThingWorx Composer zurückgeleitet. Verifizieren Sie, dass Sie ThingWorx jetzt als dieser Benutzer ausführen. Damit wird verifiziert, dass ThingWorx richtig mit der Windchill Authentifizierung konfiguriert ist.
Testen Sie als Nächstes, dass der Authentifikator automatisch Benutzer erstellt, wenn Sie diese Option ausgewählt haben. Öffnen Sie einen Browser zur ThingWorx URL, um diese zu verifizieren. Sie werden zur Authentifizierung an Windchill umgeleitet. Stellen Sie Windchill Anmeldeinformationen für einen Benutzer, der nicht in ThingWorx vorhanden ist, bereit. Der Browser wird an ThingWorx zurückgeleitet, und zwar zu der Seite, die als Home-Mashup für dynamisch erstellte Benutzer angegeben wurde. Verifizieren Sie, dass Sie ThingWorx jetzt als dieser Benutzer ausführen.
War dies hilfreich?