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:
Hay más casos prácticos disponibles en el sitio de soporte de IAM.
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 servidor 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>.
Problema
Cada inicio de sesión muestra la página Request Grant Approval de PingFederate.
Descripción
PingFederate no devuelve ámbitos después del proceso correcto de aprobación de concesiones.
Solución
En PingFederate:
1. Cree o edite el fichero oauth-scope-settings.xml que está disponible en las ubicaciones <carpeta de instalación de PingFederate>/server/default/data/config-store de la siguiente manera:
<?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. Reinicie 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>.
Problema
El siguiente error se muestra en el fichero server.log de PingFederate:
ERROR [SpringLdapGuidFormatter] Decoded binary guidAttribute is empty. Please check that the source datastore is configured with 'objectGUID' as a binary attribute. [] Channel: channel1
Descripción
Debido a los cambios en PingFed 11.3, SCIM se debe configurar manualmente.
Solución
Siga los pasos que se mencionan en Adición de atributos binarios LDAP.
Problema
Cuando AzureAD se configura como CAS, el usuario final no puede obtener datos del servidor de recursos (RS) mediante un tipo de conexión de SSO que se basa en conectores ThingWorx (ya que el token de acceso ha vencido).
Descripción
En el fichero SecurityLog.log se muestra el siguiente error.
ERROR: [ Failed to retrieve access token. ][ A redirect is required to get the users approval ]
Solución
definir la propiedad mandatoryScopes en AuthorizationServersSettings en sso-settings.json para incluir offline_access.
¿Fue esto útil?