Acerca de la autenticación LDAP para GitHub Enterprise Server
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 para integrar software de terceros con directorios de usuarios de empresas grandes. Para obtener más información, consulta "Protocolo ligero de acceso a directorios" en Wikipedia.
Si usas un directorio LDAP para la autenticación centralizada, puedes configurar la autenticación LDAP para las personas que usan tu instancia de GitHub Enterprise Server.
Nota: Puedes usar SAML o LDAP, pero no ambos.
Si quieres permitir la autenticación de ciertos usuarios que no tengan una cuenta en el proveedor de autenticación externo, puedes permitir la autenticación de reserva en las cuentas locales en tu instancia de GitHub Enterprise Server. Para obtener más información, vea «Permitir la autenticación integrada de los usuarios ajenos al proveedor».
Servicios LDAP admitidos
El GitHub Enterprise Server 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
GitHub Enterprise Server normaliza un valor de tu proveedor de autenticación externo para determinar el nombre de usuario de cada nueva cuenta personal en tu instancia de GitHub Enterprise Server. Para más información, consulta "Consideraciones sobre el nombre de usuario para la autenticación externa".
Configuración de LDAP con tu instancia de GitHub Enterprise Server
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 de LDAP para los usuarios a través de Consola de administración, tus licencias de usuario no se utilizarán sino hasta que los usuarios ingresen en tu instancia por primera vez. Sin embargo, si creas una cuenta manualmente utilizando la configuración de administrador para el sitio, esta licencia de usuario se tomará en cuenta.
Advertencia: Antes de configurar LDAP en tu instancia de GitHub Enterprise Server, asegúrate de que el servicio LDAP admita resultados paginados.
- Desde una cuenta administrativa de GitHub Enterprise Server, en la esquina superior derecha de cualquier página, haga clic en .
- Si todavía no está en la página "Administrador del sitio", en la esquina superior izquierda, haga clic en Administrador del sitio.
- En la barra lateral " Administrador del sitio", haz clic en Consola de administración .
- En la barra lateral "Configuración", haga clic en Autenticación.
- En Authentication, seleccione LDAP.
- Opcionalmente, para permitir que los usuarios sin una cuenta en el sistema de autenticación externa inicien sesión con la autenticación integrada, selecciona Permitir autenticación integrada. Para obtener más información, vea «Permitir la autenticación integrada de los usuarios ajenos al proveedor».
- Agrega tus parámetros de configuración.
Atributos de LDAP
Usa estos atributos para terminar de configurar LDAP para tu instancia de GitHub Enterprise Server.
Nombre del atributo | Obligatorio | Descripción |
---|---|---|
Host | El host de LDAP, por ejemplo ldap.example.com o 10.0.0.30 . Si el nombre del host solo está disponible desde la red interna, es posible que primero debas configurar el DNS de tu instancia de GitHub Enterprise Server | |
para que pueda resolver el nombre del host mediante el uso de los servidores de nombres internos. | ||
Port | El puerto que están escuchando los servicios LDAP. Los ejemplos incluyen: 389 y 636 (para LDAPS). | |
Encryption | 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). | |
Domain search user | El usuario LDAP que busca a otros usuarios que iniciaron sesión, para permitir la autenticación. Esto suele ser una cuenta de servicio creada específicamente para integraciones de terceros. Utilice un nombre completo como cn=Administrator,cn=Users,dc=Example,dc=com . Con Active Directory, también puede usar la sintaxis [DOMAIN]\[USERNAME] (por ejemplo, WINDOWS\Administrator ) para el usuario de búsqueda de dominio con Active Directory. | |
Domain search password | La contraseña para el usuario de búsqueda de dominio. | |
Administrators group | 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. | |
Domain base | El Distinguished Name (DN) completo de un subárbol de LDAP en el que desea buscar usuarios y grupos. 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. Puedes configurar varias bases de dominio. Sin embargo, GitHub Enterprise Server busca usuarios y pertenencia a grupos en cada base de dominio configurada secuencialmente, por lo que configurar varias bases de dominio puede aumentar el número de consultas LDAP que se realizan. Para garantizar el rendimiento y la estabilidad de la instancia, se recomienda no configurar más de tres bases de dominio. | |
Restricted user groups | Si se especifica, solo los usuarios de estos grupos tendrán permiso para iniciar sesión. Solo tienes que especificar los nombres comunes (CN) de los grupos. 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 su instancia de GitHub Enterprise Server. Puedes configurar varios grupos de usuarios restringidos. Sin embargo, cada grupo aumenta el número de consultas LDAP de pertenencia a grupos que GitHub Enterprise Server realiza para cada usuario. Para evitar tiempos de espera de autenticación y problemas de rendimiento de sincronización, se recomienda no configurar más de tres grupos. | |
User ID | 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 GitHub Enterprise Server. Este campo debe ser sAMAccountName para la mayoría de las instalaciones de Active Directory, pero puede ser uid para otras soluciones de LDAP, como OpenLDAP. El valor predeterminado es uid . | |
Profile name | El nombre que aparecerá en la página de perfil del GitHub Enterprise Server del usuario. A menos que la sincronización LDAP esté activada, los usuarios pueden modificar sus nombres de perfil. | |
Emails | Las direcciones de correo electrónico para la cuenta del GitHub Enterprise Server de un usuario. | |
SSH keys | Las claves SSH públicas vinculadas a la cuenta del GitHub Enterprise Server de un usuario. Las claves deben ser en formato OpenSSH. | |
GPG keys | Las claves GPG vinculadas a la cuenta del GitHub Enterprise Server de un usuario. | |
Disable LDAP authentication for Git operations | Si está seleccionada, desactiva la capacidad de los usuarios de usar contraseñas LDAP para autenticar las operaciones de Git. | |
Enable LDAP certificate verification | Si está seleccionada, activa la comprobación del certificado LDAP. | |
Synchronization | Si está seleccionada, activa la sincronización de LDAP. |
Desactivar la autenticación de contraseña para las operaciones de Git
Para implementar el uso de personal access tokens o claves de SSH para el acceso a Git, que pueden ayudarte a impedir que el servidor se sobrecargue de solicitudes de autenticación LDAP, puede deshabilitar autenticación de contraseñas para operaciones de Git.
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.
Para deshabilitar la autenticación de contraseña para las operaciones de Git, seleccione Deshabilitar la autenticación de nombre de usuario y contraseña para las operaciones de Git en la configuración de LDAP.
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 comandos, recibirá un mensaje de error que indica: Password authentication is not allowed for Git operations. You must use a personal access token.
Activar la verificación de certificado LDAP
Para validar el certificado de servidor LDAP que use con TLS, habilite la comprobación del certificado LDAP.
Para habilitar la comprobación del certificado LDAP, seleccione Habilitar comprobación de certificados LDAP en la configuración de LDAP.
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 ha expirado.
- El certificado esté firmado por una entidad de certificación (CA) de confianza.
Activar la sincronización LDAP
Puede establecer el control de acceso basado en rol para los usuarios desde el servidor LDAP mediante la sincronización de GitHub Enterprise Server usuarios y pertenencia a equipos en los grupos LDAP establecidos. Para obtener más información, vea «Crear un equipo».
La sincronización de LDAP no crea cuentas de usuario en tu instancia de GitHub Enterprise Server. Para obtener más información, consulta "Visualización y creación de usuarios LDAP".
Nota: El uso de la sincronización LDAP con grupos que superan los 1499 miembros puede provocar errores de sincronización de pertenencia a equipos.
Si usas Active Directory concretamente, las búsquedas de usuario y la sincronización de equipos pueden producir errores cuando los grupos de LDAP configurados para los equipos o en Consola de administración superan los 1500 miembros, debido al límite de MaxValRange
en Active Directory. Como solución alternativa, puedes usar grupos de Active Directory que contengan menos de 1500 miembros, o puedes trabajar con el administrador de Active Directory para aumentar el valor MaxValRange
de los controladores de dominio. Para obtener más información, consulta Ver y establecer la directiva LDAP en Active Directory mediante Ntdsutil.exe en Microsoft Learn.
Si necesitas ayuda para determinar si modificar MaxValRange
es el enfoque adecuado para tu entorno de Active Directory, ponte en contacto con el soporte técnico de Microsoft.
Para habilitar la sincronización LDAP, en la configuración de LDAP, seleccione Sincronización.
Para elegir un intervalo de sincronización para todos los usuarios y todos los equipos, haga clic en los menús desplegables. A continuación, seleccione cada hora, cada 4 horas o cada 24 horas.
Para sincronizar automáticamente determinados atributos de LDAP, en "Sincronizar correos electrónicos de usuario, claves SSH y GPG", haga clic en Sincronizar correos electrónicos, Sincronizar claves SSH o Sincronizar claves GPG.
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 deshabilitada, el usuario queda suspendido y se activa Reactivate suspended users en el Centro de administración para anular la suspensión del usuario.
- Si uno o más grupos de usuarios restringidos se configuran en la instancia y la entrada de LDAP correspondiente no está en uno de estos grupos, suspende al usuario.
- Si se configuran uno o más grupos de usuarios restringidos en la instancia, la entrada de LDAP correspondiente se encuentra en alguno de estos grupos y se habilita Reactivate suspended users en el Centro de administración para anular la suspensión del usuario.
- Si la entrada de LDAP correspondiente incluye un atributo
name
, se 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, a menos que la cuenta esté suspendida. Los administradores suspendidos no se degradarán y seguirán apareciendo en las páginas "Administradores del sitio" y "Propietarios de la empresa".
- 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. Establezca la primera entrada de LDAP
mail
como 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 de LDAP solo se pueden marcar como deshabilitadas si usa Active Directory y el atributo userAccountControl
está presente y marcado con ACCOUNTDISABLE
. Algunas variaciones de Active Directory, como AD LDS y ADAM, no admiten el atributo userAccountControl
.
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 el usuario ya no es miembro de ningún equipo de la organización y tampoco es propietario de la organización, retíralo de esta. Si como resultado el usuario pierde acceso a algún repositorio, elimina toda bifurcación privada que el usuario tenga de esos repositorios.
Nota: La sincronización de LDAP no quitará a un usuario de una organización si este es propietario de esa organización. Otro propietario de la organización deberá quitarlo manualmente.
-
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 su configuración de optimización, LDAP Sync no transferirá la estructura de equipo anidada. Para crear relaciones entre equipos padre e hijo, deberás recrear manualmente la estructura de equipo anidada y sincronizarla con el grupo de LDAP correspondiente. Para más información, consulta "Crear un equipo"
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 de LDAP específicos visibles para el usuario de búsqueda de dominio.
- Los miembros del grupo LDAP que tienen cuentas de usuario del GitHub Enterprise Server, 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 configurado en la Consola de administración. Si no es posible aplicar dicha restricción, ponte en contacto con nosotros en Soporte técnico para GitHub Enterprise.
Clases de objetos del grupo LDAP admitidas
El GitHub Enterprise Server admite estas clases de objetos del grupo LDAP. Los grupos se pueden anidar.
group
groupOfNames
groupOfUniqueNames
posixGroup
Ver y crear usuarios LDAP
Cuando se usa LDAP, la instancia crea una cuenta de usuario la primera vez que alguien inicia sesión correctamente con credenciales LDAP. Como alternativa, puedes aprovisionar manualmente una cuenta de usuario.
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 GitHub Enterprise Server en
http(s)://HOSTNAME/login
. - Desde una cuenta administrativa de GitHub Enterprise Server, en la esquina superior derecha de cualquier página, haga clic en .
- Si todavía no está en la página "Administrador del sitio", en la esquina superior izquierda, haga clic en Administrador del sitio.
- En la barra lateral de la izquierda, haga clic en LDAP users.
- Para buscar un usuario, escriba parte de un nombre de usuario o el nombre completo y haga clic en Search. Se mostrarán los usuarios existentes en los resultados de búsqueda. Si un usuario no existe, haga clic en Create para aprovisionar la nueva cuenta de usuario.
Actualizar cuentas LDAP
A menos que se habilite la sincronización de LDAP, los cambios en las cuentas de LDAP no se sincronizan automáticamente con GitHub Enterprise Server.
- Para usar un nuevo grupo de administración LDAP, los usuarios deben ser promovidos y degradados de forma manual en el GitHub Enterprise Server para reflejar las modificaciones en LDAP.
- Para agregar o quitar cuentas de LDAP en grupos de administradores de LDAP, aumente o disminuya el nivel de las cuentas en GitHub Enterprise Server.
- Para quitar cuentas de LDAP, suspenda las cuentas de GitHub Enterprise Server.
Sincronizar cuentas LDAP de forma manual
- Inicia sesión en tu instancia de GitHub Enterprise Server en
http(s)://HOSTNAME/login
. - Desde una cuenta administrativa de GitHub Enterprise Server, en la esquina superior derecha de cualquier página, haga clic en .
- Si todavía no está en la página "Administrador del sitio", en la esquina superior izquierda, haga clic en Administrador del sitio.
- En "Buscar usuarios, organizaciones, equipos, repositorios, gists y aplicaciones", escribe el nombre del usuario en el campo de texto.
- A la derecha del campo de texto, haz clic en Buscar.
- Si no se encuentra una coincidencia exacta con el nombre de la cuenta, en "Resultados de la búsqueda: cuentas", en la sección "Coincidencias aproximadas", haz clic en el nombre del usuario que quieras administrar.
- Revisa los detalles del usuario en la página de administración del sitio para confirmar que has identificado al usuario correcto.
- En la esquina superior derecha de la página, haz clic en Administrador.
- En "LDAP", haga clic en Sync now para actualizar manualmente la cuenta con datos del servidor de LDAP.
También puede usar la API para desencadenar una sincronización manual.
Revocación del acceso a tu instancia de GitHub Enterprise Server
Si la sincronización de LDAP está habilitada, si se eliminan las credenciales de LDAP de un usuario, se suspenderá su cuenta después de la siguiente ejecución de sincronización.
Si la sincronización de LDAP no está habilitada, debe suspender de forma manual la cuenta del GitHub Enterprise Server después de eliminar las credenciales de LDAP. Para obtener más información, consulta "Suspender y anular suspensión de usuarios".
Acerca del registro de LDAP
Los eventos de registro para LDAP aparecen en archivos de registro en tu instancia de GitHub Enterprise Server. Encontrará eventos relacionados con las operaciones LDAP en auth.log
, ldap-sync.log
y ldap.log
. Para obtener más información, vea «Acerca de los registros del sistema».
Límites para LDAP en GitHub Enterprise Server
El valor de tiempo de espera de autenticación LDAP de GitHub Enterprise Server es de 10 segundos. Esto significa que todas las consultas LDAP necesarias para la autenticación de usuarios y las consultas de pertenencia a grupos (cuando se configuran administradores y grupos de usuarios restringidos en la consola de administración) deben completarse correctamente en un plazo de 10 segundos para un usuario LDAP que inicie sesión en GitHub Enterprise Server. GitHub Enterprise Server no admite actualmente la extensión de este tiempo de espera de autenticación LDAP de 10 segundos, ya que esto puede tener un impacto negativo en otros servicios del dispositivo y provocar interrupciones de rendimiento deficientes o inesperadas. Se recomienda limitar la latencia de red entre GitHub Enterprise Server y servidores LDAP para ayudar a evitar tiempos de espera de autenticación.