¿Cómo funciona la autenticación de GitHub?

Completado

En la unidad anterior, descubrió cuáles son las tareas de administración típicas en el nivel de equipo, organización y empresa. En esta unidad, explorará una de las tareas administrativas más comunes que realizan los propietarios de la organización, que configura y controla la autenticación de los usuarios en GitHub.

Opciones de autenticación de GitHub

Hay varias opciones para autenticarse con GitHub:

Nombre de usuario y contraseña

Los administradores pueden permitir a los usuarios seguir usando el método predeterminado de autenticación con nombre de usuario y contraseña, lo que a veces se conoce como esquema de autenticación HTTP "básico".

Nota:

GitHub ya no admite la autenticación de contraseñas para las operaciones de Git o el uso de api. Se recomienda encarecidamente usar una (o varias) de las otras opciones enumeradas en esta unidad.

Tokens de acceso personal

Captura de pantalla de la pantalla de token de acceso personal.

Los tokens de acceso personal (PAT) son una alternativa al uso de contraseñas para la autenticación en GitHub cuando se usa la API de GitHub o la línea de comandos. Los usuarios generan un token a través de la opción de configuración de GitHub y vinculan los permisos de token a un repositorio u organización. Cuando los usuarios interactúan con GitHub mediante la herramienta de línea de comandos de Git, pueden escribir la información del token cuando se les pida su nombre de usuario y contraseña.

Claves SSH

Como alternativa al uso de tokens de acceso personal, los usuarios pueden conectarse y autenticarse en servidores y servicios remotos mediante SSH con la ayuda de claves SSH. Las claves SSH eliminan la necesidad de que los usuarios proporcionen su nombre de usuario y su token de acceso personal con cada interacción.

Al configurar SSH, los usuarios generarán una clave SSH, la agregarán al agente de SSH y, después, la agregarán a su cuenta de GitHub. La adición de la clave SSH al agente de SSH garantiza que la clave SSH tenga un nivel de seguridad adicional mediante el uso de una frase de contraseña. Los usuarios pueden configurar la copia local de Git de modo que proporcione la frase de contraseña automáticamente, o bien pueden proporcionarla de forma manual cada vez que usen la herramienta de línea de comandos de Git para interactuar con GitHub.

Se puede incluso usar las claves SSH con un repositorio que sea propiedad de una organización que use el inicio de sesión único (SSO) de SAML. Si la organización proporciona certificados SSH, los usuarios también pueden usarlos para acceder a los repositorios de la organización sin agregar el certificado a su cuenta de GitHub.

Claves de implementación

Las claves de implementación son otro tipo de clave SSH en GitHub que conceden a un usuario acceso a un único repositorio. GitHub adjunta la parte pública de la clave directamente al repositorio en lugar de a una cuenta de usuario personal, y la parte privada de la clave permanece en el servidor del usuario. Las claves de implementación son de solo lectura de forma predeterminada, pero puede darles acceso de escritura al agregarlas a un repositorio.

Para configurar los valores de bifurcación:

  1. Vaya a configuración del repositorio.
  2. En la barra lateral izquierda, en Seguridad, haga clic en Implementar claves.
  3. Busque la opción Agregar clave de implementación para crear una clave.

Captura de pantalla que muestra la opción Agregar clave de implementación en la opción Implementar claves.

Opciones de seguridad agregadas de GitHub

GitHub proporciona una variedad de opciones de seguridad para ayudar a proteger las cuentas y los recursos de la organización.

Autenticación en dos fases

Captura de pantalla de la pantalla de autenticación en dos fases.

La autenticación en dos fases (2FA), a veces conocida como autenticación multifactor (MFA), agrega una capa adicional de protección a la cuenta de GitHub. Con 2FA, los usuarios inician sesión con su nombre de usuario y contraseña y, a continuación, proporcionan una segunda forma de autenticación.

GitHub admite varias opciones de segundo factor:

  • Aplicaciones authenticator (como Microsoft Authenticator, Google Authenticator o Authy) que generan códigos de una sola vez basados en el tiempo.
  • Claves de seguridad de hardware (como YubiKey o Titan Security Key) que admiten FIDO2/WebAuthn.
  • Claves de acceso para la autenticación sin contraseña y resistente a suplantación de identidad.
  • Códigos basados en SMS, que se admiten pero que se consideran menos seguros que otras opciones y no se recomiendan como método principal.

Cumplimiento de 2FA:

  • En el caso de las organizaciones en GitHub Team y GitHub Enterprise Cloud, los propietarios de la organización pueden requerir miembros, colaboradores externos y administradores de facturación para habilitar 2FA para sus cuentas personales.
  • Usuarios administrados de empresa (EMU) y GitHub Enterprise Server (GHE.com): los administradores solo pueden requerir 2FA para cuentas administradas por la empresa, pero no pueden aplicar 2FA en las cuentas personales de GitHub.com de los usuarios.

La aplicación de 2FA ayuda a proteger a las organizaciones contra el acceso no autorizado y refuerza la seguridad de repositorios y datos confidenciales.

SSO de SAML

Si administra centralmente las identidades de los usuarios con un proveedor de identidades (IdP), puede configurar el inicio de sesión único (SSO) de SAML para proteger los recursos de la organización en GitHub. El inicio de sesión único de SAML permite a los propietarios de la organización y de la empresa controlar y proteger el acceso a repositorios, problemas, solicitudes de incorporación de cambios, etc. Al acceder a los recursos, GitHub redirige a los usuarios para autenticarse con el IdP de la organización.

GitHub admite todos los proveedores de identidades que implementan el estándar SAML 2.0, con compatibilidad oficial con varios proveedores populares, entre los que se incluyen:

  • Servicios de federación de Active Directory (AD FS).
  • Microsoft Entra ID.
  • Okta.
  • OneLogin.
  • PingOne.

LDAP (GitHub Enterprise Server)

LDAP (Protocolo ligero de acceso a directorios) es un protocolo ampliamente utilizado para acceder a la información del directorio de usuario y administrarla. En GitHub Enterprise Server, la integración LDAP le permite autenticar a los usuarios en el directorio de la empresa existente y administrar el acceso al repositorio de forma centralizada.

GitHub Enterprise Server se integra con los principales servicios LDAP, como:

GitHub Enterprise Server se integra con servicios de LDAP populares, como:

  • Active Directory.
  • Oracle Directory Server Enterprise Edition.
  • OpenLDAP.
  • Abra Directorio.