Partekatu honen bidez:


Solucionar problemas de una conexión de servicio de identidad de carga de trabajo de Azure Resource Manager

Obtenga ayuda para resolver problemas comunes con las conexiones de servicio de identidad de carga de trabajo. También descubrirá cómo crear manualmente una conexión de servicio si es necesario.

Lista de comprobación de solución de problemas

Use la siguiente lista de comprobación para solucionar problemas con las conexiones de servicio de identidad de carga de trabajo:

  • Revise las tareas de los procesos para asegurarse de que admiten la identidad de carga de trabajo.
  • Compruebe que la federación de identidades de carga de trabajo está activa en el inquilino.
  • Compruebe la dirección URL del emisor y el sujeto de la federación para garantizar que es la correcta.

En las secciones siguientes se describen los problemas y cómo resolverlos.

Revisar tareas de canalización

No todas las tareas de canalizaciones admiten la identidad de la carga de trabajo. En concreto, solo las propiedades de conexión de servicio de Azure Resource Manager en las tareas usan la federación de identidades de carga de trabajo. En la siguiente tabla, se muestra la compatibilidad con la federación de identidades de carga de trabajo para las tareas incluidas en Azure DevOps. Para tareas instaladas desde el Marketplace, póngase en contacto con el publicador de extensiones para obtener soporte técnico.

Tarea Soporte técnico para la federación de identidades de carga de trabajo
AutomatedAnalysis@0 Y
AzureAppServiceManage@0 Y
AzureAppServiceSettings@1 Y
AzureCLI@1 Y
AzureCLI@2 Y
AzureCloudPowerShellDeployment@1 Uso de AzureCloudPowerShellDeployment@2
AzureCloudPowerShellDeployment@2 Y
AzureContainerApps@0 Y
AzureContainerApps@1 Y
AzureFileCopy@1 Uso de AzureFileCopy@6
AzureFileCopy@2 Uso de AzureFileCopy@6
AzureFileCopy@3 Uso de AzureFileCopy@6
AzureFileCopy@4 Uso de AzureFileCopy@6
AzureFileCopy@5 Uso de AzureFileCopy@6
AzureFileCopy@6 Y
AzureFunctionApp@1 Y
AzureFunctionApp@2 Y
AzureFunctionAppContainer@1 Y
AzureFunctionOnKubernetes@0 Uso de AzureFunctionOnKubernetes@1
AzureFunctionOnKubernetes@1 Y
AzureIoTEdge@2 Y
AzureKeyVault@1 Y
AzureKeyVault@2 Y
AzureMonitor@0 Uso de AzureMonitor@1
AzureMonitor@1 Y
AzureMysqlDeployment@1 Y
AzureNLBManagement@1 N
AzurePolicyCheckGate@0 Y
AzurePowerShell@2 Y
AzurePowerShell@3 Y
AzurePowerShell@4 Y
AzurePowerShell@5 Y
AzureResourceGroupDeployment@2 Y
AzureResourceManagerTemplateDeployment@3 Y
AzureRmWebAppDeployment@3 Y
AzureRmWebAppDeployment@4 Y
AzureSpringCloud@0 Y
AzureVmssDeployment@0 Y
AzureWebApp@1 Y
AzureWebAppContainer@1 Y
ContainerBuild@0 Y
ContainerStructureTest@0 Y
Docker@0 Y
Docker@1 Conexión del servicio de Azure: Y
Conexión de servicio de Registro de Docker: N
Docker@2 Y
DockerCompose@0 Y
DockerCompose@1 Y
HelmDeploy@0 Conexión del servicio de Azure: Y
HelmDeploy@1 Conexión del servicio de Azure: Y
InvokeRESTAPI@1 Y
JavaToolInstaller@0 Y
JenkinsDownloadArtifacts@1 Y
Kubernetes@0 Uso de Kubernetes@1
Kubernetes@1 Y
KubernetesManifest@0 Uso de KubernetesManifest@1
KubernetesManifest@1 Y
Notation@0 Y
PackerBuild@0 Uso de PackerBuild@1
PackerBuild@1 Y
PublishToAzureServiceBus@1 Uso de PublishToAzureServiceBus@2 con conexión de servicio de Azure
PublishToAzureServiceBus@2 Y
ServiceFabricComposeDeploy@0 N
ServiceFabricDeploy@1 N
SqlAzureDacpacDeployment@1 Y

Comprobar que la federación de identidades de carga de trabajo está activa

Si ve mensajes de error del tipo AADSTS700223 o AADSTS700238, significará que la federación de identidades de carga de trabajo se ha deshabilitado en el inquilino de Microsoft Entra.

Compruebe que no haya ninguna directiva de Microsoft Entra en su lugar que bloquee las credenciales federadas.

Comprobación de la precisión de la dirección URL del emisor

Si ve un mensaje que indica que no se ha encontrado ningún registro de identidad federado coincidente, la dirección URL del emisor o el sujeto de federación no coincidirán. La dirección URL del emisor comienza por https://vstoken.dev.azure.com.

Puede corregir la dirección URL del emisor al editar y guardar la conexión de servicio para actualizar la dirección URL del emisor. Si Azure DevOps no ha creado la identidad, la dirección URL del emisor debe actualizarse manualmente. En el caso de las identidades de Azure, la dirección URL del emisor se actualiza automáticamente.

Problemas comunes

En las secciones siguientes se exponen los problemas comunes y se describen las causas y cómo solucionarlos.

