Ejemplos de configuraciones de CAS > PingFederate como servidor de autenticación central > Ejemplos de configuraciones de SSO > Ejemplo: Integración de la autenticación basada en certificados con PingFederate
Ejemplo: Integración de la autenticación basada en certificados con PingFederate
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 con la autenticación basada en certificados (CBA). Permite a los usuarios iniciar sesión en ThingWorx con sus credenciales o el certificado.
Para obtener documentación detallada de PingFederate, consulte Configuring an X.509 Certificate IdP Adapter.
Parte A: Requisitos previos 
Paso 1: Generar certificados
Cuando se configura la autenticación basada en certificados, PingFederate se configura de modo que el certificado que se utiliza para autenticar al usuario se pueda validar con el certificado de la entidad de certificación (CA) almacenado en PingFederate. Si el usuario no dispone de una CA ni certificado de usuario, puede generar un certificado autofirmado y utilizarlo en PingFederate. Para generar una clave pública y un certificado de cliente, utilice los siguientes comandos:
1. openssl genrsa -out ptc-sso-ca.key 4096
2. openssl req -x509 -new -nodes -key ptc-sso-ca.key -days 3650 -out ptc-sso-ca.pem
3. openssl genrsa -out ptc-sso-jsmith.key 2048
4. openssl req -new -key ptc-sso-jsmith.key -out ptc-sso-jsmith.csr
5. Cree un fichero v3.ext:
extendedKeyUsage=clientAuth
keyUsage = digitalSignature
6. openssl x509 -req -in ptc-sso-jsmith.csr -CA ptc-sso-ca.pem -CAkey ptc-sso-ca.key -CAcreateserial -out ptc-sso-jsmith.pem -days 1024 -sha256 -extfile <path to v3.ext file>
7. openssl pkcs12 -export -out ptc-sso-jsmith.pfx -inkey ptc-sso-jsmith.key -in ptc-sso-jsmith.pem
Paso 2: Añadir el certificado de CA a PingFederate
Para utilizar el token X.509, PingFederate requiere un puerto SSL secundario. Para definir un puerto SSL secundario, edite el fichero <pf-install>/ping federate/bin/run.properties, cambiando el valor de pf.secondary.https.port por un número de puerto válido. (Para este ejemplo, se configuraremos como 9032).
Paso 3: Añadir un certificado de CA de confianza
1. Vaya a Security > Trusted CA > Import.
2. Seleccione el fichero de certificado de autoridad de CA (ficheropem).
3. En la ventana Summary, revise la configuración, modifíquela según sea necesario y pulse en Save.
Paso 4: Almacenar el certificado de usuario en el explorador
A continuación, importe el certificado de usuario (ficheropfx) en el explorador.
Parte B: Creación del adaptador IDP de certificado X509 
Este adaptador se utilizará para autenticar a los usuarios en función de sus certificados.
1. Conéctese a PingFederate como administrador. Vaya a Authentication > Integration > IdP > Adapters. Pulse en Create New Instance.
2. Introduzca los valores de Instance Name e Instance ID. Defina el tipo en X.509 Certificate IdP Adapter 1.3.1. Pulse en Next.
3. Introduzca el valor de Client Auth Port especificado para pf.secondary.https.port (9032). En client hostname, introduzca el valor de fqdn del sistema PingFederate.
4. Verifique la opción Match Issuer DN in Client X.509 certificate y pulse en Show Advanced Fields.
5. Defina Authentication Context en Policy OID y seleccione la opción Include Subject Alternative Name (SAN). Pulse en Next.
6. En la ficha Extended Contract, utilice el botón Add para introducir userPrincipalName y CN, y pulse en Next.
7. En la ficha Adapter Attributes, defina la opción Pseudonym para el atributo userPrincipalName y pulse en Next.
8. En la ficha Adapter Contract Mapping , se pueden configurar atributos adicionales de un almacén de datos y criterios de emisión. Los criterios de emisión validan la presencia del usuario en LDAP con la información proporcionada del certificado.
* 
Es obligatorio definir un criterio de emisión para el CBA en ThingWorx.
a. Pulse en Configure Adapter Contract.
b. En Adapter Contract Mapping, pulse en ADD Attribute Source.
c. Defina LDAP como Attribute Source Id y Attribute Source Description. En el almacén de datos activo, seleccione el almacén de datos de WindchillDS y pulse en Next.
d. En LDAP Directory Search, proporcione los siguientes parámetros:
i. Base DN = cn=Windchill_11.1,o=ptc
ii. Search Scope = Subtree
iii. Añada los siguientes atributos de usuario: uid, CN y Subject DN
e. Pulse en Next.
f. En LDAP FILTER, defina el siguiente filtro: uid=${CN}. Pulse en Next y, a continuación, en Done.
g. En Adapter Contract Fulfillment, defina el origen userPrincipalName en LDAP con el valor uid. Defina todos los demás orígenes de contrato en Adapter. Pulse en Next.
h. En Issuance Criteria, pulse en Show Advanced Criteria.
i. Añada el siguiente valor para Expression: #this.get("ds.LDAP.uid").hasValue(#this.get("CN").getValue())
ii. Proporcione un valor para Error Result, por ejemplo, "Usuario no encontrado".
iii. Pulse en ADD.
9. Pulse en Next y, a continuación, en Save.
Parte C: Adición de un adaptador de certificados a la conexión de SP 
1. Conéctese a PingFederate como administrador. Vaya a Applications > Integration > SP Connections. Seleccione el nombre de la conexión.
2. Pulse en Authentication Source Mapping > Map New Adapter Instance.
3. En la ficha Adapter Instance, seleccione el nombre del adaptador que se ha creado en la Parte B y pulse en Next.
4. Asigne los distintos atributos a valores de adaptador o valores de texto dinámico.
5. Pulse en Next y, a continuación, en Save.
¿Fue esto útil?