Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

Otros métodos de autenticación

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

En este artículo

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 piden ni recolectan las 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

Para utilizar la autenticación básica con la API de GitHub, simplemente envía el nombre de usuario y contraseña asociados con la cuenta.

Por ejemplo, si estás accediendo a la API a través de cURL, el siguiente comando te autenticaría si lo reemplazas al <username> con tu nombre de usuario de GitHub. (cURL te pedirá ingresar la contraseña.)

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

Si habilitaste la autenticación de dos factores, asegúrate de que entiendes como trabajar con ella.

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 habilitas la autenticación de dos factores, La Autenticación Básica para la _mayoría_de las terminales en la API de REST necesita que utilices un token de acceso personal o un token de OAuth en vez de tu nombre de usuario o contraseña.

Puedes generar un token de acceso personal nuevo con los ajustes de desarrollador de GitHub o utilizar la terminal "Crear una autorización nueva" en la API de autorizaciones de OAuth para generar un nuevo token de OAuth. 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. La única vez que necesitas autenticarte con tu usuario y contraseña es cuando creas tu token de OAuth o cuando utilizas la API de autorizaciones de OAuth.

Utilizar la API de Autorizaciones de OAuth con autenticación de dos factores

Cuando haces llamadas a la API de Autorizaciones de OAuth, la Autenticación Básica requiere que utilces una contraseña de única vez (OTP) así como tu nombre de usuario y contraseña en vez de utilizar tokens. Cuando intentas autenticarte con la API de Autorizaciones de OAuth, el servidor te responderá con un 401 Unauthorized y con uno de estos encabezados para decirte que necesitas un código de autenticación de dos factores:

X-GitHub-OTP: required; SMS or X-GitHub-OTP: required; app.

Este encabezado te dice cómo tu cuenta recibe sus códigos de autenticación de dos factores. Dependiendo de cómo configures tu cuenta, podrías recibir tus códigos de OTP por SMS o utilizarías una aplicación tal como Google Autenticator o como 1Password. Para obtener más información, consulta "Configurar autenticación de dos factores". Passa la OTP en el encabezado:

$ curl --request POST \
  --url https://api.github.com/authorizations \
  --header 'authorization: Basic PASSWORD' \
  --header 'content-type: application/json' \
  --header 'x-github-otp: OTP' \
  --data '{"scopes": ["public_repo"], "note": "test"}'

¿Te ayudó este documento?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

O, learn how to contribute.