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.

Esta versión de GitHub Enterprise se discontinuará el Esta versión de GitHub Enterprise se discontinuó el 2020-11-12. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener un mejor desempeño, más seguridad y nuevas características, actualiza a la última versión de GitHub Enterprise. Para obtener ayuda con la actualización, contacta al soporte de GitHub Enterprise.

Identificar y autorizar usuarios para las GitHub Apps

Tu GitHub App puede realizar acciones en nombre de un usuario, como crear un informe de problemas, crear un despliegue, y utilizar otras terminales compatibles.

En este artículo

¿Te ayudó este documento?

Cuando tu GitHub App actúe en nombre de un usuario, ésta realiza solicitudes de usuario a servidor. Estas solicitudes deben autorizarse con un token de acceso de usuario. Las solicitudes de usuario a servidor incluyen el solicitar datos para un usuario, como el determinar qué repositorios mostrar a un usuario en particular. Estas solicitudes también incluyen las acciones que activa un usuario, como ejecutar una compilación.

Identificar usuarios en tu sitio

Para autorizar a los usuarios para las apps estándar que se ejecutan en el buscador, utiliza el flujo de aplicaciones web.

Flujo de aplicaciones Web

Al utilizar el flujo de aplicaciones web, el proceso para identificar a los usuarios en tu sitio es:

  1. Se redirecciona a los usuarios para solicitar su identidad de GitHub
  2. GitHub redirecciona a los usuarios de vuelta a tu sitio
  3. Tu GitHub App accede a la API con el token de acceso del usuario

Si seleccionas Solicitar la autorización del usuario (OAuth) durante la instalación cuando crees o modifiques tu app, el paso 1 se completará durante la instalación de la misma. Para obtener más información, consulta la sección "Autorizar usuarios durante la instalación".

1. Solicita la identidad de un usuario de GitHub

GET http(s)://[hostname]/login/oauth/authorize

Cuando tu GitHub App especifica un parámetro de login, solicita a los usuarios con una cuenta específica que pueden utilizar para registrarse y autorizar tu app.

Parámetros
NombreTipoDescripción
client_idsecuenciaRequerido. La ID de cliente para tu GitHub App. Puedes encontrarla en los Ajustes de tu GitHub App cuando selecciones tu app.
redirect_urisecuenciaLa URL en tu aplicación a donde se enviará a los usuarios después de la autorización. Esta deberá ser una coincidencia exacta de la URL que proporcionaste en el campo URL de rellamado para autorización del usuario cuando configuraste tu GitHub App y no puede contener parámetros adicionales.
statesecuenciaEste deberá contener una secuencia aleatoria para dar protección contra los ataques de falsificación y podría contener cualquier otros datos arbitrarios.
loginsecuenciaSugiere una cuenta específica para utilizar para registrarse y autorizar la app.

Nota: No necesitas proporcionar alcances en tu solicitud de autorización. A diferencia de la OAuth trandicional, el token de autorizción se limita a los permisos asociados con tu GitHub App y a aquellos del usuario.

2. GitHub redirecciona a los usuarios de vuelta a tu sitio

Si el usuario acepta tu solicitud, GitHub te redirecciona de regreso a tu sitio con un code temporal en un parámetro de código así como con el estado que proporcionaste en el paso anterior en el parámetro state. Si los estados no coinciden significa que un tercero creó la solicitud y que se debe anular el proceso.

Nota: Si seleccionas Solicitar la autorización del usuario (OAuth) durante la instalación cuando creas o modificas tu app, GitHub regreará un code temporal que necesitarás intercambiar por un token de acceso. El parámetro state no se regresa cuando GitHub inicia el flujo de OAuth durante la instalación de la app.

Intercambia este code por un token de acceso.

POST http(s)://[hostname]/login/oauth/access_token
Parámetros
NombreTipoDescripción
client_idsecuenciaRequerido. La ID de cliente para tu GitHub App.
client_secretsecuenciaRequerido. El secreto de cliente para tu GitHub App.
códigosecuenciaRequerido. El código que recibiste como respuesta al Paso 1.
redirect_urisecuenciaLa URL en tu aplicación, hacia la cual se envía a los usuarios después de su autorización.
statesecuenciaLa secuencia aleatoria indescifrable que proporcionaste en el Paso 1.
Respuesta

Predeterminadamente, la respuesta toma la siguiente forma:

access_token=e72e16c7e42f292c6912e7710c838347ae178b4a&token_type=bearer

3. Tu GitHub App accede a la API con el token de acceso del usuario

El token de acceso del usuario permite que la GitHub App haga solicitudes a la API a nombre del usuario.

Authorization: token OAUTH-TOKEN
GET http(s)://[hostname]/api/v3/user

Por ejemplo, en curl, puedes configurar el encabezado de autorización de la siguiente manera:

curl -H "Authorization: token OAUTH-TOKEN" http(s)://[hostname]/api/v3/user

Revisar a qué recursos de instalación puede acceder un usuario

