Usar LDAP
LDAP te permite autenticar el Servidor de GitHub Enterprise en tus cuentas existentes y administrar de manera centralizada el acceso a los repositorios. LDAP es un protocolo de aplicación popular para acceder a servicios de información de directorios y mantenerlos, y uno de los protocolos más comunes que se usan para integrar software de terceros con directorios de usuarios de empresas grandes.
Si deseas autenticar a los usuarios sin agregarlos a tu proveedor de identidad, puedes configurar la autenticación incorporada. Para obtener más información, consulta "Permitir autenticación incorporada para los usuarios que no pertenecen a tu proveedor de identidad."
En esta guía:
- Servicios LDAP admitidos
- Consideraciones sobre el nombre de usuario con LDAP
- Autenticación de dos factores
- Configurar LDAP con tu instancia de servidor de GitHub Enterprise
- Atributos de LDAP
- Ver y crear usuarios LDAP
- Actualizar cuentas LDAP
- Revocar acceso a tu instancia de servidor de GitHub Enterprise
Servicios LDAP admitidos
El Servidor de GitHub Enterprise se integra con los siguientes servicios LDAP:
- Active Directory
- FreeIPA
- Oracle Directory Server Enterprise Edition
- OpenLDAP
- Open Directory
- 389-ds
Consideraciones sobre el nombre de usuario con LDAP
Los nombres de usuario del Servidor de GitHub Enterprise únicamente pueden contener caracteres alfanuméricos y rayas (-
). El Servidor de GitHub Enterprise convertirá en raya cualquier caracter no alfanumérico en el nombre de tu cuenta de usuario. Por ejemplo, un nombre de usuario gregory.st.john
se convertirá en gregory-st-john
. Nota que los nombres de usuarios normalizados tampoco pueden comenzar o terminar con una raya. Tampoco pueden contener dos rayas seguidas.
Los nombres de usuarios creados a partir de direcciones de correo electrónico se crean con los caracteres normalizados que preceden al caracter @
.
Si múltiples cuentas se normalizan en el mismo nombre de usuario de Servidor de GitHub Enterprise, solo se crea la primera cuenta de usuario. Los siguientes usuarios con el mismo nombre de usuario no podrán registrarse.
Esta tabla brinda ejemplos de cómo se normalizan los nombres de usuarios en el Servidor de GitHub Enterprise:
Nombre de usuario | Nombre de usuario normalizado | Resultado |
---|---|---|
Ms.Bubbles | ms-bubbles |
El nombre de usuario se crea correctamente. |
!Ms.Bubbles | -ms-bubbles |
No se crea este nombre de usuario debido a que comienza con una raya. |
Ms.Bubbles! | ms-bubbles- |
No se crea este nombre de usuario debido a que termina con una raya. |
Ms!!Bubbles | ms--bubbles |
No se crea este nombre de usuario debido a que contiene dos rayas seguidas. |
Ms!Bubbles | ms-bubbles |
No se crea este nombre de usuario. A pesar de que el nombre de usuario normalizado es válido, ya existía. |
Ms.Bubbles@example.com | ms-bubbles |
No se crea este nombre de usuario. A pesar de que el nombre de usuario normalizado es válido, ya existía. |
Autenticación de dos factores
Cunado se usa LDAP o autenticación incorporada, la autenticación de dos factores es compatible. Los administradores de la organización pueden exigir que los miembros tengan habilitada la autenticación de dos factores.
Configurar LDAP con tu instancia de servidor de GitHub Enterprise
Una vez configurado LDAP, los usuarios podrán iniciar sesión en tu instancia con sus credenciales LDAP. Cuando los usuarios inician sesión por primera vez, sus nombres de perfil, direcciones de correo electrónico y claves SSH se establecen con los atributos de LDAP desde tu directorio.
Cuando configuras el acceso LDAP para los usuarios a través de la Consola de administración, tusde licencias de usuario no se usan hasta la primera vez que un usuario inicia sesión en tu instancia. Sin embargo, si creas una cuenta de forma manual usando los parámetros de administrador del sitio el de licencia de usuariose contabiliza de inmediato.
Advertencia: Antes de configurar LDAP en tu instancia de servidor de GitHub Enterprise, asegúrate de que tu servicio LDAP admita resultados paginados.
-
In the upper-right corner of any page, click .
-
En la barra lateral izquierda, haz clic en Consola de administración.
-
In the left sidebar, click Authentication.
-
En "Authentication" (Autenticación), selecciona LDAP.
-
También puedes seleccionar Permitir autenticación incorporada para invitar a los usuarios a usar la autenticación incorporada si no pertenecen al proveedor de identidad de tu instancia de servidor de GitHub Enterprise.
-
Agrega tus parámetros de configuración.
Atributos de LDAP
Usa estos atributos para terminar de configurar LDAP para tu instancia de servidor de GitHub Enterprise.
Nombre del atributo | Tipo | Descripción |
---|---|---|
Host |
Requerido | El host LDAP, p. ej. ldap.example.com o 10.0.0.30 . Si el nombre del host solo está disponible desde tu red interna, es posible que primero debas configurar el DNS de tu instancia de servidor de GitHub Enterprise para que pueda resolver el nombre del host usando tus servidores de nombres internos. |
Puerto |
Requerido | El puerto que están escuchando los servicios LDAP. Los ejemplos incluyen: 389 y 636 (para LDAPS). |
Cifrado |
Requerido | El método de cifrado usado para garantizar las comunicaciones con el servidor LDAP. Los ejemplos incluyen el normal (sin cifrado), el SSL/LDAPS (cifrado desde el principio) y el StartTLS (se actualiza a comunicación cifrada una vez que se conecta). |
Usuario de búsqueda de dominio |
Opcional | El usuario LDAP que realiza las búsquedas de usuario para autenticar otros usuarios cuando inician sesión. Esto suele ser una cuenta de servicio creada específicamente para integraciones de terceros. Usa un nombre certificado completo, como cn=Administrator,cn=Users,dc=Example,dc=com . Con Active Directory, también puedes usar la sintaxis [DOMAIN]\[USERNAME] (p. ej.,WINDOWS\Administrator ) para el usuario de búsqueda de dominio. |
Contraseña de búsqueda de dominio |
Opcional | La contraseña para el usuario de búsqueda de dominio. |
Grupo de administradores |
Opcional | Los usuarios de este grupo son promovidos a administradores del sitio cuando inician sesión en tu aparato. Si no configuras un Grupo de administradores LDAP, la primera cuenta de usuario LDAP que inicie sesión en tu aparato será promovida automáticamente a administrador del sitio. |
Base de dominio |
Requerido | El Nombre Distintivo (DN) completamente calificado de un subárbol LDAP que quieras buscar para usuarios y grupos. Puedes agregar tantos como quieras; sin embargo, cada grupo debe estar definido en la misma base de dominio que los usuarios que le pertenecen. Si especificas grupos de usuarios con restricciones, solo los usuarios que pertenecen a esos grupo estarán al alcance. Te recomendamos que especifiques el primer nivel de tu árbol de directorios LDAP como tu base de dominio y que uses grupos de usuarios con restricciones para controlar el acceso. |
Grupos de usuarios con restricciones |
Opcional | Si se especifica, solo los usuarios de estos grupos tendrán permiso para iniciar sesión. Solo necesitas especificar los nombres comunes (CN) de los grupos y puedes agregar tantos grupos como quieras. Si no se especifica ningún grupo, todos los usuarios dentro del alcance de la base de dominio especificada podrán iniciar sesión en tu instancia del Servidor de GitHub Enterprise. |
Id. de usuario |
Requerido | El atributo de LDAP que identifica al usuario LDAP que intenta una autenticación. Una vez que se establece una asignación, los usuarios pueden modificar sus nombres de usuario del Servidor de GitHub Enterprise. El campo debería ser sAMAccountName para la mayoría de las instalaciones de Active Directory, pero puede ser uid para otras soluciones LDAP, como OpenLDAP. El valor predeterminado es uid . |
Nombre de perfil |
Opcional | El nombre que aparecerá en la página de perfil del Servidor de GitHub Enterprise del usuario. A menos que la sincronización LDAP esté activada, los usuarios pueden modificar sus nombres de perfil. |
Correos electrónicos |
Opcional | Las direcciones de correo electrónico para la cuenta del Servidor de GitHub Enterprise de un usuario. |
Claves SSH |
Opcional | Las claves SSH públicas vinculadas a la cuenta del Servidor de GitHub Enterprise de un usuario. Las claves deben ser en formato OpenSSH. |
Claves GPG |
Opcional | Las claves GPG vinculadas a la cuenta del Servidor de GitHub Enterprise de un usuario. |
Desactivar la autenticación LDAP para las operaciones de Git |
Opcional | Si está seleccionado, desactiva la posibilidad del usuario de usar contraseñas LDAP para autenticar las operaciones de Git. |
Activar la verificación de certificado LDAP |
Opcional | Si está seleccionado, activa la verificación de certificado LDAP. |
Sincronización |
Opcional | Si está seleccionado, activa la sincronización LDAP. |
Desactivar la autenticación de contraseña para las operaciones de Git
Selecciona Disable username and password authentication for Git operations (Desactivar la autenticación de nombre de usuario y contraseña para las operaciones de Git) en los parámetros de tu LDAP para implementar el uso de los tokens de acceso personal o las claves SSH para el acceso a Git, que pueden ayudarte a prevenir que tu servidor se sobrecargue de solicitudes de autenticación LDAP. Recomendamos esta configuración, ya que un servidor LDAP de respuesta lenta, en especial combinado con una gran cantidad de solicitudes debido al sondeo, suele ser una causa de problemas e interrupciones.
Cuando se selecciona esta opción, si un usuario intenta usar una contraseña para las operaciones de Git a través de la línea de comando, recibirá un mensaje de error que dice: La autenticación de contraseña no está permitida para las operaciones de Git. Debes usar un token de acceso personal.
Activar la verificación de certificado LDAP
Selecciona Enable LDAP certificate verification (Activar verificación de certificado LDAP) en tus parámetros LDAP para validar el certificado del servidor LDAP que usas con TLS.
Cuando se selecciona esta opción, el certificado se valida para garantizar que:
- Si el certificado contiene al menos un nombre alternativo del firmante (SAN), uno de los SAN coincida con el nombre del host de LDAP. De lo contrario, que el nombre común (CN) coincida con el nombre del host de LDAP.
- El certificado no haya vencido.
- El certificado esté firmado por una entidad de certificación (CA) de confianza.
Activar la sincronización LDAP
La sincronización LDAP te permite sincronizar usuarios y miembros del equipo del Servidor de GitHub Enterprise con tus grupos LDAP establecidos. Esto te permite establecer un control de acceso basado en roles para los usuarios desde tu servidor LDAP, en lugar de hacerlo de forma manual dentro del Servidor de GitHub Enterprise. Para obtener más información, consulta "Crear equipos".
To enable LDAP Sync, in your LDAP settings, select Synchronize Emails, Synchronize SSH Keys, or Synchronize GPG Keys .
Una vez que actives la sincronización LDAP, se ejecutará un trabajo de sincronización en el intervalo de tiempo especificado para realizar las siguientes operaciones en cada cuenta de usuario:
- Si has permitido la autenticación integrada para usuarios externos a tu proveedor de identidad, y el usuario está usando la autenticación integrada, pasa al siguiente usuario.
- Si no existe una asignación LDAP para el usuario, intenta asignar el usuario a una entrada LDAP en el directorio. Si el usuario no se puede asignar a una entrada LDAP, suspéndelo y pasa al siguiente usuario.
- Si hay una asignación LDAP y falta la entrada LDAP correspondiente en el directorio, suspende el usuario y pasa al siguiente usuario.
- Si la entrada LDAP correspondiente se marcó como desactivada, y el usuario aún no se suspendió, suspéndelo y pasa al siguiente usuario.
- Si la entrada LDAP correspondiente no se marcó como desactivada, el usuario está suspendido y Reactivate suspended users (Reactivar usuarios suspendidos) está activado en el centro de administración, anula la suspensión del usuario.
- Si la entrada LDAP correspondiente incluye un atributo
name
, actualiza el nombre de perfil del usuario. - Si la entrada LDAP correspondiente está en el grupo de administradores, promueve al usuario a administrador del sitio.
- Si la entrada LDAP correspondiente no está en el grupo de administradores, degrada al usuario a una cuenta normal.
- Si un campo de usuario LDAP está definido para correos electrónicos, sincroniza los parámetros del correo electrónico del usuario con la entrada LDAP. Establece la primera entrada
mail
LDAP como el correo electrónico principal. - Si un campo de usuario LDAP está definido para claves públicas SSH, sincroniza las claves SSH públicas del usuario con la entrada LDAP.
- Si un campo de usuario LDAP está definido para claves GPG, sincroniza las claves GPG del usuario con la entrada LDAP.
Nota: Las entradas LDAP solo pueden estar marcadas como desactivadas si usas Active Directory y el atributo userAccountControl
está presente y marcado con ACCOUNTDISABLE
.
También se ejecutará un trabajo de sincronización en el intervalo de tiempo especificado para realizar las siguientes operaciones en cada equipo que haya sido asignado a un grupo LDAP:
- Si se eliminó el grupo LDAP correspondiente de un equipo, elimina todos los miembros del equipo.
- Si las entradas de miembros LDAP se eliminaron del grupo LDAP, elimina los usuarios correspondientes del equipo. Si como resultado el usuario pierde acceso a algún repositorio, elimina toda bifurcación privada que el usuario tenga de esos repositorios.
- Si las entradas de miembros LDAP se agregaron al grupo LDAP, agrega los usuarios correspondientes al equipo. Si como resultado el usuario recupera el acceso a algún repositorio, restablece toda bifurcación privada de los repositorios que haya sido eliminada debido a que el usuario perdió acceso en los últimos 90 días.
Como parte de la configuración para su optimización, LDAP Sync no transferirá la estructura de tu equipo anidado. Para crear relaciones entre equipos padres e hijos, debes crear nuevamente de manera manual la estructura de equipo anidado y sincronizarla con el grupo LDAP correspondiente. Para obtener más información, consulta "Crear equipos"
Advertencia de seguridad:
Cuando la sincronización LDAP está activada, los administradores del sitio y los propietarios de la organización pueden buscar en el directorio LDAP los grupos a los cuales asignar el equipo.
Esto posibilita divulgar información organizativa confidencial a contratistas u otros usuarios sin privilegios, incluidos los siguientes:
- La existencia de grupos LDAP específicos visibles para el Usuario de búsqueda de dominio.
- Los miembros del grupo LDAP que tienen cuentas de usuario del Servidor de GitHub Enterprise, que se divulga cuando se crea un equipo sincronizado con ese grupo LDAP.
Si no se desea divulgar dicha información, su empresa u organización debe restringir los permisos del Usuario de búsqueda de dominio en la consola de administración. Si no es posible aplicar dicha restricción, comuníquese con el GitHub Enterprise Support](https://enterprise.github.com/support) o GitHub Premium Support.
Clases de objetos del grupo LDAP admitidas
El Servidor de GitHub Enterprise admite estas clases de objetos del grupo LDAP. Los grupos se pueden anidar.
grupo
groupOfNames
groupOfUniqueNames
posixGroup
Ver y crear usuarios LDAP
Puedes ver la lista completa de usuarios LDAP que tienen acceso a tu instancia y aprovisionar nuevos usuarios.
-
Inicia sesión en tu instancia de servidor de GitHub Enterprise en
http(s)://HOSTNAME/login
. -
In the upper-right corner of any page, click .
-
En la barra lateral izquierda, haz clic en LDAP users (Usuarios LDAP).
-
Para buscar un usuario, escribe un nombre de usuario completo o parcial y haz clic en Search (Buscar). Se mostrarán los usuarios existentes en los resultados de búsqueda. Si un usuario no existe, haz clic en Create (Crear) para aprovisionar la nueva cuenta de usuario.
Actualizar cuentas LDAP
A menos que la sincronización LDAP esté activada, las modificaciones de las cuentas LDAP no se sincronizan automáticamente con el Servidor de GitHub Enterprise.
- Para usar un nuevo grupo de administración LDAP, los usuarios deben ser promovidos y degradados de forma manual en el Servidor de GitHub Enterprise para reflejar las modificaciones en LDAP.
- Para agregar o eliminar cuentas LDAP de los grupos de administración LDAP, promueve o degrada las cuentas en el Servidor de GitHub Enterprise.
- Para eliminar las cuentas LDAP, suspende las cuentas del Servidor de GitHub Enterprise.
Sincronizar cuentas LDAP de forma manual
-
Inicia sesión en tu instancia de servidor de GitHub Enterprise en
http(s)://HOSTNAME/login
. -
In the upper-right corner of any page, click .
-
En el campo de búsqueda, escribe el nombre del usuario y luego haz clic en Buscar.
-
En los resultados de búsqueda, haz clic en el nombre del usuario.
-
In the upper-right corner of the page, click Admin.
-
In the left sidebar, click Admin.
-
En "LDAP", haz clic en Sync now (Sincronizar ahora) para actualizar de forma manual la cuenta con los datos de tu servidor LDAP.
También puedes usar la API para desencadenar una sincronización manual.
Revocar acceso a tu instancia de servidor de GitHub Enterprise
Si la sincronización LDAP está activada, al eliminar las credenciales LDAP de un usuario, se suspenderá su cuenta hasta la siguiente ejecución de sincronización.
Si la sincronización LDAP no está activada, debes suspender de forma manual la cuenta del Servidor de GitHub Enterprise después de eliminar las credenciales LDAP. Para obtener más información, consulta "Suspender y anular suspensión de usuarios".