Resolución de problemas de inicio de sesión único
Active el registro de eventos para solucionar problemas relacionados con el SSO. Para activar el registro, utilice un fichero logback.xml estándar en el directorio ThingworxPlatform. Si existe un fichero logback.xml en esta ubicación, se pueden añadir sencillamente los registradores del SSO al conjunto de registradores existente. Para obtener más información sobre el fichero logback.xml, consulte el tema Configuración del registro.
La funcionalidad logback.xml es un estándar de Java. Para obtener instrucciones sobre cómo configurar estos ficheros, consulte la documentación de Java.
En la siguiente tabla se proporciona información sobre los paquetes de registradores que se pueden añadir para ayudar al usuario a investigar problemas relacionados con la configuración del SSO de ThingWorx:
Paquete
Descripción
com.thingworx.security.authentication.sso
Paquete para todos los componentes de autenticación del SSO de ThingWorx. Los siguientes ejemplos son entradas en los paquetes de registradores:
Para mensajes que van al registro de aplicación, por ejemplo:
LogUtilities.getInstance().getApplicationLogger([class name]):
<logger name="com.thingworx.security.authentication.sso" level="DEBUG"/>
Los registradores de seguridad se utilizan en muchas clases de este paquete. Por ejemplo:
LogUtilities.getInstance().getSecurityLogger(ThingworxSSOAuthenticator.class);
Para activar estos registradores, añada SecurityLog como el registrador padre raíz:
<logger name="SecurityLog.com.thingworx.security.authentication.sso" level="DEBUG"/>
SecurityLog.com.thingworx.security.sso
Paquete para los flujos de trabajo de autorización delegados que utilizan los conectores integrados cuando obtienen tokens de acceso y sus configuraciones.
com.thingworx.ptc.eauth.identity
Paquete para todos los componentes de biblioteca de SSO principales de PTC.
com.springframework.security
Paquete para todos los componentes de seguridad del marco de Spring.
com.springframework.jdbc
Paquete para todos los componentes de autenticación JDBC del marco de Spring.
Los siguientes elementos de resolución de problemas se pueden investigar si la implementación de SSO produce errores.
Problema
El administrador de ThingWorx no puede iniciar sesión: error de invalid_scope
Descripción
Después de iniciar sesión, se redirige al usuario a una página de error de ThingWorx donde se indica que el sistema está experimentando actualmente un error de configuración de autenticación.
Solución
Uno o varios de los ámbitos registrados en un conector de integración o una entidad multimedia de ThingWorx no coinciden con los ámbitos registrados en PingFederate (en el CAS elegido). Esta discrepancia de ámbitos entre PingFederate puede provocar el bloqueo del administrador de ThingWorx. Los ámbitos del proveedor de recursos que se han registrado en ThingWorx se pueden ver en el registro de seguridad. Para resolver esto:
1. Inicie sesión en PingFederate y compare los ámbitos notificados del registro de seguridad de ThingWorx con los ámbitos registrados en PingFederate. Para los ámbitos de ThingWorx que no estén registrados en PingFederate o tengan nombres que no coincidan, añada el ámbito en PingFederate o modifique el nombre para que coincida con la ortografía del ámbito de ThingWorx (aunque esta no sea la ortografía correcta del ámbito).
2. Ahora, la página de aprobación de concesiones funciona correctamente y se puede iniciar sesión en ThingWorx como administrador. En ThingWorx Composer, navegue hasta el conector de integración o la entidad multimedia que intenta utilizar el ámbito. Quítelo de la tabla de registro de ámbitos para el conector de integración o la entidad multimedia. Inicie sesión con una nueva sesión de ThingWorx para verificar que el inicio de sesión sea correcto.
3. Para el caso en que ThingWorx estaba intentando utilizar un ámbito que no se había registrado, en PingFederate, quite el ámbito no deseado de la página de gestión de ámbitos. Si los nombres de ámbito no coinciden, borre el ámbito y vuelva a registrarlo con la ortografía correcta en PingFederate y en el conector de integración o la entidad multimedia de ThingWorx.
Problema
El servicio no funciona en un conector de integración o una entidad multimedia: error al recuperar el token de acceso.
Descripción
El usuario está conectado a ThingWorx Composer y ya tiene un token de acceso. Se ha importado o creado un conector con un ámbito y se ha intentado ejecutar un servicio en el conector y no ha funcionado.
Solución
Cierre la sesión e iníciela para abrir la página de aprobación de concesiones para los ámbitos del conector. Para que el servicio funcione, es necesario aprobar la concesión del ámbito recién registrado.
Ocurre lo mismo si se importan o crean entidades multimedia en las que se incluyen ámbitos.
Problema
Errores de inicialización de contexto y bean de SSO al iniciar ThingWorx.
Descripción
ThingWorx falla al iniciarse.
Solución
Consulte los registros de errores para determinar el problema. En el texto del final del registro de avisos o errores de inicialización de contexto o bean se describe el problema. Por ejemplo, un posible error podría indicarse de la siguiente manera:
SSOConfigurationException: BasicSettings > idpMetadataFilePath cannot be null or empty
Compruebe el valor del parámetro idpMetadataFilePath en el fichero sso-settings.json y añada el valor adecuado.
Problema
El mashup o la aplicación de ThingWorx no se carga después de que el usuario pulse en Don't allow para los ámbitos solicitados en la página Request Grant Approval de PingFederate.
Descripción
Después de pulsar en Don't allow en la página Request Grant Approval, el mashup no se carga y el URL del explorador termina con un símbolo de almohadilla "#" y un punto ".".
Solución
Por defecto, PingFederate utiliza un punto "." como marcador de fragmento que provoca este problema. Para resolverlo, realice lo siguiente:
1. En la ubicación de instalación de PingFederate, navegue hasta <InstalaciónPingFederate>\server\default\data\config-store\sanitize-fragments.xml.
2. Edite este fichero XML y quite el punto "." del marcador de fragmento. La línea debe ser la siguiente: <con:item name="FragmentPlaceholder"></con:item>
3. Reinicie el servidor de PingFederate.
Problema
La autenticación de SAML con http://<servidor>:<puerto>/ThingWorx/runtime/index.html#mashup=<MiMashup> redirige a http://<servidor>:<puerto>/ThingWorx/runtime/index.html después de una conexión correcta.
Descripción
Durante el inicio de sesión en un URL de mashup, la parte de fragmento del URL (es decir, #mashup=<MiMashup>) no se envía al servidor de ThingWorx o al servidor de autenticación para el redireccionamiento adecuado después de iniciar sesión correctamente, porque el explorador conserva esos datos solo para uso del cliente. Por lo tanto, el servidor de ThingWorx y el servidor de autenticación reciben la URL sin el fragmento, es decir, http://<servidor>:<puerto>/Thingworx/runtime/index.html.
Solución
Los URL de mashup que se utilicen como punto de autenticación inicial se construyen con parámetros de consulta en lugar de parámetros de fragmento.
Por lo tanto, en este caso, se utiliza este URL: http://<su servidor>:<puerto>/ThingWorx/runtime/index.html?mashup=<MiMashup>.