No tengo los permisos para crear una entidad de servicio en el inquilino de Microsoft Entra

No puede usar la herramienta de configuración de conexión de servicio de Azure DevOps si no tiene los permisos correctos. El nivel de permisos no es el indicado para usar la herramienta si no tiene los permisos para crear entidades de servicio o si usa un inquilino de Microsoft Entra diferente del usuario de Azure DevOps.

Debe tener los permisos en Microsoft Entra ID para crear registros de aplicaciones o tener un rol adecuado (por ejemplo, Desarrollador de aplicaciones).

Dispone de dos opciones para resolver este problema:

Uso un recurso de contenedor que indica una instancia de Azure Container Registry

Los recursos de contenedor que se extraen de Azure Container Registry todavía no admiten una federación de identidades de carga de trabajo.

Mensajes de error

En la tabla siguiente se identifican los mensajes de error comunes y los problemas que podrían generarlos:

Mensaje Posible problema
no puede solicitar token: Get ?audience=api://AzureADTokenExchange: unsupported protocol scheme La tarea no admite la federación de identidades de carga de trabajo.
No se encuentra la identidad La tarea no admite la federación de identidades de carga de trabajo.
No se pudo recuperar el token de acceso para Azure La tarea no admite la federación de identidades de carga de trabajo.
AADSTS700016: La aplicación con el identificador "" no se ha encontrado La identidad que se usa para la conexión de servicio ya no existe o puede que se haya quitado de esa conexión de servicio. En este escenario, cree una nueva conexión de servicio.
AADSTS7000215: se ha proporcionado un secreto de cliente no válido. Está usando una conexión de servicio con un secreto que ha caducado. Convierta la conexión de servicio a federación de identidades de carga de trabajo y reemplace el secreto caducado por credenciales federadas.
AADSTS700024: la aserción de cliente no está dentro de su intervalo de tiempo válido Si el error se produce después de aproximadamente 1 hora, use una conexión de servicio con la federación de identidad de carga de trabajo y una identidad administrada en su lugar. Los tokens de identidad administrada tienen una duración de aproximadamente 24 horas.
Si el error se produce antes de 1 hora pero después de 10 minutos, mueva los comandos que (implícitamente) soliciten un token de acceso, por ejemplo, acceso a Azure Storage al principio del script. El token de acceso se almacenará en caché para los comandos posteriores.
AADSTS70021: no se encontró ningún registro de identidad federado coincidente para la aserción presentada. Emisor de aserciones: https://app.vstoken.visualstudio.com. La dirección URL del emisor no es correcta. La dirección URL del emisor correcta tiene el formato https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. Para corregir la dirección URL del emisor, edite y vuelva a guardar una conexión de servicio. Si Azure DevOps no ha creado la identidad, debe actualizar el emisor manualmente. Puede encontrar el emisor correcto en el cuadro de diálogo de edición de la conexión de servicio o en la respuesta (en parámetros de autorización) si usa la API de REST.
AADSTS70021: no se encontró ningún registro de identidad federado coincidente para la aserción presentada. Emisor de aserciones: https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. Asunto de aserción: sc://<org>/<project>/<service-connection>. La dirección URL del emisor o el sujeto de federación no coinciden. Se ha cambiado el nombre de la organización o el proyecto de Azure DevOps o se ha cambiado el nombre de una conexión de servicio creada manualmente sin actualizar el sujeto de federación en la identidad.
AADSTS700211: No se encontró ningún registro de identidad federado coincidente para el emisor de la aserción presentada Una directiva de Microsoft Entra rechaza la dirección URL del emisor, el sujeto de federación o ambos.
AADSTS700223 La federación de identidades de carga de trabajo se ha restringido o deshabilitado en el inquilino de Microsoft Entra. En este caso, a menudo es posible usar en su lugar una identidad administrada para la federación. Para obtener más información, consulte Identidad de carga de trabajo con identidad administrada.
Microsoft Entra rechazó el token emitido por Azure DevOps con código de error AADSTS700238 La federación de identidades de carga de trabajo se ha restringido en el inquilino de Microsoft Entra. El emisor de la organización (https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) no puede usar la federación de identidades de carga de trabajo. Pida al administrador de inquilinos o al equipo de administración de Microsoft Entra que permita la federación de identidades de carga de trabajo en su organización de Azure DevOps.
No se ha podido obtener el elemento Json Web Token (JWT) que usa el ID de cliente de la entidad de servicio Las credenciales de identidad de federación están mal configuradas o el inquilino de Microsoft Entra bloquea OpenID Connect (OIDC).
No se pudo ejecutar el script. Error: UnrecognizedArgumentError: argumentos no reconocidos: --federated-token Está usando una tarea de la CLI de Azure en un agente que tiene instalada una versión anterior de esa CLI. Para la federación de identidades de carga de trabajo se necesita la CLI de Azure 2.30 o posterior.
No se pudo crear una aplicación en Microsoft Entra ID. Error: Privilegios insuficientes para completar la operación en Microsoft Graph. Asegúrese de que el usuario tiene permisos para crear una aplicación de Microsoft Entra. La capacidad de crear registros de aplicaciones se ha deshabilitado en el inquilino de Microsoft Entra. Asigne el usuario que vaya a crear la conexión de servicio al rol de Microsoft Entra Desarrollador de aplicaciones. Si lo prefiere, cree la conexión de servicio manualmente mediante una identidad administrada. Para obtener más información, consulte Identidad de carga de trabajo con identidad administrada.