Skip to main content

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

Puede usar PingFederate como proveedor de identidades (IdP) para administrar centralmente la autenticación y el aprovisionamiento de usuarios para tu instancia de GitHub Enterprise Server.

¿Quién puede utilizar esta característica?

Site administrators with admin access to the IdP

Note

SCIM para GitHub Enterprise Server se encuentra actualmente en versión beta pública y está sujeta a cambios. GitHub recomienda realizar pruebas con una instancia de ensayo primero. Consulte "Configurar una instancia de preparación".

Si usas un IdP 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 incorporación de cambios. SCIM crea cuentas de usuario automáticamente y administra el acceso a tu instancia de GitHub Enterprise Server cuando haces cambios en el IdP. También puedes sincronizar equipos en GitHub Enterprise Server con grupos en el IdP. Para obtener más información, consulte "Acerca de cómo el aprovisionamiento de usuarios con SCIM en GitHub Enterprise Server".

Información general

Esta guía le 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 versión 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 supone que usa un servidor LDAP como almacén de datos de respaldo. Los almacenes de datos de JDBC deberían funcionar, pero las instrucciones pueden variar ligeramente.
  • 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. Consulte 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 conector en la documentación de PingIdentity.
    • Es posible que tenga que configurar el servidor de firewall en PingFederate para permitir conexiones salientes al punto de conexión de https://HOSTNAME/api/v3/scim/v2 en la instancia de GitHub Enterprise Server.
  • 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. Consulte 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úrese de que ha seguido los pasos 1 y 2 de "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. En una nueva pestaña, inicie sesión en la instancia de GitHub Enterprise Server como usuario de configuración integrado y vaya a https://HOSTNAME/saml/metadata. Descargue la página como un archivo XML.

  5. En la página "Conexión de SP" de PingFederate, cargue el archivo del paso anterior como archivo de metadatos. Asegúrese de hacerlo en los 5 minutos posteriores a la descarga del 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.

    • "Id. de la entidad del asociado": la dirección URL del host de GitHub Enterprise Server (https://HOSTNAME.com)
    • "Nombre de la conexión": nombre descriptivo para la conexión de SP en PingFederate
    • "URL base": la dirección URL del host de GitHub Enterprise Server (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

Note

Esta sección se aplica si usa un servidor LDAP. Si no usa LDAP, deberá conectarse al adaptador con la configuración adecuada para sus requisitos.

  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. Haga clic en Probar 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 la instancia 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 Siguiente y Listo hasta llegar a la pestaña "Credenciales".

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

  17. En la página "Administración de certificados", haga clic en Importar y, a continuación, cargue un certificado X509 (para obtener ayuda, consulte la sección "Ejemplo de creación de un certificado X509").

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

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

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

  21. 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".
  22. Haga clic en Siguiente, Listo y, a continuación, Siguiente.

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

  24. 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á 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. Tome nota de esto, ya que lo necesitará para el campo "Emisor" en la configuración de SAML de GitHub.
  4. Abra el archivo de metadatos que descargó y prepárelo para los pasos siguientes.

Configuración de GitHub Enterprise Server

  1. Inicie sesión en tu instancia de GitHub Enterprise Server como usuario con acceso a la Consola de administración.

  2. Vaya a la sección "Autenticación" de la Consola de administración y, a continuación, habilite SAML. Consulte "Configurar el inicio de sesión único de SAML para tu empresa".

  3. Introduzca los siguientes valores del archivo de metadatos que descargó en 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úrese de que ha seguido los pasos del 1 al 4 de "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.

    • "URL base": https://HOSTNAME/api/v3/scim/v2/
    • "Token de acceso": el personal access token (classic) creado para el usuario de configuración integrado
  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. Consulte la lista siguiente para los campos de SCIM admitidos de GitHub y los valores esperados en cada uno.

  • Nombre de usuario: se normalizará y se usará como nombre de usuario de GitHub para el usuario aprovisionado. Consulte "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 valores 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. Espere unos minutos para que se ejecute el aprovisionamiento y, a continuación, abra una nueva ventana privada del explorador y vaya a la instancia en https://HOSTNAME/login.
  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ía poder iniciar sesión con las credenciales de un usuario en el servidor LDAP que se ha aprovisionado en GitHub Enterprise Server.

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. Consulte "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