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 Enterprise Server para la autenticación no solicitan ni recopilan las credenciales de GitHub Enterprise Server. 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 Enterprise Server 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 http(s)://[hostname]/api/v3/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 usar la autenticación básica con la API de GitHub Enterprise Server, solo tiene que enviar el nombre de usuario y la contraseña que se asocian con la cuenta.

Por ejemplo, si accede a la API a través de cURL, el siguiente comando le permitirá autenticarse si reemplaza <username> por su nombre de usuario de GitHub Enterprise Server. (cURL te pedirá ingresar la contraseña.)

$ curl -u username http(s)://[hostname]/api/v3/user

Si tiene habilitada la autenticación en dos fases, asegúrese de que entiende bien cómo se trabaja con la autenticación en dos fases.

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 o token de OAuth en lugar del nombre de usuario y la contraseña.

Puede generar un token de acceso personal con el punto de conexión "[Crear autorización][/rest/reference/oauth-authorizations#create-a-new-authorization]" de la API de autorizciones de OAuth para generar un nuevo token de OAuth. 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 Enterprise Server. La única vez que necesita autenticarse con el nombre de usuario y la contraseña es cuando se crea el token de OAuth o se usa 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 intenta autenticarse con la API de autorizaciones de OAuth, el servidor le responde con un 401 Unauthorized y con uno de estos encabezados para informarle de que necesita un código de autenticación en dos fases:

X-GitHub-OTP: required; SMS o 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, vea "Configuración de autenticación en dos fases". 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"}'