Skip to main content

Configuración de la autenticación y el aprovisionamiento de usuarios con PingFederate

Configura PingFederate como proveedor de identidades para administrar de forma centralizada la autenticación y el aprovisionamiento de tu empresa.

¿Quién puede utilizar esta característica?

Enterprise owners with admin access to the IdP

Note

SCIM para GitHub Enterprise Server se encuentra actualmente en beta y está sujeto a cambios. GitHub recomienda realizar pruebas con una instancia de ensayo primero. Consulta Configurar una instancia de preparación.

Al usar un proveedor de identidades para IAM en GitHub Enterprise Server, el inicio de sesión único de SAML controla y protege el acceso a los recursos empresariales, como los repositorios, las incidencias y las solicitudes de cambios. SCIM crea automáticamente cuentas de usuario y administra el acceso a tu empresa al realizar cambios en el proveedor de identidades. También puedes sincronizar equipos en GitHub con grupos en el proveedor de identidades. Para más información, consulta Acerca de cómo el aprovisionamiento de usuarios con SCIM en GitHub Enterprise Server.

Información general

Esta guía te ayudará a configurar la autenticación SAML y el aprovisionamiento de SCIM para GitHub Enterprise Server en PingFederate.

Antes de comenzar, tenga en cuenta lo siguiente:

  • El uso de PingFederate como IdP para GitHub Enterprise Server se encuentra en beta. Póngase en contacto con el equipo de su cuenta para proporcionar comentarios.
  • Esta guía se basa en la versión 12.1 de PingFederate. Las instrucciones pueden variar para otras versiones.
  • En esta guía se proporcionan los pasos mínimos para definir una configuración de trabajo. Como el directorio de identidades puede estar conectado a PingFederate de forma diferente, deberá elegir los atributos de datos correctos para SAML y SCIM en función de lo que esté disponible en el almacén de datos de respaldo.

Requisitos previos

Se aplican los requisitos previos generales para usar SCIM en GitHub Enterprise Server. Consulta la sección "Requisitos previos" en Configuración del aprovisionamiento de SCIM para administrar usuarios.

Además:

  • Para configurar SCIM, debe haber completado los pasos del 1 al 4 de Configuración del aprovisionamiento de SCIM para administrar usuarios.
    • Necesitará el personal access token (classic) que se creó para que el usuario de configuración autentique las solicitudes de PingFederate.
  • Debe haber instalado "GitHub EMU Connector" en PingFederate. Para descargar e instalar el conector, consulte Instalación del aprovisionador en la documentación de PingIdentity.
  • Para aprovisionar usuarios con SCIM, debes usar un servidor LDAP como almacén de datos de respaldo.
  • Es posible que tengas que configurar el firewall en PingFederate para permitir conexiones salientes al punto de conexión https://HOSTNAME/api/v3/scim/v2 en la instancia de GitHub Enterprise Server.{ % else %}los puntos de conexión SCIM en GitHub:
    • Para GitHub.com: https://api.github.com/scim/v2/enterprises/ENTERPRISE
    • Para GHE.com: https://api.SUBDOMAIN.ghe.com/scim/v2/enterprises/SUBDOMAIN
  • El "modo de aprovisionamiento" de PingFederate debe establecerse en un valor que permita el aprovisionamiento de SCIM. Consulte la sección "Antes de comenzar" en la guía Configuración del aprovisionamiento de salida de PingIdentity.
  • Durante este procedimiento, deberá cargar un certificado X509 en PingFederate. Es posible que quiera crear y almacenar el certificado antes de continuar. También necesitará la contraseña de comprobación para el certificado. Consulta la sección Ejemplo de creación de un certificado X509 más adelante en este artículo.

1. Configuración de SAML

En esta sección, creará un conector SAML en PingFederate, configurará una instancia de adaptador de IdP de LDAP y administrará la salida de SAML desde el adaptador de IdP.

  1. Creación de un adaptador SAML
  2. Configuración de una instancia de adaptador de IdP de LDAP
  3. Administración de la salida de SAML del adaptador de IdP

Antes de iniciar esta sección, asegúrate de haber seguido pasos 1 y 2 en Configuración del aprovisionamiento de SCIM para administrar usuarios.

