Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
En este artículo se presentan escenarios comunes de solución de problemas que le ayudarán a resolver los problemas que pueden surgir al crear una conexión de servicio de Azure Resource Manager (ARM). Consulte Administración de conexiones de servicio para aprender a crear, editar y proteger conexiones de servicio. Consulte Solución de problemas de una conexión del servicio de identidad de carga de trabajo de Azure Resource Manager para obtener información sobre cómo corregir problemas relacionados con la identidad de carga de trabajo.
En este artículo se usan los términos "inquilino" y "directorio" de maneras que pueden superponerse. Un cliente es una instancia dedicada y aislada de Microsoft Entra ID que su organización recibe y gestiona, como todas las identidades y el control de acceso para sus servicios en la nube. Un directorio es un contenedor dentro de ese inquilino que contiene objetos como usuarios, grupos y aplicaciones que se usan para administrar el acceso a los recursos.
Sugerencia
Puede pedir a Copilot que le ayude a solucionar los mensajes de error. Para obtener más información, consulte Usar IA para solucionar un error de conexión de servicio de Azure DevOps.
Qué ocurre cuando se crea una conexión de servicio de Azure Resource Manager
Tiene varias opciones de autenticación para conectarse a Azure con una conexión de servicio de Azure Resource Manager. Se recomienda usar la federación de identidades de carga de trabajo con un registro de aplicación o una identidad administrada.
Cuando el proceso de creación de la conexión de servicio se realiza correctamente, Azure DevOps realiza automáticamente estos pasos en el inquilino de Microsoft Entra. Si se producen errores durante este proceso, consulte los escenarios de solución de problemas siguientes.
Al guardar la nueva conexión de servicio de Azure Resource Manager, Azure DevOps realiza las siguientes acciones:
- Se conecta a la entidad de Microsoft Entra para la suscripción seleccionada.
- Crea una aplicación en Entra ID en nombre del usuario.
- Asigna la aplicación como colaborador a la suscripción seleccionada.
- Crea una conexión de servicio de Azure Resource Manager mediante los detalles de esta aplicación.
Nota:
Para crear conexiones de servicio, debe tener asignado el rol de Creador o Administrador para el grupo Creador de puntos de conexión en la configuración del proyecto: Configuración del proyecto>Conexiones de servicio>Más acciones>Seguridad. Los colaboradores del proyecto se agregan a este grupo de forma predeterminada.
El usuario solo tiene permiso de invitado en el directorio
Este error se produce durante el proceso de creación automática de conexiones de servicio cuando Azure DevOps intenta crear una aplicación y asignar permisos en el id. de Microsoft Entra (pasos 2 a 3 en ¿Qué ocurre cuando se crea una conexión de servicio de Azure Resource Manager?). Se produce cuando un usuario con solo permisos de invitado en un directorio de identificador de Microsoft Entra intenta crear una conexión de servicio de Azure Resource Manager en Azure DevOps, pero no tiene permisos suficientes.
Para solucionar este problema:
Inicie sesión en Azure Portal con una cuenta de administrador. La cuenta debe ser de propietario o administrador de cuentas de usuario.
Seleccione Microsoft Entra ID en la barra de navegación izquierda.
Asegúrese de que está editando el directorio adecuado que corresponde a la suscripción de usuario. Si no es así, seleccione Cambiar directorio e inicie sesión con las credenciales adecuadas si es necesario.
Seleccione Usuarios en la sección Administrar.
Seleccione Configuración de usuario.
Seleccione Administrar la configuración de colaboración externa en la sección Usuarios externos.
Cambie la opción Los permisos de usuario invitado están limitados a No.
Como alternativa, si está listo para conceder permisos de nivel administrador, puede hacer que el usuario sea miembro de un rol de administrador. Lleve a cabo los pasos siguientes:
Advertencia
Asignar a los usuarios el rol de Administrador global les permite leer y modificar cada opción administrativa de la organización de Microsoft Entra. Como procedimiento recomendado, asigne este rol a menos de cinco personas de su organización.
Inicie sesión en Azure Portal con una cuenta de administrador. La cuenta debe ser de propietario o administrador de cuenta de usuario.
Seleccione Id. de Microsoft Entra del panel de navegación izquierdo.
Asegúrese de que está editando el directorio adecuado que corresponde a la suscripción de usuario. Si no es así, seleccione Cambiar directorio e inicie sesión con las credenciales adecuadas si es necesario.
Seleccione Usuarios en la sección Administrar.
Use el cuadro de búsqueda para buscar el usuario que desea administrar.
Seleccione Rol del directorio en la sección Administrar y, a continuación, cambie el rol. Cuando haya terminado, haga clic en Guardar.
Normalmente, los cambios tardan entre 15 y 20 minutos en aplicarse globalmente. Después, el usuario puede intentar volver a crear la conexión de servicio.
El usuario no está autorizado para agregar aplicaciones en el directorio
Este error se produce durante el proceso de creación automática de la conexión de servicio cuando Azure DevOps intenta crear una aplicación en microsoft Entra ID en su nombre (paso 2 en ¿Qué ocurre al crear una conexión de servicio de Azure Resource Manager?). No tiene permiso para agregar aplicaciones integradas en el directorio. El administrador del directorio tiene permisos para cambiar esta configuración.
Para solucionar este problema:
Seleccione Microsoft Entra ID en el panel de navegación izquierdo.
Asegúrese de que está editando el directorio adecuado que corresponde a la suscripción de usuario. Si no es así, seleccione Cambiar directorio e inicie sesión con las credenciales adecuadas si es necesario.
Seleccione Usuarios y, a continuación, seleccione Configuración de usuario.
En Registros de aplicaciones, cambie la opción Usuarios puede registrar aplicaciones a Sí.
También puede crear la entidad de servicio con un usuario existente que ya tenga los permisos necesarios en Entra ID. Para obtener más información, consulte Crear una conexión de servicio de Azure Resource Manager con una entidad de servicio existente.
No se encontró un token de acceso o no se encontró un token de actualización válido
Normalmente, estos errores se producen cuando expira la sesión.
Para resolver estos problemas:
Cierre la sesión de Azure DevOps.
Abra una ventana del explorador InPrivate o incógnito y vaya a Azure DevOps.
Inicie sesión con las credenciales adecuadas.
Seleccione su organización y su proyecto.
Intente volver a crear la conexión de servicio. Para obtener pasos detallados, consulte Administración de conexiones de servicio.
No parece tener una suscripción de Azure activa al intentar editar o crear una nueva conexión de servicio
Este error suele producirse cuando forma parte de varios inquilinos de Entra ID.
Para solucionar este problema:
Vaya al perfil de VS.
Compruebe si tiene varios inquilinos.
Seleccione cada inquilino y vuelva a autenticarse.
Intente crear una conexión de servicio y compruebe si la suscripción se carga.
No se pudo asignar el rol Colaborador
Este error se produce durante el proceso de creación automática de conexiones de servicio cuando Azure DevOps intenta asignar la aplicación como colaborador a la suscripción (paso 3 en ¿Qué ocurre cuando crea una conexión de servicio de Azure Resource Manager?). Este error suele producirse cuando no tiene permiso de escritura para la suscripción de Azure seleccionada.
Para resolver este problema, pida al administrador de la suscripción que le asigne el rol adecuado en Microsoft Entra ID.
La suscripción no aparece al crear una conexión de servicio
Hay varias causas posibles de este problema.
Se superó el máximo de 50 suscripciones de Azure enumeradas en los distintos menús desplegables de suscripción de Azure (facturación, conexión de servicio, etc.): si está configurando una conexión de servicio y tiene más de 50 suscripciones de Azure, algunas de las suscripciones no aparecen en la lista. En este escenario, complete los pasos siguientes:
Cree un usuario nativo de Microsoft Entra en la instancia de Microsoft Entra de la suscripción de Azure.
Configure el usuario de Microsoft Entra para que tenga los permisos adecuados para configurar la facturación o crear conexiones de servicio. Para más información, consulte Incorporación de un usuario que pueda configurar la facturación de Azure DevOps.
Agregue el usuario de Microsoft Entra a la organización de Azure DevOps con un nivel de acceso de Parte interesada y, después, agréguelo al grupo Administradores de la colección de proyectos (para facturación) o asegúrese de que el usuario tenga permisos suficientes en el proyecto de equipo para crear conexiones de servicio.
Inicie sesión en Azure DevOps con las nuevas credenciales de usuario y configure una facturación. Solo verá una suscripción de Azure en la lista.
Token de usuario antiguo almacenado en caché en Azure DevOps Services: Si la suscripción de Azure no aparece al crear una conexión de servicio de Azure Resource Manager (ARM), puede deberse a un token de usuario antiguo almacenado en caché en Azure DevOps Services. Este escenario no es inmediatamente obvio, ya que la pantalla de lista de suscripciones de Azure no muestra ningún mensaje de error o advertencia que indique que el token de usuario está obsoleto. Para resolver este problema, actualice manualmente el token de usuario almacenado en caché en Azure DevOps Services mediante los pasos siguientes:
- Cierre la sesión de Azure DevOps Services y vuelva a iniciarla. Esta acción puede actualizar el token de usuario.
- Borre la memoria caché del explorador y las cookies para asegurarse de que se quiten los tokens antiguos.
- En el portal de Azure DevOps, vaya a las conexiones de servicio y vuelva a autorizar la conexión a Azure. En este paso se solicita a Azure DevOps que use un nuevo token.
Configuración incorrecta de los tipos de cuenta de soporte técnico: Corrija este problema cambiando la configuración de los tipos de cuenta admitidos y definiendo quién puede usar la aplicación. Siga estos pasos:
Inicie sesión en Azure Portal.
Si tiene acceso a varios inquilinos, use el filtro Directorio + suscripción del menú superior para seleccionar el inquilino en el que quiere registrar una aplicación.
Seleccione Microsoft Entra ID en el panel izquierdo.
Seleccione App registrations (Registros de aplicaciones).
Seleccione la aplicación en la lista de aplicaciones registradas.
En Autenticación, seleccione Tipos de cuenta admitidos.
En Tipos de cuenta admitidos, ¿Quién puede usar esta aplicación o acceder a esta API?, seleccione Cuentas en cualquier directorio organizativo.
Cuando haya terminado, haga clic en Guardar.
El principal de servicio o el secreto han expirado
Las entidades de servicio o los secretos que Azure DevOps crea automáticamente expiran y requieren renovación. Si tiene problemas al actualizar el token, consulte Error al obtener un token de acceso o no se encontró un token de actualización válido. Para evitar tener que renovar secretos, use la federación de identidades de carga de trabajo con Azure Resource Manager.
Si el token expira, es posible que vea uno de estos mensajes de error:
AADSTS7000215: Invalid client secret is providedAADSTS7000222: The provided client secret keys for app '***' are expiredInvalid client id or client secret
Para renovar el token de acceso de una entidad de servicio o secreto creados automáticamente:
Vaya a Configuración del> proyectoConexiones del servicio y, a continuación, seleccione la conexión de servicio que desea actualizar.
Seleccione Rotar secreto.
El token de la entidad de servicio o el secreto ahora se renueva durante tres meses más.
Nota:
Esta operación está disponible incluso si el token de la entidad de servicio no ha expirado. Asegúrese de que el usuario que realiza la operación tenga los permisos adecuados en la suscripción y el identificador de Microsoft Entra, ya que actualiza el secreto de la aplicación registrada para la entidad de servicio. Para obtener más información, consulte Creación de un registro de aplicación con un secreto y ¿Qué ocurre al crear una conexión de servicio de Resource Manager?
No se pudo obtener el JWT mediante el identificador de cliente de la entidad de servicio
Este problema se produce al intentar guardar una conexión de servicio que tiene un secreto expirado u otros problemas en el nivel de identificador de Entra de Microsoft.
Es posible que una conexión de servicio en esta situación tampoco aparezca en los menús desplegables de tareas de pipeline (como Azure App Service Deploy o Azure PowerShell), aunque esté visible en Configuración del proyecto>Conexiones de servicio.
Esto sucede cuando se eliminó la entidad de servicio subyacente o el isReady estado de la conexión es false.
Para solucionar este problema:
- Vaya a Configuración del proyecto>Conexiones de servicio y, a continuación, seleccione la conexión de servicio que quiere modificar.
- Seleccione Editar y, a continuación, seleccione Comprobar para comprobar el estado de conexión.
- Si se produce un error
AADSTS700016en la comprobación ("No se encontró la aplicación con identificador en el directorio"), se eliminó el principal de servicio. Cree una nueva conexión de servicio o, para las conexiones manuales, actualice la conexión con los nuevos detalles de la entidad de servicio. - Si la comprobación se realiza correctamente, seleccione Guardar para guardar la conexión de servicio.
Nota:
Si recibe un error como Failed to obtain the Json Web Token(JWT) using service principal client ID. Exception message: AADSTS7000112: Application is disabled., trabaje con su equipo de Microsoft Entra ID para confirmar que la opción Habilitado para que los usuarios inicien sesión en la aplicación empresarial vinculada a su principal de servicio no está deshabilitada.
La suscripción de Azure no se transfiere desde la salida de tarea anterior
** Si configura su suscripción de Azure dinámicamente para el pipeline de lanzamiento e intenta utilizar la variable resultante de una tarea anterior, podría enfrentarse a este problema.
Para resolverlo, asegúrese de que los valores se hayan definido en la sección de variables de la canalización. Después, puede pasar esta variable entre las tareas de la canalización.
¿Qué mecanismos de autenticación se admiten? ¿Cómo funcionan las identidades administradas?
Una conexión de servicio de Azure Resource Manager puede conectarse a una suscripción de Azure mediante la autenticación de entidad de servicio (SPA) o la autenticación de identidad administrada.
La conexión del servicio Azure Resource Manager puede conectarse a una suscripción de Azure, un grupo de administración o un área de trabajo de Machine Learning mediante:
- Registro de aplicaciones (recomendado): autentique la conexión mediante una federación de identidades de carga de trabajo o un secreto.
- Identidad administrada: las identidades administradas de los recursos de Azure proporcionan a los servicios de Azure una identidad administrada automáticamente en Microsoft Entra ID. También puede usar una identidad administrada asignada por el agente.
Al configurar la conexión de servicio con una identidad administrada como método de autenticación, el proceso no crea una nueva identidad administrada. Simplemente establece la conexión del servicio. Para que este método de autenticación funcione correctamente, se deben cumplir ciertas condiciones. En concreto, dado que la identidad administrada es el método de autenticación elegido, la máquina virtual que usa debe tener una identidad asignada por el sistema. Además, esta máquina virtual debe actuar como agente autohospedado dentro de las canalizaciones para que el flujo de trabajo se ejecute completamente, lo que permite que la canalización implemente cambios a través de la conexión de servicio. La identidad asignada por el sistema en la máquina virtual identifica que la misma máquina virtual actúa como agente en la canalización, lo que habilita la autenticación. Esta configuración le permite aprovechar la identidad administrada existente.
Para obtener más información sobre las identidades administradas para máquinas virtuales, consulte la Asignación de roles.
Nota:
Los agentes hospedados por Microsoft no admiten identidades administradas. En este escenario, debe configurar un agente autohospedado en una máquina virtual de Azure y configurar una identidad administrada para esa máquina virtual.
Error AuthorizationFailed al ejecutar tareas de canalización
Cuando una tarea de canalización se ejecuta en un recurso de Azure, es posible que vea el siguiente error:
AuthorizationFailed: The client '<ClientName>' with object id '<ObjectId>' does not have authorization
to perform action '<ActionName>' over scope '/subscriptions/<SubscriptionId>/...'
El identificador de cliente y de objeto del mensaje de error hacen referencia a la entidad de servicio que respalda la conexión de servicio.
Para solucionar este problema:
- En Azure Portal, vaya al recurso o al grupo de recursos al que se hace referencia en el ámbito del error.
- Seleccione Control de acceso (IAM)>Asignaciones de roles.
- Compruebe que la entidad de servicio que aparece en el error tiene un rol que incluye la acción necesaria (por ejemplo, Colaborador o un rol personalizado).
- Si falta la asignación de rol, seleccione Agregar>asignación de rol y asigne el rol adecuado a la entidad de servicio.
- Espere unos minutos para que la asignación de roles se propague y vuelva a intentar la canalización.
Para más información sobre RBAC de Azure, consulte Roles integrados de Azure.
Conexión de servicio no autorizada para la canalización
Cuando se ejecuta una canalización, es posible que vea el siguiente error:
Resource not authorized. You need to authorize the resource before it can be used.
Este error se produce cuando no se ha concedido permiso a la conexión de servicio a la canalización que intenta usarla.
Para solucionar este problema:
- Vaya a Configuración del> proyectoConexiones del servicio.
- Seleccione la conexión de servicio que usa la canalización.
- Seleccione Más acciones (...) >Seguridad.
- En Permisos de canalización, seleccione + y agregue la canalización que necesita acceso.
Como alternativa, puede conceder acceso a todas las canalizaciones. Esto no se recomienda. Para conceder acceso a todas las canalizaciones:
En la página seguridad de la conexión de servicio, seleccione Más acciones>Abrir acceso.
Nota:
El acceso abierto permite que cualquier tubería del proyecto pueda usar la conexión de servicio. Para un control más estricto, conceda acceso solo a canalizaciones específicas.
Para más información, consulte Seguridad de la conexión de servicio.
Cree un principal de servicio sin permisos de suscripción de Azure
Si no tiene los permisos necesarios en la suscripción de Azure o en Microsoft Entra ID para crear una conexión de servicio a través del método automático, pida a un administrador que cree manualmente el principal de servicio. Luego, puede introducir los detalles del service principal en Azure DevOps para crear la conexión de servicio.
- Pida a un usuario que tenga los permisos de suscripción de Azure y id. de Microsoft Entra necesarios para crear una entidad de servicio en el identificador de Microsoft Entra y asígnele el rol adecuado en la suscripción.
- Obtenga los detalles siguientes del administrador: id. de aplicación (cliente),identificador de directorio (inquilino),id. de suscripción y un secreto de cliente o certificado.
- En Azure DevOps, vaya a Configuración> del proyectoConexiones de servicio>Nueva conexión> de servicio deAzure Resource Manager>Service Principal (manual).
- Escriba los detalles proporcionados por el administrador y guarde la conexión.
Para obtener más información, consulte Crear una conexión de servicio de Azure Resource Manager con una entidad de servicio existente.
No se pueden eliminar las conexiones de servicio
Al intentar eliminar una conexión de servicio de Azure Resource Manager, es posible que reciba un error como "No se pudo quitar el permiso de Azure" o "No se pudo quitar la entidad de servicio de Microsoft Entra ID". En algunos casos, la conexión permanece en la lista aunque no se muestre ningún error.
Para solucionar este problema:
Seleccione la conexión de servicio y seleccione Eliminar. Aunque aparezcan mensajes de error sobre los permisos de Azure o la entidad de servicio, la conexión todavía debe quitarse de Azure DevOps.
Si se produce un error en la eliminación, use la API REST de punto de conexión de servicio para eliminarla directamente. Establezca el
deepparámetro enfalsepara omitir la limpieza de la entidad de servicio subyacente:DELETE https://dev.azure.com/{organization}/{project}/_apis/serviceendpoint/endpoints/{endpointId}?deep=false&api-version=7.1Después de eliminar la conexión, quite o actualice manualmente la entidad de servicio asociada de Registros de aplicaciones en el portal de Azure.
Uso de IA para solucionar un error de conexión del servicio Azure DevOps
Este ejemplo de solicitud para el Chat de Copilot ayuda a Copilot a solucionar el código de error y el mensaje. Copie y pegue este mensaje en El chat de Copilot, reemplazando el marcador de posición por su mensaje de error específico.
I'm getting this Azure DevOps service connection error: [PASTE YOUR ERROR MESSAGE HERE]
Can you help me troubleshoot this issue? Please provide step-by-step instructions to:
1. Identify the root cause
2. Fix the configuration in Azure or Entra ID
3. Verify the solution works
Context: This is for an Azure Resource Manager service connection in Azure DevOps.