Skip to main content
Publicamos actualizaciones para la documentación con frecuencia y es posible que aún se esté traduciendo esta página. Para obtener la información más reciente, consulta la documentación en inglés.

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.

Usando un personal access token

Se recomienda usar un personal access token para la autenticación en la API de GitHub.

$ curl -u USERNAME:TOKEN http(s)://HOSTNAME/api/v3/user

Este enfoque es útil si tus herramientas solo admiten la autenticación básica, pero quieres aprovechar las características de seguridad de personal access token.

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

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

Por ejemplo, el siguiente comando curl a la API te autenticaría si reemplazas <username> por su tu nombre de usuario de GitHub Enterprise Server. (curl te pedirá escribir 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 tienes 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 REST requiere el uso de un personal access token o un token de OAuth en lugar del nombre de usuario y la contraseña.

Puedes generar un personal access token o con el punto de conexión "[Crear nueva autorización][/rest/reference/oauth-authorizations#create-a-new-authorization]" de la API de autorizaciones de OAuth para generar un nuevo token de OAuth. Para obtener más información, consulta "Creación de un personal access token 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"}'