Résoudre des problèmes de connexion au service d’identité de charge de travail Azure Resource Manager

Obtenez de l’aide pour déboguer les problèmes courants liés aux connexions de service d’identité de charge de travail. Vous apprenez également à créer manuellement une connexion de service si nécessaire.

Liste de contrôle pour la résolution des problèmes

Utilisez la liste de contrôle suivante pour résoudre les problèmes liés aux connexions de service d’identité de charge de travail :

  • Passez en revue les tâches de pipeline pour vous assurer qu’elles prennent en charge l’identité de charge de travail.
  • Vérifiez que la fédération des identités de charge de travail est active pour le locataire.
  • Vérifiez l’URL de l’émetteur et l’objet de fédération.

Les sections suivantes décrivent les problèmes et leurs solutions.

Évaluation des tâches de pipeline

Toutes les tâches de pipelines ne prennent pas en charge l’identité de charge de travail. Plus précisément, seules les propriétés de connexion de service Azure Resource Manager sur les tâches utilisent la fédération des identités de charge de travail. Le tableau ci-dessous répertorie la prise en charge de la fédération des identités de charge de travail pour les tâches incluses dans Azure DevOps. Pour les tâches installées à partir de la Place de marché, contactez l’éditeur d’extension pour une demande de support.

Tâche Prise en charge de la fédération des identités de charge de travail
AutomatedAnalysis@0 Y
AzureAppServiceManage@0 Y
AzureAppServiceSettings@1 Y
AzureCLI@1 Y
AzureCLI@2 Y
AzureCloudPowerShellDeployment@1 Utiliser AzureCloudPowerShellDeployment@2
AzureCloudPowerShellDeployment@2 Y
AzureContainerApps@0 Y
AzureContainerApps@1 Y
AzureFileCopy@1 Utiliser AzureFileCopy@6
AzureFileCopy@2 Utiliser AzureFileCopy@6
AzureFileCopy@3 Utiliser AzureFileCopy@6
AzureFileCopy@4 Utiliser AzureFileCopy@6
AzureFileCopy@5 Utiliser AzureFileCopy@6
AzureFileCopy@6 Y
AzureFunctionApp@1 Y
AzureFunctionApp@2 Y
AzureFunctionAppContainer@1 Y
AzureFunctionOnKubernetes@0 Utiliser AzureFunctionOnKubernetes@1
AzureFunctionOnKubernetes@1 Y
AzureIoTEdge@2 Y
AzureKeyVault@1 Y
AzureKeyVault@2 Y
AzureMonitor@0 Utiliser 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 Connexion de service Azure : Y
Connexion de service Docker Registry : N
Docker@2 Y
DockerCompose@0 Y
DockerCompose@1 Y
DotNetCoreCLI@2 Y
HelmDeploy@0 Connexion de service Azure : Y
HelmDeploy@1 Connexion de service Azure : Y
InvokeRESTAPI@1 Y
JavaToolInstaller@0 Y
JenkinsDownloadArtifacts@1 Y
Kubernetes@0 Utiliser Kubernetes@1
Kubernetes@1 Y
KubernetesManifest@0 Utiliser KubernetesManifest@1
KubernetesManifest@1 Y
Maven@4 Y
Notation@0 Y
PackerBuild@0 Utiliser PackerBuild@1
PackerBuild@1 Y
PublishToAzureServiceBus@1 Utiliser PublishToAzureServiceBus@2 avec la connexion au service Azure
PublishToAzureServiceBus@2 Y
ServiceFabricComposeDeploy@0 N
ServiceFabricDeploy@1 N
SqlAzureDacpacDeployment@1 Y
VSTest@3 Y

Vérifier que la fédération des identités de charge de travail est active

Si vous voyez les messages d'erreur AADSTS700223 ou AADSTS700238, cela signifie que la fédération des identités de charge de travail a été désactivée dans votre client Microsoft Entra.

Vérifiez qu'il n'existe aucune stratégie Microsoft Entra en place qui bloque les identifiants fédérés.

Vérifier l’exactitude de l’URL de l’émetteur

Si vous voyez un message indiquant qu’aucun enregistrement d’identité fédérée correspondant n’est trouvé, l’URL de l’émetteur ou l’objet de fédération ne correspond pas. L’URL de l’émetteur correcte commence par https://vstoken.dev.azure.com.

Vous pouvez corriger l’URL de l’émetteur en modifiant et en enregistrant la connexion de service pour mettre à jour l’URL de l’émetteur. Si Azure DevOps n’a pas créé l’identité, l’URL de l'émetteur doit être mise à jour manuellement. Pour les identités Azure, l’URL de l’émetteur est automatiquement mise à jour.

Problèmes courants

Les sections suivantes identifient les problèmes courants et décrivent les causes et les solutions.

Je n'ai pas l'autorisation de créer un principal de service dans le locataire Microsoft Entra

Vous ne pouvez pas utiliser l’outil de configuration de connexion de service Azure DevOps si vous ne disposez pas des autorisations appropriées. Votre niveau d’autorisation est insuffisant pour utiliser l'outil si vous n’êtes pas autorisé à créer des principaux de service ou si vous utilisez un locataire Microsoft Entra différent de votre utilisateur Azure DevOps.

Vous devez disposer d’une autorisation dans Microsoft Entra ID pour créer des inscriptions d’applications ou disposer d’un rôle approprié (par exemple, développeur d’applications).

Vous avez deux options pour résoudre le problème :

Messages d’erreur

Le tableau suivant identifie les messages d’erreur courants et les problèmes susceptibles de les générer :

