Otros métodos de autenticación

Puedes utilizar la autenticación básica para hacer pruebas en un ambiente diferente al productivo.

Cuando la API proporciona varios métodos de autenticación, te recomendamos fuertemente utilizar OAuth para las aplicaciones productivas. Los otros métodos que se proporcionan tienen la intención de que se utilicen para scripts o para pruebas (por ejemplo, en los casos en donde utilizar todo el OAuth sería exagerado). Las aplicaciones de terceros que dependen de GitHub para la autenticación no deben pedir o recolectar credenciales de GitHub. En vez de esto, deben utilizar el flujo web de OAuth.

Autenticación Básica

La API es compatible con la autenticación básica de acuerdo a lo que se define en el RFC2617 con algunas diferencias menores. La diferencia principal es que el RFC requiere de solicitudes sin autenticar para que se le den respuestas 401 Unauthorized. En muchos lugares, esto divulgaría la existencia de los datos de los usuarios. En cambio, la API de GitHub responde con un 404 Not Found. Esto puede causar problemas para las bibliotecas de HTTP que asumen una respuesta de 401 Unauthorized. La solución es construir manualmente el encabezado de Authorization.

A través de OAuth y los tokens de acceso personal

Te recomendamos utilizar tokens de OAuth para autenticarte en la API de GitHub. Los tokens de OAuth incluyen a los tokens de acceso personal y habilitan al usuario para revocar el acceso en cualquier momento.

$ curl -u username:token https://api.github.com/user

Este acercamiento es útil si tus herramientas solo son compatibles con la Autenticación Básica pero quieres sacar ventaja de las características de seguridad de los tokens de acceso de OAuth.

A través de nombre de usuario y contraseña

Nota: GitHub descontinuó la autenticación por contraseña hacia la API desde el 13 de noviembre de 2020 para todas las cuentas de GitHub.com, incluyendo aquellas en planes GitHub Free, GitHub Pro. GitHub Team, o Nube de GitHub Enterprise. Debes autenticarte en la API de GitHub con un token de API, tal como un token de acceso de OAuth, un token de acceso de instalación para GitHub Apps, o un token de acceso personal, dependiendo de lo que necesites hacer con el token. Para obtener más información, consulta la sección "Solución de problemas".

Autenticarse con el SSO de SAML

Nota: Las integraciones y las aplicaciones de OAuth que generan tokens en nombre de otros se autorizan automáticamente.

Si estás usando la API para acceder a una organización que requiere el SSO de SAML para la autenticación, necesitarás crear un token de acceso personal (PAT) y autorizarlo para esa organización. Visita la URL especificada en X-GitHub-SSO para autorizar el token para la organización.

$ curl -v -H "Authorization: token TOKEN" https://api.github.com/repos/octodocs-test/test

> X-GitHub-SSO: required; url=https://github.com/orgs/octodocs-test/sso?authorization_request=AZSCKtL4U8yX1H3sCQIVnVgmjmon5fWxks5YrqhJgah0b2tlbl9pZM4EuMz4
{
  "message": "Resource protected by organization SAML enforcement. You must grant your personal token access to this organization.",
  "documentation_url": "https://docs.github.com"
}

Cuando solicites datos que pudieran venir de organizaciones múltiples (por ejemplo, solicitar la lista de informes de problemas que creó el usuario), el encabezado X-GitHub-SSO indica qué organizaciones te solicitarán autorizar tu token de acceso personal:

$ curl -v -H "Authorization: token TOKEN" https://api.github.com/user/issues

> X-GitHub-SSO: partial-results; organizations=21955855,20582480

El valor organizations es una lista separada por comas de las ID de organización para aquellas que requieren autorización de tu token de acceso personal.

Trabajar con la autenticación de dos factores

Cuando tienes la autenticación bifactorial habilitada, la Autenticación Básica para la mayoría de las terminales en la API de REST requiere que utilices un token de acceso personal.

Puedes generar un token de acceso personal utilizando la configuración de desarrollador de GitHub. Para obtener más información, consulta la sección"Crear un token de acceso personal para la línea de comandos". Entonces, utilizarías estos tokens para autenticarte utilizando un token de OAuth con la API de GitHub.

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.