Autorización del acceso a las API REST con OAuth 2.0
Azure DevOps Services
Obtenga información sobre cómo autenticar a los usuarios de la aplicación web para el acceso a la API REST, por lo que la aplicación no sigue pidiendo nombres de usuario y contraseñas.
Nota:
- Las instrucciones siguientes están pensadas para los usuarios de Azure DevOps Services, ya que OAuth 2.0 no se admite en Azure DevOps Server. Las bibliotecas cliente son una serie de paquetes creados específicamente para ampliar Azure DevOps Server funcionalidad. Para los usuarios locales, se recomienda usar bibliotecas cliente, autenticación de Windows o tokens de acceso personal (PAT) para autenticarse en nombre de un usuario.
- Para obtener más información, consulte el ejemplo de GitHub de OAuth de C#.
Acerca de OAuth 2.0
Azure DevOps Services usa el protocolo OAuth 2.0 para autorizar la aplicación para un usuario y generar un token de acceso. Use este token cuando llame a las API de REST desde su aplicación. Cuando llame a las API de Azure DevOps Services para ese usuario, use el token de acceso de ese usuario. Los tokens de acceso expiran, por lo que debe actualizar el token de acceso si ha expirado.
Modelos de OAuth disponibles
Importante
Al crear una nueva aplicación de OAuth 2.0, use Microsoft Entra ID OAuth. Azure DevOps OAuth 2.0 está programado para desuso en 2026. A partir de marzo de 2025, dejaremos de aceptar nuevas aplicaciones de OAuth de Azure DevOps. Obtenga más información en nuestra entrada de blog.
Microsoft Entra ID OAuth
La creación de una nueva plataforma puede ser abrumadora. En esta guía para crear una aplicación de Microsoft Entra para Azure DevOps, recopilamos vínculos útiles que podrían resultar útiles para iniciar el proceso de desarrollo de aplicaciones de OAuth en Microsoft Entra. Para los usuarios que migran desde Azure DevOps OAuth a Microsoft Entra OAuth, ofrecemos sugerencias para tener en cuenta durante el esfuerzo de migración.
Azure DevOps OAuth
Para las aplicaciones existentes, consulte la guía de aplicaciones de OAuth de Azure DevOps. También puede administrar qué aplicaciones de Azure DevOps están autorizadas para acceder a los recursos.
Ámbitos
Se espera que los desarrolladores especifiquen qué ámbitos requieren de sus usuarios. Los mismos ámbitos están disponibles en ambos modelos de OAuth. Los siguientes ámbitos solo están disponibles a través de flujos delegados (en nombre del usuario).
Para averiguar qué ámbitos necesita para la aplicación, busque en el encabezado de la scopes
página Referencia de API para cada API que use.
Algunos ámbitos pueden ser inclusivos de otros ámbitos, por ejemplo, vso.code_manage
incluye vso.code_write
. Por ejemplo, muchos ámbitos heredan de vso.profile
. Tenga en cuenta cuál es el número mínimo de ámbitos que necesita al solicitar el consentimiento del ámbito de los usuarios.
Nota:
Los ámbitos solo habilitan el acceso a las API REST y seleccionan puntos de conexión de Git. No se admite el acceso a la API SOAP.
Category | Ámbito | Nombre | Descripción | Se hereda de |
---|---|---|---|---|
Seguridad avanzada | vso.advsec |
AdvancedSecurity (lectura) | Concede la capacidad de leer alertas, instancias de resultado, instancias de resultado de análisis. | |
vso.advsec_write |
AdvancedSecurity (lectura y escritura) | Concede la capacidad de cargar análisis en sarif | vso.advsec |
|
vso.advsec_manage |
AdvancedSecurity (lectura, escritura y administración) | Concede la capacidad de cargar análisis en sarif | vso.advsec_write |
|
Grupos de agentes | vso.agentpools |
Grupos de agentes (lectura) | Concede la capacidad de ver tareas, grupos, colas, agentes y trabajos actualmente ejecutados o completados recientemente para agentes. | |
vso.agentpools_manage |
Grupos de agentes (lectura y administración) | Concede la capacidad de administrar grupos, colas y agentes. | vso.agentpools |
|
vso.environment_manage |
Entorno (lectura, administración) | Concede la capacidad de administrar grupos, colas, agentes y entornos. | vso.agentpools_manage |
|
Análisis | vso.analytics |
Análisis (lectura) | Concede la capacidad de consultar datos de análisis. | |
Auditoría | vso.auditlog |
Registro de auditoría (lectura) | Concede la capacidad de leer el registro de auditoría a los usuarios. | |
vso.auditstreams_manage |
Flujos de auditoría (lectura) | Concede la capacidad de administrar flujos de auditoría a los usuarios. | vso.auditlog |
|
Compilar | vso.build |
Compilar (leer) | Concede la capacidad de acceder a los artefactos de compilación, incluidos los resultados de compilación, las definiciones y las solicitudes, y la capacidad de recibir notificaciones sobre eventos de compilación a través de enlaces de servicio. | vso.hooks_write |
vso.build_execute |
Compilar (lectura y ejecución) | Concede la capacidad de acceder a los artefactos de compilación, incluidos los resultados de compilación, las definiciones y las solicitudes, y la capacidad de poner en cola una compilación, actualizar las propiedades de compilación y la capacidad de recibir notificaciones sobre eventos de compilación a través de enlaces de servicio. | vso.build |
|
Código | vso.code |
Código (leer) | Concede la capacidad de leer código fuente y metadatos sobre confirmaciones, conjuntos de cambios, ramas y otros artefactos de control de versiones. También concede la capacidad de buscar código y recibir notificaciones sobre eventos de control de versiones a través de enlaces de servicio. | vso.hooks_write |
vso.code_write |
Código (lectura y escritura) | Concede la capacidad de leer, actualizar y eliminar código fuente, acceder a metadatos sobre confirmaciones, conjuntos de cambios, ramas y otros artefactos de control de versiones. También concede la capacidad de crear y administrar solicitudes de incorporación de cambios y revisiones de código y recibir notificaciones sobre eventos de control de versiones a través de enlaces de servicio. | vso.code |
|
vso.code_manage |
Código (lectura, escritura y administración) | Concede la capacidad de leer, actualizar y eliminar código fuente, acceder a metadatos sobre confirmaciones, conjuntos de cambios, ramas y otros artefactos de control de versiones. También concede la capacidad de crear y administrar repositorios de código, crear y administrar solicitudes de incorporación de cambios y revisiones de código, y recibir notificaciones sobre eventos de control de versiones a través de enlaces de servicio. | vso.code_write |
|
vso.code_full |
Código (completo) | Concede acceso completo al código fuente, los metadatos sobre confirmaciones, conjuntos de cambios, ramas y otros artefactos de control de versiones. También concede la capacidad de crear y administrar repositorios de código, crear y administrar solicitudes de incorporación de cambios y revisiones de código, y recibir notificaciones sobre eventos de control de versiones a través de enlaces de servicio. También incluye compatibilidad limitada con las API de OM de cliente. | vso.code_manage |
|
vso.code_status |
Código (estado) | Concede la capacidad de leer y escribir la confirmación y el estado de la solicitud de incorporación de cambios. | ||
Servidor conectado | vso.connected_server |
Servidor conectado | Concede la capacidad de acceder a los puntos de conexión necesarios desde un servidor conectado local. | |
Derechos | vso.entitlements |
Derechos (lectura) | Proporciona acceso de solo lectura al punto de conexión de derechos de licencia para obtener derechos de cuenta. | |
vso.memberentitlementmanagement |
Administración de MemberEntitlement (lectura) | Concede la capacidad de leer usuarios, sus licencias, así como proyectos y extensiones a los que pueden acceder. | ||
vso.memberentitlementmanagement_write |
Administración de MemberEntitlement (escritura) | Concede la capacidad de administrar usuarios, sus licencias, así como proyectos y extensiones a los que pueden acceder. | vso.memberentitlementmanagement |
|
Extensiones | vso.extension |
Extensiones (lectura) | Concede la capacidad de leer extensiones instaladas. | vso.profile |
vso.extension_manage |
Extensiones (leer y administrar) | Concede la capacidad de instalar, desinstalar y realizar otras acciones administrativas en las extensiones instaladas. | vso.extension |
|
vso.extension.data |
Datos de extensión (lectura) | Concede la capacidad de leer datos (configuración y documentos) almacenados por extensiones instaladas. | vso.profile |
|
vso.extension.data_write |
Datos de extensión (lectura y escritura) | Concede la capacidad de leer y escribir datos (configuración y documentos) almacenados por extensiones instaladas. | vso.extension.data |
|
Conexiones de GitHub | vso.githubconnections |
Conexiones de GitHub (lectura) | Concede la capacidad de leer las conexiones de GitHub y los datos de repositorios de GitHub. | |
vso.githubconnections_manage |
Conexiones de GitHub (leer y administrar) | Concede la capacidad de leer y administrar conexiones de GitHub y los datos de repositorios de GitHub. | vso.githubconnections |
|
Graph & identity | vso.graph |
Gráfico (lectura) | Concede la capacidad de leer información de usuario, grupo, ámbito y pertenencia a grupos. | |
vso.graph_manage |
Gráfico (administrar) | Concede la capacidad de leer información de usuarios, grupos, ámbito y pertenencia a grupos, y para agregar usuarios, grupos y administrar pertenencias a grupos. | vso.graph |
|
vso.identity |
Identidad (leer) | Concede la capacidad de leer identidades y grupos. | ||
vso.identity_manage |
Identidad (administrar) | Concede la capacidad de leer, escribir y administrar identidades y grupos. | vso.identity |
|
Grupo de máquinas | vso.machinegroup_manage |
Grupo de implementación (lectura, administración) | Proporciona capacidad para administrar grupos de agentes y grupos de implementación. | vso.agentpools_manage |
Marketplace | vso.gallery |
Marketplace | Concede acceso de lectura a elementos públicos y privados y publicadores. | vso.profile |
vso.gallery_acquire |
Marketplace (adquirir) | Concede acceso de lectura y la capacidad de adquirir elementos. | vso.gallery |
|
vso.gallery_publish |
Marketplace (publicación) | Concede acceso de lectura y la capacidad de cargar, actualizar y compartir elementos. | vso.gallery |
|
vso.gallery_manage |
Marketplace (administrar) | Concede acceso de lectura y la capacidad de publicar y administrar elementos y publicadores. | vso.gallery_publish |
|
Notificaciones | vso.notification |
Notificaciones (lectura) | Proporciona acceso de lectura a suscripciones y metadatos de eventos, incluidos los valores de campo filtrables. | vso.profile |
vso.notification_write |
Notificaciones (escritura) | Proporciona acceso de lectura y escritura a suscripciones y acceso de lectura a metadatos de eventos, incluidos los valores de campo filtrables. | vso.notification |
|
vso.notification_manage |
Notificaciones (administrar) | Proporciona acceso de lectura, escritura y administración a suscripciones y acceso de lectura a metadatos de eventos, incluidos los valores de campo filtrables. | vso.notification_write |
|
vso.notification_diagnostics |
Notificaciones (diagnósticos) | Proporciona acceso a los registros de diagnóstico relacionados con la notificación y proporciona la capacidad de habilitar diagnósticos para suscripciones individuales. | vso.notification |
|
Empaquetado | vso.packaging |
Empaquetado (lectura) | Concede la capacidad de leer fuentes y paquetes. | vso.profile |
vso.packaging_write |
Empaquetado (lectura y escritura) | Concede la capacidad de crear y leer fuentes y paquetes. | vso.packaging |
|
vso.packaging_manage |
Empaquetado (lectura, escritura y administración) | Concede la capacidad de crear, leer, actualizar y eliminar fuentes y paquetes. | vso.packaging_write |
|
Recursos de canalización | vso.pipelineresources_use |
Recursos de canalización (uso) | Concede la capacidad de aprobar la solicitud de una canalización para usar un recurso protegido: grupo de agentes, entorno, cola, repositorio, archivos seguros, conexión de servicio y grupo de variables. | |
vso.pipelineresources_manage |
Recursos de canalización (uso y administración) | Concede la capacidad de administrar un recurso protegido o la solicitud de una canalización para usar un recurso protegido: grupo de agentes, entorno, cola, repositorio, archivos seguros, conexión de servicio y grupo de variables. | vso.pipelineresources_manage |
|
Proyecto y equipo | vso.project |
Proyecto y equipo (leer) | Concede la capacidad de leer proyectos y equipos. | |
vso.project_write |
Proyecto y equipo (lectura y escritura) | Concede la capacidad de leer y actualizar proyectos y equipos. | vso.project |
|
vso.project_manage |
Proyecto y equipo (lectura, escritura y administración) | Concede la capacidad de crear, leer, actualizar y eliminar proyectos y equipos. | vso.project_write |
|
Versión | vso.release |
Versión (lectura) | Concede la capacidad de leer artefactos de versión, incluidas las versiones, las definiciones de versión y el entorno de versión. | vso.profile |
vso.release_execute |
Versión (lectura, escritura y ejecución) | Concede la capacidad de leer y actualizar artefactos de versión, incluidas las versiones, las definiciones de versión y el entorno de versión, y la capacidad de poner en cola una nueva versión. | vso.release |
|
vso.release_manage |
Versión (lectura, escritura, ejecución y administración) | Concede la capacidad de leer, actualizar y eliminar artefactos de versión, incluidas las versiones, las definiciones de versión y el entorno de versión, y la capacidad de poner en cola y aprobar una nueva versión. | vso.release_manage |
|
Proteger archivos | vso.securefiles_read |
Archivos seguros (lectura) | Concede la capacidad de leer archivos seguros. | |
vso.securefiles_write |
Archivos seguros (leer, crear) | Concede la capacidad de leer y crear archivos seguros. | vso.securefiles_read |
|
vso.securefiles_manage |
Archivos seguros (leer, crear y administrar) | Concede la capacidad de leer, crear y administrar archivos seguros. | vso.securefiles_write |
|
Seguridad | vso.security_manage |
Seguridad (administrar) | Concede la capacidad de leer, escribir y administrar permisos de seguridad. | |
Conexiones de servicio | vso.serviceendpoint |
Puntos de conexión de servicio (lectura) | Concede la capacidad de leer puntos de conexión de servicio. | vso.profile |
vso.serviceendpoint_query |
Puntos de conexión de servicio (lectura y consulta) | Concede la capacidad de leer y consultar puntos de conexión de servicio. | vso.serviceendpoint |
|
vso.serviceendpoint_manage |
Puntos de conexión de servicio (lectura, consulta y administración) | Concede la capacidad de leer, consultar y administrar puntos de conexión de servicio. | vso.serviceendpoint_query |
|
Enlaces de servicio | vso.hooks |
Enlaces de servicio (lectura) | Concede la capacidad de leer suscripciones y metadatos de enlace de servicio, incluidos eventos admitidos, consumidores y acciones. (Ya no es público). | vso.profile |
vso.hooks_write |
Enlaces de servicio (lectura y escritura) | Concede la capacidad de crear y actualizar suscripciones de enlace de servicio y leer metadatos, incluidos eventos admitidos, consumidores y acciones. (Ya no es público). | vso.hooks |
|
vso.hooks_interact |
Enlaces de servicio (interacción) | Concede la capacidad de interactuar y realizar acciones en eventos recibidos a través de enlaces de servicio. (Ya no es público). | vso.profile |
|
Configuración | vso.settings |
Configuración (lectura) | Concede la capacidad de leer la configuración. | |
vso.settings_write |
Configuración (lectura y escritura) | Concede la capacidad de crear y leer la configuración. | ||
Símbolos | vso.symbols |
Símbolos (lectura) | Concede la capacidad de leer símbolos. | vso.profile |
vso.symbols_write |
Símbolos (lectura y escritura) | Concede la capacidad de leer y escribir símbolos. | vso.symbols |
|
vso.symbols_manage |
Símbolos (lectura, escritura y administración) | Concede la capacidad de leer, escribir y administrar símbolos. | vso.symbols_write |
|
Grupos de tareas | vso.taskgroups_read |
Grupos de tareas (lectura) | Concede la capacidad de leer grupos de tareas. | |
vso.taskgroups_write |
Grupos de tareas (leer, crear) | Concede la capacidad de leer y crear grupos de tareas. | vso.taskgroups_read |
|
vso.taskgroups_manage |
Grupos de tareas (leer, crear y administrar) | Concede la capacidad de leer, crear y administrar grupos de tareas. | vso.taskgroups_write |
|
Panel de equipo | vso.dashboards |
Paneles de equipo (lectura) | Concede la capacidad de leer la información del panel del equipo. | |
vso.dashboards_manage |
Paneles de equipo (administrar) | Concede la capacidad de administrar la información del panel del equipo. | vso.dashboards |
|
Administración de pruebas | vso.test |
Administración de pruebas (lectura) | Concede la capacidad de leer planes de prueba, casos, resultados y otros artefactos relacionados con la administración de pruebas. | vso.profile |
vso.test_write |
Administración de pruebas (lectura y escritura) | Concede la capacidad de leer, crear y actualizar planes de prueba, casos, resultados y otros artefactos relacionados con la administración de pruebas. | vso.test |
|
Subprocesos | vso.threads_full |
Subprocesos de pr | Concede la capacidad de leer y escribir para extraer subprocesos de comentarios de solicitud. | |
Tokens | vso.tokens |
Tokens de autorización delegados | Concede a los usuarios la capacidad de administrar tokens de autorización delegados. | |
vso.tokenadministration |
Administración de tokens | Concede la capacidad de administrar (ver y revocar) tokens existentes a los administradores de la organización. | ||
Perfil de usuario | vso.profile |
Perfil de usuario (leer) | Concede la capacidad de leer el perfil, las cuentas, las colecciones, los proyectos, los equipos y otros artefactos de la organización de nivel superior. | |
vso.profile_write |
Perfil de usuario (escritura) | Concede la capacidad de escribir en su perfil. | vso.profile |
|
Grupos de variables | vso.variablegroups_read |
Grupos de variables (lectura) | Concede la capacidad de leer grupos de variables. | |
vso.variablegroups_write |
Grupos de variables (leer, crear) | Concede la capacidad de leer y crear grupos de variables. | vso.variablegroups_read |
|
vso.variablegroups_manage |
Grupos de variables (leer, crear y administrar) | Concede la capacidad de leer, crear y administrar grupos de variables. | vso.variablegroups_write |
|
Wiki | vso.wiki |
Wiki (lectura) | Concede la capacidad de leer wikis, páginas wiki y datos adjuntos wiki. También concede la capacidad de buscar páginas wiki. | |
vso.wiki_write |
Wiki (lectura y escritura) | Concede la capacidad de leer, crear y actualizar wikis, páginas wiki y datos adjuntos wiki. | vso.wiki |
|
Elementos de trabajo | vso.work |
Elementos de trabajo (leer) | Concede la capacidad de leer elementos de trabajo, consultas, paneles, rutas de acceso de área e iteraciones y otros metadatos relacionados con el seguimiento de elementos de trabajo. También concede la capacidad de ejecutar consultas, buscar elementos de trabajo y recibir notificaciones sobre eventos de elementos de trabajo a través de enlaces de servicio. | vso.hooks_write |
vso.work_write |
Elementos de trabajo (leer y escribir) | Concede la capacidad de leer, crear y actualizar elementos de trabajo y consultas, actualizar metadatos del panel de actualización, áreas de lectura e iteraciones rutas de acceso a otros metadatos relacionados con el seguimiento de elementos de trabajo, ejecutar consultas y recibir notificaciones sobre eventos de elemento de trabajo a través de enlaces de servicio. | vso.work |
|
vso.work_full |
Elementos de trabajo (completos) | Concede acceso total a elementos de trabajo, consultas, trabajos pendientes, planes y metadatos de seguimiento de elementos de trabajo. También proporciona la capacidad de recibir notificaciones sobre eventos de elementos de trabajo a través de enlaces de servicio. | vso.work_write |
|
Suplantación de usuario | user_impersonation |
Suplantación de usuario | Tener acceso completo a las API REST de Visual Studio Team Services. Solicitar o dar su consentimiento a este ámbito con precaución, ya que es muy eficaz! |
Preguntas más frecuentes (P+F)
P: ¿Puedo usar OAuth con mi aplicación de teléfono móvil?
R: No. Azure DevOps Services solo admite el flujo de servidor web, por lo que no hay ninguna manera de implementar OAuth, ya que no se puede almacenar de forma segura el secreto de la aplicación.
P: ¿Puedo usar OAuth con los puntos de conexión SOAP y las API REST?
R: No. OAuth solo se admite en las API REST.