Message Problème possible
impossible de demander le jeton : Get ?audience=api://AzureADTokenExchange: unsupported protocol scheme La tâche ne prend pas en charge la fédération des identités de charge de travail.
Identité introuvable La tâche ne prend pas en charge la fédération des identités de charge de travail.
Impossible de récupérer le jeton d’accès pour Azure La tâche ne prend pas en charge la fédération des identités de charge de travail.
AADSTS700016 : L'application avec l'identifiant '****' n'a pas été trouvée L’identité utilisée pour la connexion de service n’existe plus, a peut-être été supprimée de la connexion de service, ou est mal configurée. Si vous configurez la connexion de service manuellement avec une identité pré-créée, vérifiez la configuration de appID/clientId.
AADSTS7000215 : clé secrète client non valide fournie. Vous utilisez une connexion de service possédant un secret qui a expiré. Convertissez la connexion de service en fédération d’identité de charge de travail et remplacez le secret expiré par des informations d’identification fédérées.
AADSTS700024 : l’assertion du client n’est pas dans son intervalle de temps valide Si l'erreur se produit après environ 1 heure, utilisez plutôt une connexion de service avec fédération d'identité de charge de travail et une identité gérée. Les jetons d'identité gérés ont une durée de validité d'environ 24 heures.
Si l'erreur se produit entre 10 minutes et une heure plus tard, déplacez les commandes qui requièrent (implicitement) un jeton d'accès pour, par exemple, accéder au stockage Azure, au début de votre script. Le jeton d'accès sera mis en cache pour les commandes suivantes.
AADSTS70021 : aucun enregistrement d’identité fédéré correspondant n’a été trouvé pour l’assertion présentée. Émetteur d’assertion : https://app.vstoken.visualstudio.com. Aucune information d’identification fédérée n’a été créée, ou l’URL de l’émetteur est incorrecte. L’URL de l’émetteur correcte a le format https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. Vous pouvez corriger l’URL de l’émetteur en modifiant et en enregistrant une connexion de service. Si Azure DevOps n’a pas créé votre identité, vous devez mettre à jour manuellement l’émetteur. Vous pouvez trouver l’émetteur approprié dans la boîte de dialogue de modification de la connexion de service ou dans la réponse (sous paramètres d’autorisation) si vous utilisez l’API REST.
AADSTS70021 : aucun enregistrement d’identité fédéré correspondant n’a été trouvé pour l’assertion présentée. Émetteur d’assertion : https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. Objet de l’assertion : sc://<org>/<project>/<service-connection>. L’URL de l’émetteur ou l’objet de fédération ne correspond pas. Le organisation ou le projet Azure DevOps a été renommé, ou une connexion de service créée manuellement a été renommée sans mettre à jour l’objet de fédération sur l’identité.
AADSTS700211 : Aucun enregistrement d’identité fédérée correspondant trouvé pour l’émetteur de l’assertion présenté Aucun justificatif fédéré n’a été créé ou l’URL de l’émetteur n’est pas correcte.
AADSTS700213 : Aucun enregistrement d’identité fédérée correspondant trouvé pour le sujet de l’assertion présentée Aucun justificatif fédéré n’a été créé ou le sujet n’est pas correct.
AADSTS700223 La fédération d'identité de charge de travail est limitée ou désactivée sur le locataire Microsoft Entra. Dans ce scénario, il est possible d’utiliser plutôt une identité managée pour la fédération. Pour plus d’informations, consultez Identité de charge de travail avec identité managée.
AADSTS70025 : L’application cliente n’a pas de justificatifs d’identité fédérée configurés Assurez-vous que les justificatifs fédérés sont configurés sur l’enregistrement d’App ou l’identité managée.
Microsoft Entra a rejeté le jeton émis par Azure DevOps avec le code d'erreur AADSTS700238 La fédération des identités de charge de travail a été limitée ou désactivée sur le client Microsoft Entra. L'émetteur de votre organisation (https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) n'est pas autorisé à utiliser la fédération des identités de charge de travail. Demandez à votre administrateur client Microsoft Entra ou à votre équipe d’administration d’autoriser la fédération d’identités de charge de travail pour votre organisation Azure DevOps.
AADSTS900382 : Le client confidentiel n’est pas pris en charge dans Cross Cloud Certains clouds souverains bloquent la fédération d’identité de charge de travail.
Échec d’obtention du jeton web JSON (JWT) avec l’ID de client du principal de service Vos informations d’identification d’identité de fédération sont mal configurées ou le locataire Microsoft Entra bloque OpenID Connect (OIDC).
Échec du script avec l’erreur : UnrecognizedArgumentError : arguments non reconnus : --federated-token Vous utilisez une tâche AzureCLI sur un agent sur lequel une version antérieure d’Azure CLI est installée. La fédération des identités de charge de travail nécessite Azure CLI 2.30 ou version ultérieure.
Échec de la création d'une application dans Microsoft Entra ID. Erreur : Privilèges insuffisants pour terminer l’opération dans Microsoft Graph. Assurez-vous que l'utilisateur dispose des autorisations nécessaires pour créer une application Microsoft Entra. La possibilité de créer des inscriptions d’applications a été désactivée dans le locataire Microsoft Entra. Attribuez à l’utilisateur qui crée la connexion de service le rôle Développeur d’applications Microsoft Entra. Vous pouvez également créer la connexion de service manuellement en utilisant une identité managée. Pour plus d’informations, consultez Identité de charge de travail avec identité managée.

L’erreur AADSTS que vous voyez ne figure-t-elle pas dans la liste ci-dessus ? Consultez les Codes d’erreur d’authentification et d’autorisation de Microsoft Entra.