Nota: Para acceder a la API con tu GitHub App, debes proporcionar un tipo de medios personalizado en el encabezado de Accept para tus solicitudes.

application/vnd.github.machine-man-preview+json

Advertencia: La API podría cambiar sin previo aviso durante el periodo de vista previa. Las características de la vista previa no son compatibles con un uso productivo. Si experimentas cualquier problema, contacta a tu administrador del sitio empresarial GitHub.

Ya que tengas un token de OAuth para un usuario, puedes revisar a qué instalaciones puede acceder.

Authorization: token OAUTH-TOKEN
GET /user/installations

También puedes verificar qué repositorios se encuentran accesibles para un usuario para una instalación.

Authorization: token OAUTH-TOKEN
GET /user/installations/:installation_id/repositories

Puedes encontrar más detalles en: Listar instalaciones de app accesibles para el token de acceso del usuario y Listar repositorios accesibles para el token de acceso del usuario.

Gestionar una autorización revocada a una GitHub App

Si un usuario revoca su autorización de una GitHub App, dicha app recibirá el webhook github_app_authorization predeterminadamente. Las GitHub Apps no pueden desuscribirse de este evento. Cualquiera puede revocar su autorización a una GitHub App desde su página de ajustes de cuenta de GitHub. Revocar la autorización de una GitHub App no la desinstalará. Debes programar tu GitHub App para que cuando reciba su webhook deje de llamar a la API en nombre de la persona que revocó el token. Si tu GitHub App sigue utilizando un token de acceso revocado, esta recibirá el error 401 Bad Credentials.

Permisos a nivel de usuario

Puedes agregar permisos a nivel de usuario a tu GitHub App para acceder a los recursos del usuario, tales como correos electrónicos del usuario, los cuales otorgan los usuarios independientes como parte del flujo de autorización del usuario. Los permisos a nivel de usuario difieren de los permisos a nivel de organización y de repositorio, los cuales se otorgan en el momento de la instalación en una cuenta de usuario o de organización.

Puedes seleccionar los permisos a nivel de usuario desde dentro de la configuración de tu GitHub App en la sección de Permisos de usuario de la página de Permisos & webhooks. Para obtener más información sobre seleccionar permisos, consulta la sección Editar los permisos de una GitHub App".

Cuando un usuario instala tu app en su cuenta, el aviso de instalación listará los permisos a nivel de usuario que tu app está solicitando y explicará que la app puede pedir estos permisos a los usuarios independientes.

Ya que los permisos a nivel de usuario se otorgan individualmente, puedes agregarlos a tu app existente sin solicitar que los usuarios los mejoren. Sin embargo, necesitarás enviar usuarios existentes a través del flujo de autorización de usuarios para autorizar los permisos nuevos y obtener un token nuevo de usuario a servidor para estas solicitudes.

Solicitudes de usuario a servidor

Mientras que la mayoría de tu interacción con la API deberá darse utilizando tus tokens de acceso a la instalación de servidor a servidor, ciertas terminales te permiten llevar a cabo acciones a través de la API utilizando un token de acceso. Tu app puede hacer las siguientes solicitudes utilizando las terminales de GraphQL v4 o de REST v3.

Terminales compatibles

Ejecuciones de Verificación
Comprobar Suites
Códigos de Conducta
Estados de Despliegue
Implementaciones
Eventos
Fuentes
Blobs de Git
Confirmaciones de Git
Referencias de Git
Matrículas de Git
Árboles de Git
Plantillas de Gitignore
Instalaciones
Asignados de Informes de Problemas
Comentarios de Informes de Problemas
Eventos de Informe de Problemas
Línea de tiempo del Informe de Problemas
Problemas
Etiquetas
Licencias
Markdown
Meta
Hitos
Ganchos de organización
Miembros de la Organización
Colaboradores Externos de una Organización
Ganchos de Pre-recepción de la Organización
Repositorios de Equipo de la Organización
Equipos de la Organización
Organizaciones
Colaboradores de Proyecto
Proyectos
Comentarios de Extracción
Eventos de Revisión en Solciitudes de Extracción
Solicitudes de Revisión para Solicitudes de Extracción
Revisiones de Solicitudes de Extracción
Extracciones
Reacciones

*Borrar una reacción

Repositorios
Actividad del Repositorio
Ramas de los Repositorios
Colaboradores del Repositorio
Comentarios de Confirmaciones de un Repositorio
Confirmaciones de Repositorio
Comunidad del Repositorio
Contenido de los Repositorios
Ganchos de Repositorio
Invitaciones a un repositorio
Claves de Repositorio
Páginas de Repositorio
Ganchos de Pre-recepción de un Repositorio
Lanzamientos de repositorio
Estadísticas de Repositorio
Raíz
Buscar
Estados
Debates de Equipo
Temas
Correo Electrónico de Usuario
Seguidores del Usuario
Utilizar Llaves Gpg
Llaves Públicas de Usuario
Usuarios

¿Te ayudó este documento?