Creación de un adaptador SAML

  1. Abra la consola administrativa de PingFederate.

  2. Haga clic en Aplicaciones en el encabezado y, a continuación, haga clic en Conexiones de SP en la barra lateral izquierda.

  3. Haga clic en Usar una plantilla para esta conexión y seleccione "GitHub EMU Connector" en la lista desplegable "Plantilla de conexión".

    Note

    Si no ve esta opción, GitHub EMU Connector no está instalado. Si necesita ayuda, comuníquese con su representante de Ping.

  4. Para rellenar algunos campos en la configuración de PingFederate, cargarás un archivo XML que contenga metadatos SAML de tu empresa.

    1. En una nueva pestaña, inicia sesión en GitHub como usuario de configuración integrado. Ve a la página de metadatos SAML en https://HOSTNAME/saml/metadata.
    2. Descargue la página como un archivo XML.
  5. En la página "SP Connection" de PingFederate, carga el archivo del paso anterior como archivo de metadatos Asegúrate de hacerlo a los 5 minutos de descargar el archivo.

  6. Vaya a la pestaña "Tipo de conexión".

  7. Seleccione Perfiles de SSO del navegador y anule la selección de Aprovisionamiento de salida (se habilitará más adelante).

  8. Haga clic en Next.

  9. En la pestaña "Opciones de conexión", asegúrese de que solo esté seleccionada la opción SSO del navegador.

  10. Haga clic en Next.

  11. En la pestaña "Información general", escriba los siguientes detalles.

    • "Partner’s Entity ID": la dirección URL del host de GitHub (https://HOSTNAME.com)
    • "Nombre de la conexión": nombre descriptivo para la conexión de SP en PingFederate
    • "Base URL": la dirección URL del host de GitHub (https://HOSTNAME.com)
    • "Registro de transacciones": estándar
    • Los demás campos pueden quedar en blanco.
  12. Haga clic en Next.

  13. Haga clic en Configurar SSO del navegador.

  14. Haga clic en Configurar creación de aserciones.

  15. En la pestaña "Asignación de origen de autenticación", haga clic en Asignar nueva instancia de adaptador.

  16. En la pestaña "Instancia de adaptador", haga clic en Administrar instancias de adaptador.

  17. Haga clic en Crear nueva instancia.

Configuración de una instancia de adaptador de IdP de LDAP

  1. En la página "Crear instancia de adaptador" de PingFederate, en la pestaña "Tipo", escriba los detalles siguientes.

    • "Nombre de la instancia": nombre para identificar la instancia, como pfghadapter
    • "Id. de la instancia": identificador para la instancia, como pfghadapter
    • "Tipo": adaptador de IDP de formulario HTML
    • "Instancia primaria": ninguna
  2. Haga clic en Next.

  3. En la pestaña "Adaptador de IDP", en la parte inferior de la página, haga clic en Administrar validadores de credenciales de contraseña.

  4. Haga clic en Crear nueva instancia.

  5. En la pestaña "Tipo", escriba los siguientes detalles.

    • "Nombre de la instancia": nombre para identificar la instancia, como pfghdocscv
    • "Id. de la instancia": identificador para la instancia, como pfghdocscv
    • "Tipo": validador de credenciales de contraseña de nombre de usuario de LDAP
    • "Instancia primaria": ninguna
  6. Haga clic en Next.

  7. En la pestaña "Configuración de instancia", haga clic en Administrar almacenes de datos.

  8. Haga clic en Agregar nuevo almacén de datos.

  9. En la pestaña "Tipo de origen de datos", escriba los siguientes detalles.

    • "Nombre de la instancia": cualquier valor único, como pfghdocsds
    • "Tipo": directorio (LDAP)
    • "Valores de máscara en el registro": no seleccionada
  10. Haga clic en Next.

  11. En la pestaña "Configuración de LDAP", configure los detalles del servidor LDAP.

  12. Haz clic en Prueba de conexión. Debería ver "La prueba de conectividad se realizó correctamente".

  13. En la parte inferior de la página, haga clic en Avanzado.

  14. Haga clic en la pestaña "Atributos binarios de LDAP" y agregue guidAttribute y objectGUID como atributos.

  15. Haga clic en Done(Listo). Debe volver a la pestaña "Configuración de LDAP".

  16. Haga clic en Siguiente y después en Guardar.

  17. En la pestaña "Administrar almacenes de datos", haga clic en Listo.

  18. En la pestaña "Configuración de instancia", escriba los detalles siguientes.

    • "Almacén de datos LDAP": nombre del almacén de datos que creó anteriormente
    • "Base de búsqueda": ubicación en el directorio donde desea que comiencen las búsquedas de LDAP
    • "Filtro de búsqueda": filtro que garantiza que el nombre de usuario que el usuario escriba al iniciar sesión coincida con un campo en el servidor LDAP (por ejemplo: sAMAccountName=${username})
    • "Ámbito de búsqueda": subárbol
    • "Coincidencia con distinción entre mayúsculas y minúsculas": seleccionada
  19. Haga clic en Siguiente, Siguiente de nuevo y, a continuación, Guardar.

Administración de la salida de SAML del adaptador de IdP

  1. En la página "Administrar validadores de credenciales de contraseña", haga clic en Listo.

  2. En la pestaña "Adaptador de IDP", escriba los siguientes detalles.

    • "Instancia de validador de credenciales de contraseña": nombre de la instancia de validador que creó anteriormente (por ejemplo pfghdocscv) Haga clic en Actualizar para finalizar la selección.
    • Todos los demás campos se pueden dejar como valores predeterminados o modificarse para que se ajusten a sus requisitos.
  3. Haga clic en Siguiente y, a continuación, en Siguiente de nuevo.

  4. En la pestaña "Atributos de adaptador", escriba los siguientes detalles.

    • "Atributo clave de usuario único": username

    • Junto al atributo username, seleccione "Pseudónimo".

    Note

    Este paso es importante. El atributo adapter se usa para identificar de forma única a un usuario en GitHub durante el aprovisionamiento de SCIM.

  5. Haga clic en Siguiente y, a continuación, en Siguiente de nuevo.

  6. Revise la configuración en la página de resumen y después haga clic en Guardar.

  7. En la pestaña "Adaptadores de IdP", debería ver el adaptador que acaba de crear. Haga clic en Done(Listo).

  8. En la pestaña "Instancia de adaptador", en la lista desplegable "Instancia de adaptador", seleccione el adaptador que acaba de crear.

  9. Haga clic en Next.

  10. En la pestaña "Método de asignación", seleccione Usar solo los valores del contrato de adaptador en la aserción de SAML (otras selecciones pueden funcionar, pero no se han confirmado).

  11. Haga clic en Next.

  12. En la pestaña "Cumplimiento del contrato de atributo", asigne SAML_SUBJECT a "Adapter" como origen y username como valor.

    Note

    Este paso es importante. El valor normalizado de SAML_SUBJECT tendrá que coincidir con los nombres de usuario normalizados de los usuarios aprovisionados por SCIM.

  13. Haga clic en Siguiente, Siguiente de nuevo y, a continuación, Listo.

  14. Debe volver a la pestaña "Asignación de origen de autenticación" y la sección "Nombre de instancia de adaptador" debe contener la instancia de adaptador que acaba de crear.

  15. Haga clic en Next.

  16. En la pestaña "Protocol Settings", haz clic en Configure Protocol Settings.

  17. En "Assertion Consumer Service URL", agrega una fila con los detalles siguientes:

    • "Default": seleccionado
    • "Index": 0
    • "Binding": POST
    • "Endpoint URL": HOSTNAME/saml/consume
  18. Haga clic en Next.

  19. En la pestaña "Allowable SAML Bindings", asegúrate de que solo se haya seleccionado "POST" y "REDIRECT".

  20. Haga clic en Next.

  21. En la página "Signature Policy", asegúrate de que solo se haya seleccionado "SIGN RESPONSE AS REQUIRED".

  22. Haga clic en Next.

  23. En la pestaña "Encryption Policy", asegúrate de que se haya seleccionado "NONE".

  24. Haga clic en Next.

  25. Haga clic en Save(Guardar).

  26. Haga clic en Siguiente y Listo hasta llegar a la pestaña "Credenciales".

  27. En la pestaña "Credenciales", haga clic en Configurar credenciales y, a continuación, haga clic en Administrar certificados.

  28. En la página "Administración de certificados", haz clic en Importar y, a continuación, carga un certificado X509 (para obtener ayuda, consulta la sección Ejemplo de creación de un certificado X509).

  29. En "Contraseña", use la contraseña de comprobación para el certificado.

  30. Haga clic en Siguiente y después en Guardar.

  31. En la pestaña "Administración de certificados", debería ver el certificado que acaba de importar. Haga clic en Done(Listo).

  32. En la pestaña "Configuración de firma digital":

    • Seleccione el certificado que acaba de crear para "Certificado de firma".
    • Puede dejar el certificado secundario en blanco y la casilla "Incluir el certificado en la firma" sin seleccionar.
    • El algoritmo de firma debe ser "RSA SHA256".
  33. Haga clic en Siguiente, Listo y, a continuación, Siguiente.

  34. En la pestaña "Resumen", habilite el botón de alternancia para "Punto de conexión de la aplicación de SSO".

  35. Haga clic en Save(Guardar). Debe volver a la lista de conexiones de SP, donde debería ver la conexión de SP recién creada.

Recopilación de información para la configuración de SAML

Necesitarás algunos detalles de PingFederate para configurar SAML en GitHub.

  1. En la página "Conexiones de SP", en la fila de la nueva conexión, haga clic en Seleccionar acción y, a continuación, Exportar metadatos.
  2. En la pestaña "Firma de metadatos", en la fila de la nueva conexión, seleccione el certificado de firma que creó anteriormente. Para descargar el certificado, haga clic en Siguiente y, a continuación, haga clic en Exportar.
  3. En PingFederate, haga clic en Sistema en el encabezado y, a continuación, en Servidor y en Configuración de protocolo. Compruebe que SAML 2.0 ENTITY ID se haya definido. Anótalos, ya que los necesitarás para el campo "Issuer" en la configuración SAML de GitHub.
  4. Abra el archivo de metadatos que descargó y prepárelo para los pasos siguientes.

Configuración de GitHub

  1. Inicia sesión en GitHub como un usuario con acceso a la consola de administración.

  2. Habilita SAML en la configuración de empresa. Consulta Configurar el inicio de sesión único de SAML para tu empresa.

  3. Escribe los valores siguientes en el archivo de metadatos SAML de la sección anterior.

    • En "URL de inicio de sesión único", use el valor de location del campo <md: SingleSignOnService>. Debe ser una dirección URL que termine en /idp/SSO.saml2.
    • En "Emisor", use el valor de entityId del campo <md: EntityDescriptor> (una dirección URL).
  4. En "Certificado de verificación", cargue el archivo del certificado X509 que creó anteriormente.

  5. Haga clic en Save settings (Guardar configuración).

2. Configuración de SCIM

En esta sección, configurará las opciones de SCIM y la asignación de atributos en PingFederate.

  1. Configuración de las opciones de SCIM
  2. Asignación de campos de LDAP a SCIM
  3. Finalización de la configuración y pruebas

Antes de iniciar esta sección, asegúrate de haber seguido pasos del 1 al 4 en Configuración del aprovisionamiento de SCIM para administrar usuarios.

Configuración de las opciones de SCIM

  1. Vuelva a la página "Conexiones de SP" de PingFederate y seleccione la conexión de SP que creó anteriormente.

  2. Haga clic en la pestaña "Tipo de conexión".

  3. Seleccione Aprovisionamiento saliente.

  4. Asegúrese de que la opción Perfiles de SSO del navegador esté seleccionada.

  5. Haga clic en Siguiente hasta llegar a la pestaña "Aprovisionamiento de salida" y, a continuación, haga clic en Configurar aprovisionamiento.

  6. En la pestaña "Destino", escriba los siguientes detalles.

    • "Base URL": https://HOSTNAME/api/v3/scim/v2
    • "Access Token": el personal access token (classic) creado para el usuario de configuración.
  7. Haga clic en Next.

  8. En la pestaña "Administrar canal", haga clic en Crear y escriba un nombre de canal único, como pfghscim.

  9. Haga clic en Next.

  10. En la pestaña "Origen", elija el almacén de datos que creó anteriormente.

  11. Haga clic en Next.

  12. En la pestaña "Configuración de origen", puede mantener todas las configuraciones predeterminadas. Es probable que otras configuraciones funcionen, pero no se han confirmado.

  13. Haga clic en Next.

  14. En la pestaña "Ubicación de origen", configure de qué parte del servidor LDAP desea que provengan los usuarios aprovisionados. Esto variará en función de la configuración y las necesidades. Después de la configuración, haga clic en Siguiente.

Asignación de campos de LDAP a SCIM

En la pestaña "Asignación de atributos", deberá asignar campos desde el servidor LDAP a campos de SCIM. Consulta en la lista siguiente los campos de SCIM admitidos de GitHub y los valores esperados en cada uno.

  • Username: se normalizará y se usará como nombre de usuario de GitHub para el usuario aprovisionado. Consulta Consideraciones sobre el nombre de usuario para la autenticación externa. Debe coincidir con la normalización del firmante enviado con la aserción de SAML que configuró con la propiedad SAML_SUBJECT en PingFederate.
  • Correo electrónico: campo que contiene la dirección de correo electrónico del usuario.
  • Nombre para mostrar: nombre legible para el usuario.
  • Nombre con formato: nombre completo del usuario, incluido el segundo nombre, los títulos y los sufijos, con formato para mostrar.
  • Nombre: nombre del usuario.
  • Apellidos: apellidos del usuario.
  • Id. externo: este identificador lo genera un proveedor de IdP.
  • Roles: este campo debe contener una cadena que represente el rol previsto del usuario en GitHub. Los roles válidos son enterprise_owner y user.

Cuando haya finalizado la configuración, haga clic en Siguiente.

Finalización de la configuración y pruebas

  1. En la pestaña "Activación y resumen", en "Estado del canal", seleccione Activo.
  2. En la pestaña "Administrar canales", haga clic en Listo.
  3. En la pestaña "Aprovisionamiento de salida", haga clic en Guardar. SCIM se ha configurado y habilitado.
  4. Espera unos minutos a que se ejecute el aprovisionamiento y, a continuación, abre una nueva ventana privada del explorador y ve a GitHub.
  5. Haga clic en Iniciar sesión con SAML. El sistema debería redirigirle a la página de inicio de sesión de PingFederate.
  6. Deberías poder iniciar sesión con las credenciales de un usuario en el servidor LDAP que se ha aprovisionado para GitHub.

El aprovisionamiento de PingFederate controla usuarios y grupos de forma independiente. Los usuarios deben asignarse directamente para aprovisionarse. No se aprovisionarán los usuarios que se encuentren en un grupo asignado, pero que no estén asignados directamente.

Cuando haya terminado de configurar SCIM, puede deshabilitar algunas de las opciones de SAML que habilitó en el proceso de configuración. Consulta Configuración del aprovisionamiento de SCIM para administrar usuarios.

Ejemplo de creación de un certificado X509

Hay varias maneras de crear un certificado X509. Este es un ejemplo que puede ajustarse a sus requisitos.

  1. En una ventana de terminal, compruebe que OpenSSL se haya instalado mediante la ejecución de openssl version. Si todavía no se ha instalado, instálelo.

  2. Genere la clave privada con el comando siguiente.

    Shell
    openssl req -nodes -sha256 -newkey rsa:2048 -keyout MyPrivateKey.key -out MyCertificateRequest.csr
    

    Escriba la información necesaria y anote la contraseña de comprobación que cree.

  3. Ejecute el comando siguiente para asegurarse de que la clave se ha creado. Un archivo denominado MyPrivateKey.key debe aparecer en la salida del comando.

    Shell
    ls | grep MyPrivateKey.key
    
  4. Genere el certificado mediante el siguiente comando.

    Shell
    openssl x509 -req -days 365 -sha256 -in MyCertificateRequest.csr -signkey MyPrivateKey.key -out pfgh256.crt
    
  5. Ejecute el siguiente comando para asegurarse de que el certificado se ha creado. Un archivo denominado pfgh256.crt debe aparecer en la salida del comando.

    Shell
    ls | grep pfgh256.crt
    
  6. Exporte un archivo PKCS #12 mediante el siguiente comando. Este es el archivo que debe cargar en PingFederate.

    Shell
    openssl pkcs12 -export -in pfgh256.crt -inkey MyPrivateKey.key -out pfgh256.p12
    
  7. Ejecute el siguiente comando para asegurarse de que el archivo se ha exportado. Un archivo denominado pfgh256.p12 debe aparecer en la salida del comando.

    Shell
    ls | grep pfgh256.p12