Problembehandlung – Single Sign-On
Aktivieren Sie die Ereignisprotokollierung, um SSO-Probleme zu behandeln. Um die Protokollierung zu aktivieren, verwenden Sie eine logback.xml-Standarddatei im Verzeichnis ThingworxPlatform. Wenn eine logback.xml-Datei an diesem Speicherort vorhanden ist, können Sie einfach die SSO-Protokollierer zum vorhandenen Satz von Protokollierern hinzufügen. Weitere Informationen zur Datei logback.xml finden Sie unter Protokollierung konfigurieren.
Die logback.xml-Funktionalität ist ein Java-Standard. Anweisungen zum Konfigurieren dieser Dateien finden Sie in der Java-Dokumentation.
Die folgende Tabelle enthält Informationen über die Protokolliererpakete, die hinzugefügt werden können, um Probleme im Zusammenhang mit der SSO-Konfiguration von ThingWorx zu untersuchen:
Paket
Beschreibung
com.thingworx.security.authentication.sso
Paket für alle ThingWorx SSO-Authentifizierungskomponenten. Die folgenden Beispiele sind Einträge in den Protokolliererpaketen:
Für Meldungen, die in das Anwendungsprotokoll geschrieben werden, beispielsweise:
LogUtilities.getInstance().getApplicationLogger([class name]):
<logger name="com.thingworx.security.authentication.sso" level="DEBUG"/>
Sicherheitsprotokollierer werden in vielen Klassen in diesem Paket verwendet. Beispiel:
LogUtilities.getInstance().getSecurityLogger(ThingworxSSOAuthenticator.class);
Um diese Protokollierer zu aktivieren, fügen Sie SecurityLog als Elternprotokollierer des Stamms hinzu:
<logger name="SecurityLog.com.thingworx.security.authentication.sso" level="DEBUG"/>
SecurityLog.com.thingworx.security.sso
Paket für Workflows der delegierten Autorisierung, die von Integrations-Konnektoren beim Abrufen von Zugriffs-Token verwendet werden, sowie ihre Konfigurationen.
com.thingworx.ptc.eauth.identity
Paket für alle zentralen PTC SSO-Bibliothekskomponenten.
com.springframework.security
Paket für alle Spring Framework-Sicherheitskomponenten.
com.springframework.jdbc
Paket für alle Spring Framework-JDBC-Authentifizierungskomponenten.
Die folgenden Problembehandlungspunkte können untersucht werden, wenn die SSO-Implementierung Fehler verursacht.
Problem
ThingWorx Administrator kann sich nicht anmelden – Fehler zu ungültigem Bereich erhalten
Beschreibung
Nach dem Anmelden wird der Benutzer zu einer ThingWorx Fehlerseite umgeleitet, die angibt, dass auf dem System derzeit ein Fehler mit der Authentifizierungskonfiguration vorliegt.
Lösung
Mindestens einer der in einem ThingWorx Integrations-Konnektor oder einer Medienentität registrierten Bereiche stimmt nicht mit den in PingFederate (oder Ihrem gewählten CAS) registrierten Bereichen überein. Dieser Bereichskonflikt zwischen PingFederate kann zu einer Aussperrung des ThingWorx Administrators führen. Die Ressourcenserverbereiche, die in ThingWorx registriert wurden, können im Sicherheitsprotokoll angezeigt werden. So lösen Sie dieses Problem:
1. Melden Sie sich bei PingFederate an, und vergleichen Sie die gemeldeten Bereiche aus dem ThingWorx Sicherheitsprotokoll mit den Bereichen, die in PingFederate registriert sind. Fügen Sie für alle Bereiche in ThingWorx, die nicht in PingFederate registriert sind oder deren Namen nicht übereinstimmen, den Bereich in PingFederate hinzu, oder ändern Sie den Namen so, dass er der Schreibweise in ThingWorx entspricht (auch wenn dies nicht die richtige Schreibweise des Bereichs ist).
2. Nun funktioniert die Seite zur Gewährungsgenehmigung korrekt, und Sie können sich bei ThingWorx als Administrator anmelden. Navigieren Sie in ThingWorx Composer zu dem Integrations-Konnektor bzw. der Medienentität, der bzw. die versucht, den Bereich zu verwenden. Entfernen Sie ihn aus der Bereichsregistrierungstabelle für den Integrations-Konnektor oder die Medienentität. Melden Sie sich mit einer neuen ThingWorx Sitzung an, um zu überprüfen, ob die Anmeldung erfolgreich ist.
3. Für den Fall, dass ThingWorx versucht hat, einen nicht registrierten Bereich zu verwenden, entfernen Sie als Nächstes in PingFederate den unerwünschten Bereich von der Bereichsverwaltungsseite. Wenn die Bereichsnamen nicht übereinstimmen, löschen Sie den Bereich, und registrieren Sie ihn mit der korrekten Schreibweise erneut in PingFederate sowie im ThingWorx Integrations-Konnektor oder in der Medienentität.
Problem
Dienst in einem Integrations-Konnektor oder in einer Medienentität funktioniert nicht – Fehler beim Abruf des Zugriffs-Tokens.
Beschreibung
Sie sind bei ThingWorx Composer angemeldet und verfügen bereits über ein Zugriffs-Token. Sie haben einen Konnektor mit einem Bereich importiert oder erstellt und versucht, einen Dienst für den Konnektor auszuführen, der jedoch nicht funktionierte.
Lösung
Melden Sie sich ab und wieder an, um die Seite zur Gewährungsgenehmigung für die Bereiche für Ihren Konnektor zu öffnen. Sie müssen die neu registrierte Bereichsgewährung genehmigen, damit die Dienste funktionieren.
Gleiches gilt, wenn Sie Medienentitäten importieren oder erstellen, die Bereiche enthalten.
Problem
Initialisierungsfehler für SSO-Kontext und -Bean beim Start von ThingWorx.
Beschreibung
ThingWorx wird nicht gestartet.
Lösung
Ermitteln Sie das Problem mithilfe der Fehlerprotokolle. Der Text am Ende des Warnungs- oder Fehlerprotokolls für die Kontext- oder Bean-Initialisierung beschreibt das Problem. Ein möglicher Fehlen kann beispielsweise lauten:
SSOConfigurationException: BasicSettings > idpMetadataFilePath cannot be null or empty
Prüfen Sie den Wert des Parameters idpMetadataFilePath in der Datei sso-settings.json, und fügen Sie den entsprechenden Wert hinzu.
Problem
ThingWorx Mashup oder Anwendung wird nicht geladen, nachdem der Benutzer auf der PingFederate-Seite Request Grant Approval für die angeforderten Bereiche auf Don’t allow geklickt hat.
Beschreibung
Nachdem der Benutzer auf der Seite Request Grant Approval auf Don’t allow geklickt hat, wird das Mashup nicht geladen, und die Browser-URL endet mit einem Hash-Zeichen "#" und einem Punkt ".".
Lösung
Standardmäßig verwendet PingFederate einen Punkt "." als Fragmentplatzhalter, der dieses Problem verursacht. Um dieses Problem zu beheben, gehen Sie wie folgt vor:
1. Navigieren Sie am PingFederate-Installationsspeicherort zu <PingFederateInstallation>\server\default\data\config-store\sanitize-fragments.xml.
2. Bearbeiten Sie diese XML-Datei, und entfernen Sie den Punkt "." aus dem Fragmentplatzhalter. Die Zeile muss folgendermaßen lauten: <con:item name="FragmentPlaceholder"></con:item>
3. Starten Sie den PingFederate-Server neu.
Problem
SAML-Authentifizierung für http://<Ihr Server>:<Port>/Thingworx/runtime/index.html#mashup=<MeinMashup> wird nach erfolgreicher Anmeldung zu http://<Ihr Server>:<Port>/Thingworx/runtime/index.html umgeleitet.
Beschreibung
Während einer Anmeldung bei einer Mashup-URL wird der Fragmentteil der URL (d.h. #mashup=<MeinMashup>) nicht zur ordnungsgemäßen Umleitung nach einer erfolgreichen Anmeldung an den ThingWorx Server oder den Authentifizierungsserver gesendet, da der Browser diese Daten nur für die Verwendung durch den Client behält. Daher erhalten der ThingWorx Server und der Authentifizierungsserver die URL ohne das Fragment, d.h. http://<Ihr Server>:<Port>/Thingworx/runtime/index.html.
Lösung
Für Mashup-URLs, die als ursprünglicher Authentifizierungspunkt verwendet werden, sollten Sie die URLs mit Abfrageparametern anstelle von Fragmentparametern erstellen.
Verwenden Sie daher in diesem Fall diese URL: http://<Ihr Server>:<Port>/Thingworx/runtime/index.html?mashup=<MeinMashup>.
Problem
Bei jeder einzelnen Anmeldung wird die Seite Request Grant Approval aus PingFederate angezeigt.
Beschreibung
PingFederate gibt nach einem erfolgreichen Gewährungsgenehmigungsprozess keine Geltungsbereiche zurück.
Lösung
In PingFederate:
1. Erstellen oder bearbeiten Sie die Datei oauth-scope-settings.xml am Speicherort <PingFederate-Installationsordner>/server/default/data/config-store wie folgt:
<?xml version="1.0" encoding="UTF-8"?>
<z:config xmlns:z="http://www.sourceid.org/2004/05/config">
<z:item name="always-return-scope-for-authz-code">true</z:item>
</z:config>
2. Starten Sie PingFederate neu.
Problem
SAML-Authentifizierung für http://<Ihr Server>:<Port>/Thingworx/runtime/index.html#mashup=<MeinMashup> wird nach erfolgreicher Anmeldung zu http://<Ihr Server>:<Port>/Thingworx/runtime/index.html umgeleitet.
Beschreibung
Während einer Anmeldung bei einer Mashup-URL wird der Fragmentteil der URL (d.h. #mashup=<MeinMashup>) nicht zur ordnungsgemäßen Umleitung nach einer erfolgreichen Anmeldung an den ThingWorx Server oder den Authentifizierungsserver gesendet, da der Browser diese Daten nur für die Verwendung durch den Client behält. Daher erhalten der ThingWorx Server und der Authentifizierungsserver die URL ohne das Fragment, d.h. http://<Ihr Server>:<Port>/Thingworx/runtime/index.html.
Lösung
Für Mashup-URLs, die als ursprünglicher Authentifizierungspunkt verwendet werden, sollten Sie die URLs mit Abfrageparametern anstelle von Fragmentparametern erstellen.
Verwenden Sie daher in diesem Fall diese URL: http://<Ihr Server>:<Port>/Thingworx/runtime/index.html?mashup=<MeinMashup>.
Problem
Der folgende Fehler wird in der Datei server.log von PingFederate angezeigt:
ERROR [SpringLdapGuidFormatter] Decoded binary guidAttribute is empty. Please check that the source datastore is configured with 'objectGUID' as a binary attribute. [] Channel: channel1
Beschreibung
Aufgrund der Änderungen in PingFed 11.3 muss das SCIM manuell konfiguriert werden.
Lösung
Führen Sie die unter LDAP-Binärattribute hinzufügen genannten Schritte aus.
Problem
Wenn AzureAD als CAS konfiguriert ist, kann der Endbenutzer keine Daten vom Ressourcenserver (RS) mit einem auf ThingWorx Konnektoren basierenden SSO-Verbindungstyp abrufen (da das Zugriffs-Token abgelaufen ist).
Beschreibung
In der Datei SecurityLog.log wird der folgende Fehler angezeigt.
ERROR: [ Failed to retrieve access token. ][ A redirect is required to get the users approval ]
Lösung
Legen Sie die Eigenschaft mandatoryScopes im Abschnitt AuthorizationServersSettings der Datei sso-settings.json so fest, dass offline_access eingeschlossen ist.
Weitere Anwendungsfälle finden Sie auf der IAM-Support-Website.
War dies hilfreich?