Skip to main content

Otros métodos de autenticación

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

Aunque la API proporciona varios métodos para la autenticación, se recomienda encarecidamente usar OAuth para las aplicaciones de producción. Los otros métodos que se proporcionan están diseñados para utilizarse con scripts o pruebas (por ejemplo, en los casos en los que utilizar OAuth con su máximo rendimiento sería excesivo). Las aplicaciones de terceros que dependen de GitHub para la autenticación no solicitan ni recopilan las credenciales de GitHub. En su lugar, deben usar el flujo web de OAuth.

Autenticación básica

La API admite la autenticación básica tal como se define en RFC2617, con algunas pequeñas diferencias. La principal diferencia es que el RFC requiere que las solicitudes no autenticadas se respondan con respuestas de 401 Unauthorized. En muchos lugares, esto divulgaría la existencia de los datos de los usuarios. Para evitarlo, la API de GitHub responde con un 404 Not Found. Esto puede provocar problemas para las bibliotecas HTTP que asumen que la respuesta será 401 Unauthorized. La solución es crear manualmente el encabezado 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. Entre los tokens de OAuth se incluyen tokens de acceso personal que permiten al usuario 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

Note: GitHub ha interrumpido la autenticación de contraseña en la API desde el 13 de noviembre de 2020 para todas las cuentas de GitHub.com, incluidas aquellas que pertenecen a planes GitHub Free, GitHub Pro, GitHub Team GitHub Enterprise Cloud. Ahora debes autenticarte en la API de GitHub con un token de la API, tal como un token de acceso OAuth, un token de acceso a la instalación de una GitHub App o un token de acceso personal, dependiendo de lo que necesites hacer con el token. Para obtener más información, consulte "Solución de problemas".

Autenticarse con el SSO de SAML

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

Nota: En la mayoría de los casos, puedes usar Authorization: Bearer o Authorization: token para pasar un token. Sin embargo, si vas a pasar un token web JSON (JWT), debes usar Authorization: Bearer.

Si usa la API para acceder a una organización que aplica el inicio de sesión único de SAML para la autenticación, deberá crear un token de acceso personal (PAT) y autorizar el token para esa organización. Visite la dirección URL especificada en X-GitHub-SSO para autorizar el token para la organización.

$ curl -v -H "Authorization: Bearer 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"
}

Al solicitar datos que podrían provenir de varias organizaciones (por ejemplo, solicitar una lista de incidencias creadas por el usuario), el encabezado X-GitHub-SSO indica qué organizaciones requieren que autorice el token de acceso personal:

$ curl -v -H "Authorization: Bearer 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 los identificadores de las organizaciones que requieren la autorización de su token de acceso personal.

Trabajar con la autenticación de dos factores

Cuando tiene habilitada la autenticación en dos fases, la autenticación básica de la mayoría de los puntos de conexión de la API de REST requiere que use un token de acceso personal.

Puede generar un token de acceso personal con la configuración de desarrollador de GitHub. Para obtener más información, consulte "Crear un token de acceso personal para la línea de comandos". A continuación, podría usar estos tokens para autenticarse mediante el token de OAuth con la API de GitHub.