Ejemplo: PingFederate como el proveedor de IdP y Windchill DS como el almacén de datos
En este ejemplo se proporcionan los pasos detallados sobre cómo configurar un entorno de SSO que tenga ThingWorx configurado para el inicio de sesión único con PingFederate como servidor de autenticación central (CAS) y el proveedor de identidades (IdP), y Windchill DS como almacén de datos.
En la siguiente tabla se muestran las aplicaciones configuradas y su rol en este ejemplo:
Rol
|
Aplicación
|
Proveedor de servicios
|
ThingWorx
|
Servidor de autorización
|
PingFederate
|
Proveedor de identidades
|
PingFederate (soportado por Windchill DS)
|
Con Windchill 12.0.1.0, Windchill DS se ha quitado de la pila de tecnología. Hay más información disponible aquí. Se puede utilizar LDAP v3 en lugar de Windchill DS.
|
|
PTC proporciona scripts de automatización para la configuración de
PingFederate que se describe en este ejemplo. Para obtener más información, consulte
Configuración automática de PingFederate como servidor de autenticación central.
En el siguiente diagrama se muestra la configuración que se describe en este ejemplo.
Parte A: requisitos previos
• Asegúrese de disponer de una instalación nueva de ThingWorx.
Detenga el servidor ThingWorx después de la instalación.
• Asegúrese de haber configurado Windchill DS.
| Instale la versión adecuada de Java para la versión de PingFederate. En el ordenador de PingFederate, defina la variable de entorno JAVA_HOME y actualice la variable PATH para incluir Java según corresponda. |
Parte B: Antes de ejecutar los scripts
Paso 1: Creación del certificado SSL global de PingFederate y su exportación
1. Inicie sesión en PingFederate como administrador y navegue hasta > .
2. Pulse en Create New para crear el certificado SSL global y realice lo siguiente:
a. En el campo Common Name, proporcione el FQDN de del ordenador de PingFederate.
b. Proporcione otros detalles en la página y pulse en Next.
c. Pulse en Done y en Save.
d. Pulse en SSL Server Certificates.
e. Para el certificado SSL que se ha creado, en la lista Select Action, seleccione Activate Default for Runtime Server y, a continuación, seleccione Activate Default for Admin Console. Pulse en Save.
Este certificado SSL se marca como default para la consola de administración y el servidor de tiempo de ejecución.
3. Para el certificado localhost, realice lo siguiente:
a. En la lista Select Action, seleccione Deactivate for Runtime Server y, a continuación, seleccione Deactivate for Admin Console.
b. Borre el certificado localhost y pulse en Save.
4. Para exportar el certificado SSL global de PingFederate, realice lo siguiente:
a. Para el certificado que se ha creado, pulse en Export.
b. Seleccione Certificate Only y pulse en Next.
c. Pulse en Export.
El certificado se exporta a la carpeta Descargas por defecto.
d. Pulse en Done y en Save.
Paso 2: Almacenamiento de los ficheros de certificado en la carpeta input de configuración automatizada de PingFederate
Los certificados son necesarios como entrada para el proceso de configuración automatizado. Los siguientes ficheros de certificados se deben guardar en la carpeta input de la herramienta de configuración automatizada. La carpeta input está disponible en sso-config-pingfed-X.Y/input, donde X.Y indica la versión de PingFederate.
◦ Copie el fichero de certificado global de PingFederate (.crt) que se ha exportado a la carpeta Descargas.
◦ Para crear y copiar el fichero thingworx.cer en la carpeta input, realice lo siguiente:
a. En la carpeta <Carpeta de instalación de ThingWorx>/ThingworxPlatform, cree la carpeta ssoSecurityConfig.
b. Cree un keystore de tipo JKS, asígnele el nombre sso-keystore.jks y guárdelo en la carpeta ssoSecurityConfig de la siguiente manera:
▪ Genere un par de claves.
▪ Especifique el nombre común del certificado como ThingWorx.
c. Exporte la cadena de certificado a la carpeta ssoSecurityConfig.
Los siguientes ficheros deberían estar en la carpeta ssoSecurityConfig:
▪ sso-keystore.jks
▪ thingworx.cer
d. Copie el fichero thingworx.cer en la carpeta sso-config-pingfed-X.Y/input.
Los siguientes ficheros deben estar en la carpeta input:
▪ <Certificado_SSL_exportado-de_PingFederate>.crt
▪ thingworx.cer
Paso 3: Actualización del fichero user.properties
Paso 4: Actualización del fichero default.properties
Parte C: Ejecución de los scripts de automatización
1. Asegúrese de que PingFederate esté en ejecución.
Para la configuración de este ejemplo, elija 1. PingFederate como IdP: LDAP durante la ejecución de los scripts.
Parte D: Uso de los elementos generados
Paso 1: Copia de elementos en la carpeta ssoSecurityConfig
1. Copie los siguientes ficheros de la carpeta output de la configuración automática de PingFederate disponible en sso-config-pingfed-X.Y en la carpeta /ThingworxPlatform/ssoSecurityConfig:
▪ pingfed_idp_metadata.xml
▪ pingfed_signing_certificate.crt
▪ pingfed_ssl_server_certificate.crt
2. Cambie el nombre de pingfed_idp_metadata.xml por sso-idp-metadata.xml.
Paso 2: Importación del certificado de firma de la capa de aplicación al keystore de ThingWorx
Importe el fichero
pingfed_signing_certificate.crt al fichero
sso-keystore.jks de la carpeta
/ThingworxPlatform/ssoSecurityConfig. Para obtener más información, consulte la sección sobre
pingfed_signing_certificate.crt en
Uso de los elementos generados.
Paso 3: Importación de los certificados de la capa de transporte
Certificado SSL de ThingWorx
1. Importe el certificado SSL de ThingWorx al fichero Java cacerts del ordenador de PingFederate.
2. Reinicie PingFederate.
Certificado SSL de PingFederate
Importe pingfed_ssl_server_certificate.crt (el fichero de certificado SSL de PingFederate) al fichero Java cacerts del ordenador de ThingWorx.
Parte E (opcional): Configuración de la asignación de grupos
| Asegúrese de haber definido grupos estáticos en Windchill DS antes de continuar. |
Realice los siguientes pasos en PingFederate:
1. Vaya a > y seleccione Instance Name.
2. En la página que se abre, seleccione la ficha Extended Contract.
3. En el campo Extend the Contract, añada isMemberOf y pulse en Add.
4. Pulse en Next para ver la página Summary.
5. En la página Summary que se abre, revise los cambios y pulse en Save.
6. Vaya a > y seleccione Instance Name.
7. En la página que se abre, seleccione la ficha Extended Contract.
8. En el campo Extend the Contract, añada isMemberOf y pulse en Add.
9. Pulse en Next para ver la página Adapter Attributes. No es necesario que se realicen actualizaciones en esta página.
10. Pulse en Next para ir a la página Adapter Contract Mapping y seleccione Configure Adapter Contract.
11. En la página Attribute Sources & User Lookup, pulse en Add Attribute Source.
a. En la página Data Store, realice los siguientes pasos:
i. Para ATTRIBUTE SOURCE ID, añada isMemberOf.
ii. Para ATTRIBUTE SOURCE DESCRIPTION, añada isMemberOf.
iii. Para ACTIVE DATA STORE, seleccione el almacén de datos Windchill.
iv. Para DATA STORE, LDAP se rellena previamente.
v. Pulse en Next.
b. En la página LDAP Directory Search, realice los siguientes pasos:
i. Para BASE DN, añada o=ptc.
ii. Para SEARCH SCOPE, Subtree se rellena previamente.
iii. Para Attributes to return from search, seleccione lo siguiente:
i. Para ROOT OBJECT CLASS, seleccione <Show All Attributes>.
ii. Para ATTRIBUTE, seleccione isMemberOf y pulse en Add Attribute.
iii. Pulse en Next.
c. En la página LDAP Filter, realice los siguientes pasos:
i. En Filter, añada isMemberOf=${isMemberOf}.
ii. Pulse en Next.
d. En la página Summary que se abre, revise los cambios y pulse en Save.
12. Abra > y seleccione Connection Name.
13. En la página que se abre, seleccione Attribute Contract para abrir la página Attribute Contract y realice los siguientes pasos:
a. Para Extend the Contract, añada group.
b. Para Attribute Name Format, seleccione la opción con unspecified.
c. Pulse en Añadir.
d. Pulse en Siguiente.
14. En la página Authentication Source Mapping que se abre, seleccione Adapter Instance Name.
15. En la página Attribute Contract Fulfilment que se abre, realice los siguientes pasos para el contrato de atributo group que se ha creado en el paso 12.
a. Para Source, seleccione Adapter.
b. Para Value, seleccione isMemberOf.
c. Pulse en Save.
| Tome nota del nombre de asignación (en este ejemplo group) porque lo necesitará en el autenticador de SSO ThingWorx. Para obtener más información, consulte el tema Autenticación de inicio de sesión único del centro de ayuda de ThingWorx. |
Parte F: Configuración de ThingWorx para el inicio de sesión único
1. Asegúrese de que el servidor ThingWorx esté detenido.
b. ssoSecurityConfig debe contener los siguientes ficheros:
3. Inicie el servidor de ThingWorx.