Configuración del bloque de creación de instrucciones de trabajo para el usuario de la sesión (autenticación de Windchill)
La opción de autenticación de Usuario de la sesión utiliza Windchill para autenticarse en ThingWorx. Cuando un usuario accede a ThingWorx, se redirige a Windchill para su autenticación. Una vez autenticado, el usuario se redirige de nuevo a ThingWorx. Esta configuración requiere que el mismo usuario exista tanto en Windchill como en ThingWorx.
En ThingWorx se incluye una opción de configuración para crear automáticamente usuarios en ThingWorx una vez que se hayan autenticado en Windchill. Si no se selecciona esta opción de configuración, los usuarios deben existir de forma independiente tanto en Windchill como en ThingWorx. El usuario de ThingWorx se debe añadir al grupo de usuarios de ThingWorx adecuado para poder acceder a las entidades y los servicios del bloque de creación de instrucciones de trabajo. Si se selecciona la opción para crear usuarios automáticamente en ThingWorx, se puede designar el grupo de usuarios al que se añaden automáticamente.
Para configurar el bloque de creación de instrucciones de trabajo para que utilice la opción de autenticación Usuario de la sesión, se necesitan las configuraciones de Windchill, ThingWorx y del bloque de creación de instrucciones de trabajo.
Requisitos previos para la autenticación de Windchill
Windchill debe estar configurado para SSL.
ThingWorx debe estar configurado para SSL.
Configuración del bloque de creación de instrucciones de trabajo y de ThingWorx para utilizar la autenticación de Windchill
Complete los siguientes pasos para configurar el bloque de creación de instrucciones de trabajo y ThingWorx para que utilicen Windchill para la autenticación:
1. La instancia de Java de ThingWorx debe tener en cuenta los certificados del servidor de Windchill. Importe el certificado (raíz) en el keystore de Java utilizado por ThingWorx.
2. Si EnableSSO aparece en el fichero platform-settings.json para ThingWorx, establézcalo en false y reinicie el servidor de ThingWorx. De lo contrario, vaya al paso 3.
3. Cree una nueva definición de datos en ThingWorx llamada CustomHeadersDataShape. En Definiciones de campo, cree las dos definiciones de campo siguientes con Tipo base=Cadena:
Accept-Language
Authorization
4. Cree un duplicado de la cosa PTC.SCA.SCO.MPMLink_ODataConnector para las configuraciones, ya que las personalizaciones, como la sustitución de un servicio, se deben realizar en un duplicado. Para obtener más información, consulte Configuración del conector OData de MPMLink y Duplicación de entidades del bloque de creación.
a. En Configuración, defina los siguientes valores:
En Configuración de conexión del conector genérico, seleccione Ninguno en Tipo de autenticación
En Configuración de CSRF, introduzca /servlet/odata para URL relativa para la solicitud Get de CSRF
En Configuración de conexión del conector HTTP:
Deja Nombre de usuario y Contraseña en blanco
En URL base, introduzca https://<nombre de host de Windchill>:<puerto>/Windchill/sslClientAuth, donde <nombre de host de Windchill> y <puerto> son los valores adecuados para el sistema Windchill
En URL relativo, introduzca /servlet/odata
En URL de conexión, introduzca /servlet/WindchillGW/wt.httpgw.HTTPServer/ping
Pulse en Guardar.
b. En Servicios, sustituya el servicio GetCustomHeaderParameters. Añada el siguiente código al servicio:
var Language = Resources["CurrentSessionInfo"].GetCurrentUserLanguage();
var params = {
infoTableName: "InfoTable",
dataShapeName: "CustomHeadersDataShape"
};
var result = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
params = {
tableName: "GenericConnectorConnectionSettings" /* STRING */
};
var configTable = me.GetConfigurationTable(params);
var row = configTable.getRow(0);
var authType = row.getStringValue("AuthenticationType");
if ("None".equals(authType)) {
var CurrentUser = Resources["CurrentSessionInfo"].GetCurrentUser();
var baseEncodedStr = base64EncodeString(CurrentUser + ':');
var authHeaderValue = "Basic " + baseEncodedStr;
row = {
"Accept-Language": Language,
"Authorization": authHeaderValue
};
} else {
row = {
"Accept-Language": Language
};
}
result.AddRow(row);
c. Pulse en Terminado.
d. Pulse en Guardar.
5. Abra la cosa PTC.SCA.SCO.MPMLinkWorkDefinitionConverter para editarla. Asegúrese de que el campo Conector hace referencia al conector duplicado que se ha configurado en el paso 4.
6. Abra la cosa PTC.SCA.SCO.OperatorAdvisorContentProxyMediaEntity para editarla. En Configuración, defina los siguientes valores:
En Información de conexión al origen del contenido:
Marque la casilla Contenido dinámico
En URL, introduzca https://<nombre de host de Windchill>:<puerto>, donde <nombre de host de Windchill> y <puerto> son los valores adecuados para el sistema Windchill
Seleccione la casilla Desestimar errores SSL
En Tipo de autenticación, seleccione Usuario de la sesión
Deja Nombre de usuario y Contraseña en blanco
En Probar URL de conexión, introduzca https://<nombre de host de Windchill>:<puerto>/Windchill/sslClientAuth/servlet/odata, donde <nombre de host de Windchill> y <puerto> son los valores adecuados para el sistema Windchill
En Configuración de la conexión SSL, defina los siguientes valores:
En Ruta del almacén de claves SSL, introduzca la ruta al keystore de ThingWorx
En Contraseña del almacén de claves SSL, introduzca la contraseña del keystore de ThingWorx
En Ruta del almacén de confianza SSL, introduzca la ruta al truststore
En Contraseña del almacén de confianza SSL, introduzca la contraseña del truststore
En Configuración de usuario de la sesión, en Parámetro de consulta de usuario de la sesión, introduzca wt.effectiveUid
7. Pulse en Guardar.
8. Configure Integration Runtime. Para obtener más información, consulte Configuración de Integration Runtime.
9. Pruebe la configuración de ThingWorx:
a. Navegue hasta la cosa PTC.SCA.SCO.MPMlink_ODataConnector del paso 4.
b. En Servicios, ejecute el servicio ValidateConnection. El siguiente resultado confirma una conexión correcta:
Salida para el servicio ValidateConnection.
Configuración de PTC Identity Provider Authenticator
* 
Antes de configurar PTC Identity Provider Authenticator, asegúrese de que la extensión ptc-windchill-extension-[versión] más reciente se importe en ThingWorx. Para acceder a la extensión más reciente:
1. Descargue y descomprima el contenido del fichero PTC-Windchill-Extension-for-ThingWorx. Para localizar la descarga, vaya a la página Descargas de software de PTC y expanda las siguientes carpetas: PTC Smart Connected Applications > Release Apps > PTC Windchill Extension for ThingWorx.
2. Abra el fichero ptc-windchill-extension-<versión>.zip y borre el fichero ptc-thingview-extension.zip. Ya se ha importado una versión más reciente de ptc-thingview-extension.zip como parte del bloque de creación de instrucciones de trabajo.
3. Importe el fichero ptc-windchill-extension-<versión>.zip.
Para configurar PTC Identity Provider Authenticator, complete los siguientes pasos:
1. En ThingWorx Composer, navegue hasta Seguridad > Autenticadores en el panel de navegación.
2. Abra ptc-identity-provider-authenticator.
3. En Información general:
Marque la casilla Activado.
En Prioridad, introduzca el valor adecuado. Por defecto, el valor es 1, lo que indica que este autenticador es el primer autenticador que se debe ejecutar. El valor de Prioridad es importante si desea implementar verificaciones con varios autenticadores. Si el autenticador con una prioridad de 1 falla, el siguiente autenticador realiza la verificación de autenticación, y así sucesivamente.
4. En Configuración:
En Configuración del autenticador, hay dos opciones para configurar: CreateUserDynamically y HomeMashup.
CreateUserDynamically: cuando se selecciona, el autenticador crea automáticamente un usuario en ThingWorx si el usuario no existe todavía y el usuario ha sido autenticado con Windchill. Si la casilla no está marcada, el explorador sigue redirigido a Windchill para la autenticación, pero no se abre ThingWorx si el usuario no existe también en ThingWorx.
HomeMashup: permite asignar un mashup de inicio a los usuarios recién creados. Si no se especifica ningún mashup de inicio, ThingWorx redirige el explorador a la página de búsqueda de ThingWorx.
En User Configuration, añada un UserGroup. Este es el grupo de usuarios al que se añaden automáticamente los usuarios de ThingWorx creados dinámicamente. Seleccione un grupo de usuarios que proporcione acceso a las entidades y los servicios del bloque de creación de instrucciones de trabajo.
5. Pulse en Guardar.
Añadir filtros de servlet a la configuración de Tomcat
El filtro de autenticación del proveedor de identidades de Windchill se utiliza para redirigir a un usuario de ThingWorx no autenticado al formulario de conexión de Windchill para la autenticación. Después de la autenticación correcta, la aplicación de ThingWorx recibe una clave y un nombre de usuario.
El lado de ThingWorx del filtro se configura en el fichero web.xml que se encuentra en el directorio de instalación de ThingWorx Tomcat:
1. Detenga Tomcat e Integration Runtime.
2. Abra el fichero descargado anteriormente PTC-Windchill-Extension-for-ThingWorx y copie el fichero ptc-identity-provider-authentication-filter-<versión>.jar del directorio idp al directorio WEB-INF/lib de la instalación de ThingWorx Tomcat.
3. Navegue al fichero <ThingWorx Tomcat>\webapps\Thingworx\WEB-INF\web.xml.
4. Haga una copia del fichero web.xml y guárdelo en una ubicación conocida.
5. Reemplace el fichero <ThingWorx Tomcat>\webapps\Thingworx\WEB-INF\web.xml por el fichero web.xml del directorio \idp\twx-8.x.x del fichero PTC-Windchill-Extension-for-ThingWorx descargado anteriormente.
6. Abra el fichero web.xml y añada los detalles del servidor de Windchill a las entradas IdentityProviderAuthenticationFilter y IdentityProviderKeyValidatorFilter en el siguiente formato:
[http or https]://[Windchill-host]:[Windchill-port]/[Windchill WebApp name]
El [nombre de WebApp de Windchill] se puede buscar en wt.webapp.name en <Windchill>\codebase\wt.properties.
7. Inicie Tomcat e Integration Runtime.
Configuraciones de Windchill adicionales
1. Cree un fichero ca-bundle.crt en <HTTPSERVER_HOME>\conf\.
2. Edite el fichero ca-bundle.crt:
Incorporar el contenido del certificado SSL del servidor de Windchill
Incorporar el contenido del certificado SSL de ThingWorx
* 
Si Windchill está configurado con un certificado de cadena SSL de terceros, incorpore o copie el contenido de los certificados de Windchill y ThingWorx en ca-bundle.crt en el siguiente orden:
a. Certificado raíz de Windchill
b. Certificado intermedio de Windchill
c. Certificado de servidor de Windchill
d. Certificado de ThingWorx
3. Guarde el fichero ca-bundle.crt.
4. Cree un fichero sslclientauth.conf en <HTTPSERVER_HOME>\conf\sslvhostconf.d.
5. Edite sslclientauth.conf para añadir la siguiente línea:
SSLCACertificateFile <PATH_TO>\ca-bundle.crt\ca-bundle.crt
Reemplace <PATH_TO> por la ruta de fichero del fichero ca-bundle.crt.
6. Guarde el fichero sslclientauth.conf.
7. Edite el fichero <HTTPSERVER_HOME>\conf\conf.d\20-mod_ssl.conf:
Quite el comentario de la línea que contiene lo siguiente (quite el carácter de almohadilla (#) al principio de la línea):
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
Quite el comentario de la línea que contiene lo siguiente:
SSLVerifyDepth
8. Guarde el fichero 20-mod_ssl.conf.
9. Edite el fichero <HTTPSERVER_HOME>\conf\httpd.conf. Asegúrese de que las siguientes líneas no estén comentadas (quite los caracteres de almohadilla (#) al principio de estas líneas):
LoadModule log_config_module modules/mod_log_config.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
10. Guarde el fichero httpd.conf.
11. Abra el fichero <HTTPSERVER_HOME>\conf\conf.d\30-app-Windchill-Auth.conf. Confirme que hay una entrada sslClientAuth similar a la siguiente:
# SSL client certificate authenticated resources
<IfModule ssl_module>
<LocationMatch ^/+Windchill/+sslClientAuth(;.*)?>
Require all granted
SSLVerifyClient require
SSLOptions +ExportCertData
</LocationMatch>
</IfModule>
12. Reinicie el servidor HTTP de PTC con la opción -DSSL para activar SSL.
13. Edite el fichero <Windchill>\codebase\WEB-INF\web.xml.
a. Ubique <filter-name>TrustedSSLAuthFilter</filter-name>
b. Añada un nuevo init-param después de uno existente:
<init-param>
<param-name>trustedSubjectPattern.1</param-name>
<param-value>.*[hostname].* </param-value>
</init-param>
Utilice el nombre de host del asunto del certificado para [hostname]. Por ejemplo, si el asunto es CN=mycompany.domain.com, utilice mycompany para [hostname].
14. Guarde el fichero web.xml.
15. Reinicie Windchill.
Verificar la configuración
Tanto Windchill como ThingWorx deben acordar el nombre del usuario administrador. Tenga en cuenta las siguientes opciones:
Si no se han realizado cambios en Windchill, se creó un usuario administrador llamado Administrator al instalar Windchill. Mediante un sistema de ThingWorx configurado, se puede autenticar como ese usuario y disponer de derechos de acceso completos como usuario administrador en ThingWorx.
Si se ha modificado Windchill de modo que no haya un usuario llamado Administrator, se debe decidir un nombre de usuario común para Windchill y ThingWorx, y añadir dicho usuario al grupo de usuarios Administradores en ThingWorx.
Para verificar la configuración de autenticación de Windchill, abra un explorador en el URL de ThingWorx. El explorador se redirige a Windchill para la autenticación. Proporcione las credenciales de Windchill para Administrator (u otro usuario configurado como administrador de ThingWorx). El explorador se redirige de nuevo a ThingWorx Composer. Verifique que ahora esté funcionando en ThingWorx como ese usuario. Esto verifica que ThingWorx se ha configurado correctamente con la autenticación de Windchill.
Si ha elegido que el autenticador cree usuarios automáticamente, pruébelo ahora. Para verificarlo, abra un explorador en el URL de ThingWorx. Se redireccionará a Windchill para la autenticación. Proporcione credenciales de Windchill de un usuario que no exista en ThingWorx. El explorador se redirige de nuevo a ThingWorx, a la página especificada como mashup de inicio para los usuarios creados dinámicamente. Verifique que ahora esté funcionando como ese usuario en ThingWorx.
¿Fue esto útil?