Configuración del fichero sso-settings.json
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",
"ptcOperatorsGroupName": "Consulte la información de la siguiente tabla",
"samlGroupClaimName": "Consulte la información de la siguiente tabla",
"administratorAlias": "Consulte la información de la siguiente tabla",
“administratorInternalName": "Administrator",
"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",
},
"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"
"mandatoryScopes": "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 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 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
ptcOperatorsGroupName
Opcional.
Defina este parámetro para configurar un grupo (tal como se define en IDP) para que forme parte del grupo de administradores ThingWorx automáticamente.
administratorAlias
Opcional.
El nombre de usuario de administrador, tal como está configurado en CAS[IDP].
administratorInternalName
Obligatorio si administratorAlias está definido.
El nombre de usuario del administrador tal como está configurado en ThingWorx.
Por ejemplo, Administrador.
samlGroupClaimName
Opcional.
Este parámetro solo es pertinente cuando se haya definido ptcOperatorsGroupName.
Introduzca el objeto IDP SAML Group Claim Name configurado en el CAS para completar la automatización de ese grupo en el autenticador de SSO de ThingWorx. Para obtener más información, consulte ThingworxSSOAuthenticator.
Ejemplos:
Para PingFederate CAS: grupo
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.
postgres
mssql
driverClassName
Permite especificar el nombre de clase del controlador que se utiliza en el fichero platform-settings.json.
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.
url
Permite especificar la URL a la ubicación de la base de datos para la instalación de ThingWorx.
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.
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.
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.
encryptTokenInDatabase
Se define en verdadero para cifrar el token de acceso antes de almacenarlo en la base de datos.
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.
verdadero
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.
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.
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
<IDAutorizaciónServidor1>.mandatoryScopes
Opcional para CAS que no sean AzureAD y ADFS. Este ámbito se añadirá automáticamente a cualquier objeto accessToken solicitado cuando se haya definido este parámetro.
* 
Si hay más de un ámbito, utilice un espacio como delimitador.
Obligatorio para AzureAD como CAS. El valor obligatorio es "offline_access".
Obligatorio para ADFS: puede ser cualquier valor que no esté definido en la lista de ámbitos del servidor ADFS.
¿Fue esto útil?