Configuración del fichero sso-settings.json
* 
Complete los pasos relacionados con ThingWorx Flow si se utilizan versiones anteriores a ThingWorx Flow 9.2. Los pasos se automatizan en ThingWorx Flow 9.2. Si se ha instalado ThingWorx Flow, se deben detener todos los servicios de ThingWorx Foundation y ThingWorx Flow, incluidos RabbitMQ y Nginx, antes de configurar el fichero sso-settings.json. Después de configurar este fichero, primero se debe reiniciar RabbitMQ y, a continuación, todos los servicios de ThingWorx Foundation y ThingWorx Flow, incluido Nginx.
Cree el fichero sso-settings.json en el directorio ssoSecurityConfig.
Si el entorno requiere otra ruta, defina el valor de la variable de entorno THINGWORX_SSO_SETTINGS para guardar el fichero sso-settings.json en otra ubicación.
A continuación se muestra una estructura de ejemplo del fichero sso-settings.json:
{
"BasicSettings": {
"clientBaseUrl": "Consulte la información de la siguiente tabla",
"idpMetadataFilePath": "Consulte la información de la siguiente tabla",
"metadataEntityId": "Consulte la información de la siguiente tabla",
"metadataEntityBaseUrl": "Consulte la información de la siguiente tabla",
"webSSOProfileConsumerResponseSkew": "Consulte la información de la siguiente tabla",
"webSSOProfileConsumerReleaseDOM": "Consulte la información de la siguiente tabla",
"webSSOProfileResponseSkew": "Consulte la información de la siguiente tabla",
"retriggerOnScopesRemoval": "Consulte la información de la siguiente tabla",
"samlAssertionUserNameAttributeName": "Consulte la información de la siguiente tabla",
"samlAssertionMaxAuthenticationAge": "Consulte la información de la siguiente tabla",
"authnContextAsPassword": "Consulte la información de la siguiente tabla"
},
"AccessTokenPersistenceSettings": {
"dbType": "Consulte la información de la siguiente tabla",
"driverClassName": "Consulte la información de la siguiente tabla",
"url": "Consulte la información de la siguiente tabla",
"username": "Consulte la información de la siguiente tabla",
"password": "Consulte la información de la siguiente tabla",
"encryptTokenInDatabase": "Consulte la información de la siguiente tabla",
"keyczarKeyFolderPath": "Desfasado en la versión 9.3 y posteriores. Consulte la información de la siguiente tabla"
},
"KeyManagerSettings": {
"keyStoreFilePath": "Consulte la información de la siguiente tabla",
"keyStoreStorePass": "Consulte la información de la siguiente tabla",
"keyStoreKey": "Consulte la información de la siguiente tabla",
"keyStoreKeyPass": "Consulte la información de la siguiente tabla"
},
"AuthorizationServersSettings": {
"<AuthorizationServerId1>": {
"clientId": "Consulte la información de la siguiente tabla",
"clientSecret": "Consulte la información de la siguiente tabla",
"authorizeUri": "Consulte la información de la siguiente tabla",
"tokenUri": "Consulte la información de la siguiente tabla",
"clientAuthScheme": "Consulte la información de la siguiente tabla"
},
"<AuthorizationServerId2>": {
"clientId": "Consulte la información de la siguiente tabla",
"clientSecret": "Consulte la información de la siguiente tabla",
"authorizeUri": "Consulte la información de la siguiente tabla",
"tokenUri": "Consulte la información de la siguiente tabla",
"clientAuthScheme": "Consulte la información de la siguiente tabla"
}
}
}
}
* 
El usuario debe asegurarse de editar el valor de cada parámetro según sus requisitos. La implementación puede variar en función de varios factores, como la ubicación donde se aloja ThingWorx, las directivas de seguridad de la organización y el CAS de la federación. Utilice la información de las siguientes tablas como guía para definir los valores de los distintos parámetros.
En la siguiente tabla se describen los distintos parámetros y valores por defecto de la sección BasicSettings del fichero sso-settings.json:
Parámetro
Descripción
Value
clientBaseUrl
Permite especificar la URL de la instancia de servidor de ThingWorx.
Defínalo en el nombre de dominio completo (FQDN) del servidor de ThingWorx.
Si se ha instalado ThingWorx Flow, se debe especificar el nombre de host de Nginx de ThingWorx Flow y el número de puerto de Nginx de ThingWorx Flow en el URL.
Si se ha configurado ThingWorx para que funcione en un entorno de alta disponibilidad (HA), especifique el host y el puerto del equilibrador de carga.
http://<FQDN-ThingWorx>:<port-number>/Thingworx
O bien
Para ThingWorx Flow, https://<nombre de host de Nginx de ThingWorx Flow>:<número de puerto de Nginx de ThingWorx Flow>/Thingworx
O bien
En un entorno de alta disponibilidad, https://<nombre de host del equilibrador de carga>:<número de puerto del equilibrador de carga>/Thingworx
idpMetadataFilePath
Permite especificar la ubicación de la ruta de fichero absoluta del fichero de metadatos de IdP.
/ThingworxPlatform/ssoSecurityConfig/sso-idp-metadata.xml
metadataEntityId
Permite especificar el ID de entidad de la conexión del proveedor de servicios.
PingFederate como CAS: utilice el ID exclusivo elegido al configurar la conexión del proveedor de servicios.
Azure AD como CAS: utilice Identifier (Entitity ID) que se ha definido al configurar las opciones de configuración básicas de SAML.
AD FS como CAS: utilice el valor de Relying party trust identifier que se ha definido al configurar las opciones de terceros de confianza.
metadataEntityBaseUrl
Permite especificar el nombre de dominio completo del servidor de ThingWorx.
* 
No se recomienda utilizar nombres de dominio que no sean completos. Si la organización elige utilizar un nombre de dominio no completo, el departamento de TI debe garantizar que el cliente pueda acceder al nombre de dominio y que este esté configurado correctamente en los ficheros de configuración de SSO de ThingWorx.
Si se ha instalado ThingWorx Flow, se debe especificar el URL de Nginx de ThingWorx Flow.
* 
Complete este paso si se encuentra en una versión anterior a ThingWorx Flow 9.2. Este paso se ha automatizado en ThingWorx Flow 9.2.
Si se ha configurado ThingWorx para que funcione en un entorno de alta disponibilidad (HA), especifique el host y el puerto del equilibrador de carga.
http://<FQDN-ThingWorx>:<port-number>/Thingworx
O bien
Para ThingWorx Flow, https://<nombre de host de Nginx de ThingWorx Flow>:<número de puerto de Nginx de ThingWorx Flow>/Thingworx
O bien
En un entorno de alta disponibilidad, https://<nombre de host del equilibrador de carga>:<número de puerto del equilibrador de carga>/Thingworx
webSSOProfileConsumerResponseSkew
Permite especificar la tolerancia de desfase de respuesta del consumidor de aserción de SAML 2.0 Web SSO.
Al definir este valor, se debe tener en cuenta los requisitos de seguridad del usuario, así como la latencia de la red empresarial.
Esta configuración se utiliza para establecer la cantidad de tiempo (en segundos) de que dispone el servicio de autenticación centralizada (CAS) para devolver a ThingWorx una respuesta de solicitud de conexión. Si la respuesta de solicitud de conexión tarda más de lo definido en este valor, el intento de conexión falla.
La tolerancia de desfase es la desviación en la validez de respuesta que el destinatario permite debido a las supuestas diferencias entre los relojes de los sistemas. Se recomienda minimizar los efectos del desfase asegurándose de que los relojes de cada sistema estén sincronizados correctamente.
300
webSSOProfileConsumerReleaseDOM
Permite determinar si la estructura de seguridad mantiene la aserción de SAML después de completarse la autenticación.
Si se define en falso, la aserción de SAML se mantiene después de completarse la autenticación.
verdadero
webSSOProfileResponseSkew
Permite especificar la tolerancia de desfase de respuesta del perfil de SAML 2.0 Web SSO.
Al definir este valor, se debe tener en cuenta los requisitos de seguridad del usuario, así como la latencia de la red empresarial.
La tolerancia de desfase es la desviación en la validez de respuesta que el destinatario permite debido a las supuestas diferencias entre los relojes de los sistemas. Se recomienda minimizar los efectos del desfase asegurándose de que los relojes de cada sistema estén sincronizados correctamente.
300
retriggerOnScopesRemoval
Permite especificar si la lista de ámbitos obligatorios ha cambiado y debe actualizarse.
Si el valor se define en verdadero, indica que se ha añadido un ámbito a la lista de ámbitos obligatorios o se ha quitado de ella.
Si el valor se define en falso, indica que se ha añadido un ámbito a la lista de ámbitos obligatorios.
verdadero
samlAssertionUserNameAttributeName
Permite especificar qué atributo de SAML tiene el valor en el que se almacenan los nombres de usuario de los usuarios de ThingWorx cuando estos inician sesión. Asegúrese de que el valor de este atributo en el proveedor de identidad esté en consonancia con los valores de nombre de usuario que se utilizarían para nombres de usuario de ThingWorx.
* 
Para la cuenta de administrador de ThingWorx, el valor de nombre de usuario se debe definir en Administrador. Asegúrese de configurar el IdP para que devuelva el valor Administrador para la cuenta de administrador. Para obtener más información, consulte Creación de alias de administrador de ThingWorx en el proveedor de identidad.
PingFederate o Azure AD como CAS:
uid
AD FS como CAS:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
samlAssertionMaxAuthenticationAge
Permite especificar la duración máxima (en segundos) de la aserción de SAML 2.0 antes de que venza. También permite especificar el tiempo de sesión máximo para una aserción de autenticación.
Defina el valor para que coincida con el valor del tiempo de espera de la sesión especificado en el proveedor de identidad. Este valor será diferente en función del IdP que se esté utilizando.
PingFederate como CAS con IdP de LDAP (Windchill): 7200 (este es el valor por defecto)
AD FS como IdP (con AD FS o PingFederate como CAS): 28800
Azure AD como IdP (con Azure AD o PingFederate como CAS): 86400
authnContextAsPassword
Opcional. En algunos casos poco frecuentes, IdP requiere que se coloque la siguiente aserción en la solicitud de SAML.
<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>
En esos casos, se debe definir esta propiedad.
falso
* 
Si desea activar el autenticador de claves de aplicación cuando SSO está activado, se debe añadir la siguiente sección de configuración ApplicationKeySettings a la configuración de sso-settings.json en BasicSettings. Solo es obligatorio si desea utilizar caves de aplicación para la autenticación a través de solicitudes de API de REST. Las claves de aplicación pueden seguir utilizándose desde dispositivos Edge a través de WebSockets, independientemente de si se activa o desactiva esta configuración.
{
"BasicSettings": {
...
},
"ApplicationKeySettings": {
"enabled": true
},
...
}
En la siguiente tabla se describen los distintos parámetros y valores por defecto de la sección AccessTokenPersistenceSettings del fichero sso-settings.json:
Parámetro
Descripción
Value
dbType
Permite especificar el tipo de base de datos que se configura y se utiliza para la instalación de ThingWorx.
Para utilizar la misma base de datos que se ha definido en el fichero platform-settings.json, se debe especificar el mismo tipo de base de datos y las mismas credenciales que se han definido en platform-settings.json.
Para utilizar una base de datos dedicada para el token de autorización, especifique el valor "por defecto". Una vez que se haya configurado el valor "por defecto", se crea una nueva base de datos H2 dedicada.
por defecto
* 
Este tipo de base de datos "por defecto" es la selección por defecto de la configuración del SSO.
H2
postgres
mssql
hana
driverClassName
Permite especificar el nombre de clase del controlador que se utiliza en el fichero platform-settings.json.
Para dbType definido en por defecto, defina el parámetro en org.h2.Driver.
Para dbType definido en h2, defina el parámetro en org.h2.Driver.
Para dbType definido en postgres, defina el parámetro en org.postgresql.Driver.
Para dbType definido en mssql, defina el parámetro en com.microsoft.sqlserver.jdbc.SQLServerDriver.
Para dbType definido en hana, defina el parámetro en com.sap.db.jdbc.Driver.
url
Permite especificar la URL a la ubicación de la base de datos para la instalación de ThingWorx.
Para dbType definido en por defecto, defina el parámetro en jdbc:h2:\\<unidad>:\\ThingworxPlatform\\ssoSecurityConfig\\sso-oauth2-client-db.
Para dbType definido en h2, este parámetro no es obligatorio.
Para dbType definido en postgres, defina el parámetro en jdbc:postgresql://<nombre de host>:<puerto>/thingworx.
Para dbType definido en mssql, defina el parámetro en jdbc:sqlserver://<nombre de host>:<puerto>;databaseName=thingworx;applicationName=Thingworx.
Para dbType definido en hana, defina el parámetro en jdbc:sap://<dirección IP>:39041/?databaseName=thingworx&currentschema=TWADMIN.
username
Permite especificar el nombre de usuario de la base de datos que el sistema utiliza para almacenar tokens de acceso. Debe coincidir con el nombre de usuario especificado en el fichero platform-settings.json.
* 
Cuando se activa el SSO en ThingWorx, la base de datos H2 se debe proteger mediante contraseña. Para obtener más información, consulte Protección de la base de datos H2 mediante contraseña cuando se activa el SSO.
password
Permite especificar la contraseña de la base de datos que el sistema utiliza para almacenar tokens de acceso. Debe coincidir con la contraseña especificada en el fichero platform-settings.json.
* 
Cuando se activa el SSO en ThingWorx, la base de datos H2 se debe proteger mediante contraseña. Para obtener más información, consulte Protección de la base de datos H2 mediante contraseña cuando se activa el SSO.
encryptTokenInDatabase
Se define en verdadero para cifrar el token de acceso antes de almacenarlo en la base de datos.
Para ThingWorx 9.3 y versiones posteriores:
Si este valor se define en verdadero, se crea automáticamente un fichero private-keyset.cfg cuando se inicia ThingWorx y se almacena en la carpeta ssoSecurityConfig. Este fichero de conjunto de claves solo se crea una vez.
Para ThingWorx 9.2. x y versiones anteriores:
Defina keyczarKeyFolderPath en una ubicación válida de keyCzarKey.
verdadero
keyczarKeyFolderPath
Para ThingWorx 9.3 y versiones posteriores:
La herramienta Keyczar ha quedado obsoleta y se ha reemplazado por Tink. Esta propiedad ya no es necesaria para cifrar los tokens de acceso antes de que se conserven en la base de datos.
Para ThingWorx 9.2. x y versiones anteriores:
Si el valor del parámetro encryptTokenInDatabase se define en verdadero, esta ruta debe señalar a una ubicación de keyCzarKey válida. Modifique la ruta para utilizar el directorio donde se encuentra la carpeta ThingworxPlatform\ssoSecurityConfig\symmetric.
* 
Se recomienda encarecidamente utilizar una ubicación de almacenamiento para la clave de keystore que sea distinta a la ubicación en la que está almacenado el fichero sso-settings.json. Por lo tanto, es posible aplicar a estos ficheros controles de acceso al sistema de ficheros más granulares. La configuración general de ThingWorx se debe almacenar en una ubicación distinta a la de la carpeta de la clave keystore y la del fichero sso-settings.json.
Para ThingWorx 9.3 y versiones posteriores:
Para ThingWorx 9.2. x y versiones anteriores:
En Windows: <unidad>:\\ThingWorxPlatform\\ssoSecurityConfig\\symmetric
donde <unidad> indica la unidad en la que se ha instalado ThingWorx.
Para Linux: <ruta completa>/ThingworxPlatform/ssoSecurityConfig/symmetric
En función del valor de dbType, los tokens de acceso de OAuth 2.0 (aprobaciones de concesiones) se almacenan en distintas ubicaciones. En la siguiente tabla se proporciona información sobre la ubicación en la base de datos donde se almacenan las aprobaciones de concesiones:
dbType
Ubicación en la base de datos donde se almacenarán las aprobaciones de concesiones.
por defecto
Se crea una base de datos H2 de subconjunto, tal como se especifica en la ruta del parámetro url. Por defecto, la base de datos se coloca en un directorio relativo al directorio Tomcat.
Si dbType se define en por defecto, se recomienda especificar la ruta completa de la URL de JDBC y no solamente la ruta relativa.
Por ejemplo: jdbc:h2:./ThingworxPlatform/ssoSecurityConfig/sso-oauth2-client-db
H2
Ficheros WAR de H2 de ThingWorx en los ficheros de base de datos H2 ThingworxStorage/database.
postgres
En la tabla oauth_client_token de la base de datos PostgreSQL de ThingWorx.
mssql
En la tabla oauth_client_token de la base de datos MS SQL de ThingWorx.
hana
En la tabla oauth_client_token de la base de datos SAP HANA de ThingWorx.
En la siguiente tabla se describen los distintos parámetros y valores por defecto de la sección KeyManagerSettings del fichero sso-settings.json:
Parámetro
Descripción
Value
keyStoreFilePath
Permite especificar la ubicación de la ruta de fichero absoluta del keystore. Según el entorno, se debe modificar la ruta para utilizar el directorio donde se guarda el fichero del keystore.
* 
Se recomienda encarecidamente utilizar una ubicación de almacenamiento para la clave de keystore que sea distinta a la ubicación en la que está almacenado el fichero sso-settings.json. Por lo tanto, es posible aplicar a estos ficheros controles de acceso al sistema de ficheros más granulares. La configuración general de ThingWorx se debe almacenar en una ubicación distinta a la de la clave de keystore y la del fichero sso-settings.json.
Para Windows: <unidad>:\\ThingworxPlatform\\ssoSecurityConfig\\sso-keystore.jks
donde <unidad> indica la unidad en la que se ha instalado ThingWorx.
Para Linux: <ruta completa>/ThingworxPlatform/ssoSecurityConfig/sso-keystore.jks
keyStoreStorePass
Permite especificar la contraseña de keystore.
keyStoreKey
Permite especificar la clave por defecto.
keyStoreKeyPass
Permite especificar la contraseña que se utiliza para acceder a las claves privadas.
En la siguiente tabla se describen los distintos parámetros y valores por defecto de la sección AuthorizationServersSettings del fichero sso-settings.json:
* 
En la configuración de AuthorizationServersSettings se puede incluir información para más de un servidor de autorización. Cada servidor se identifica mediante un identificador exclusivo en el fichero sso-settings.json.
Parámetro
Descripción
Value
<IDAutorizaciónServidor1>.clientId
Permite especificar el identificador de cliente que se debe utilizar al obtener tokens de acceso del servidor de autorización.
* 
Elija un valor para proporcionar para la variable AuthorizationServerId1 . Este valor de la variable AuthorizationServerId1 se utiliza para establecer la configuración de conexión de un conector de integración o una entidad multimedia. Si el administrador o el desarrollador que establece la configuración del conector no tiene acceso al directorio ssoSecurityConfig, se le debe proporcionar esta información.
<IDAutorizaciónServidor1>.clientSecret
Permite especificar las credenciales de cliente que se utilizan para autenticar con el servidor de autorización.
Se debe definir en la URL de servidor de nombres de dominio completos en la red.
<IDAutorizaciónServidor1>.authorizeUri
Permite especificar el URI al que se redirigirá al usuario para autorizar un token de acceso.
PingFederate como CAS:
https://<nombre-host-PingFederate>:<número-puerto-PingFederate>/as/authorization.oauth2
* 
Utilice el puerto de tiempo de ejecución PingFederate que se proporciona con la instalación de PingFederate.
Azure AD como CAS: consulte la sección Actualización de los ficheros de configuración de ThingWorx en la documentación de autorización de Azure AD.
AD FS como CAS: consulte la sección Actualización de los ficheros de configuración de ThingWorx en la documentación de autorización de AD FS.
<IDAutorizaciónServidor1>.tokenUri
Permite especificar el URI que se debe utilizar para obtener un token de acceso de OAuth2.
Se debe definir en la URL de servidor de nombres de dominio completos en la red.
https://<nombre-host-PingFederate>:<número-puerto-PingFederate>/as/token.oauth2
* 
Utilice el puerto de tiempo de ejecución PingFederate que se proporciona con la instalación de PingFederate.
<IDAutorizaciónServidor1>.clientAuthScheme
Permite especificar el esquema que se debe utilizar para autenticar el cliente. Los valores permitidos son los siguientes:
formulario
cabecera
query
ninguno
formulario
¿Fue esto útil?