Fehlerbehebung bei einer Azure Resource Manager Workload-Identitätsdienstverbindung
Hier erhalten Sie Hilfe bei der Behebung häufiger Probleme mit Workload-Identitätsdienstverbindungen. Sie erfahren auch, wie Sie bei Bedarf manuell eine Dienstverbindung herstellen können.
Checkliste zur Problembehandlung
Verwenden Sie die folgende Checkliste zur Fehlerbehebung bei Problemen mit Workload-Identitätsdienstverbindungen:
- Überprüfen Sie Pipeline-Aufgaben, um sicherzustellen, dass sie die Workload-Identität unterstützen.
- Überprüfen Sie, ob der Workload-Identitätsverbund für den Mandanten aktiv ist.
- Überprüfen Sie die URL des Ausstellers und den Betreff des Verbunds auf ihre Richtigkeit.
In den folgenden Abschnitten werden die Probleme und ihre Behebung beschrieben.
Pipelineaufgaben überprüfen
Nicht alle Pipelineaufgaben unterstützen die Workloadidentität. Genau genommen verwenden nur Azure Resource Manager-Dienstverbindungseigenschaften für Aufgaben den Workloadidentitätsverbund. In der folgenden Tabelle ist die Unterstützung des Workloadidentitätsverbunds für in Azure DevOps enthaltene Aufgaben aufgeführt. Um Unterstützung bei Aufgaben zu erhalten, die über den Marketplace installiert wurden, wenden Sie sich an den Erweiterungsherausgeber.
Aufgabe | Unterstützung des Workloadidentitätsverbunds |
---|---|
AutomatedAnalysis@0 | Y |
AzureAppServiceManage@0 | Y |
AzureAppServiceSettings@1 | Y |
AzureCLI@1 | Y |
AzureCLI@2 | Y |
AzureCloudPowerShellDeployment@1 | Verwenden Sie AzureCloudPowerShellDeployment@2 |
AzureCloudPowerShellDeployment@2 | Y |
AzureContainerApps@0 | Y |
AzureContainerApps@1 | Y |
AzureFileCopy@1 | Verwenden Sie AzureFileCopy@6 |
AzureFileCopy@2 | Verwenden Sie AzureFileCopy@6 |
AzureFileCopy@3 | Verwenden Sie AzureFileCopy@6 |
AzureFileCopy@4 | Verwenden Sie AzureFileCopy@6 |
AzureFileCopy@5 | Verwenden Sie AzureFileCopy@6 |
AzureFileCopy@6 | Y |
AzureFunctionApp@1 | Y |
AzureFunctionApp@2 | Y |
AzureFunctionAppContainer@1 | Y |
AzureFunctionOnKubernetes@0 | Verwenden Sie AzureFunctionOnKubernetes@1 |
AzureFunctionOnKubernetes@1 | Y |
AzureIoTEdge@2 | Y |
AzureKeyVault@1 | Y |
AzureKeyVault@2 | Y |
AzureMonitor@0 | Verwenden Sie 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 | Azure-Dienstverbindung: Y Dienstverbindung für Docker-Registrierung: N |
Docker@2 | Y |
DockerCompose@0 | Y |
DockerCompose@1 | Y |
DotNetCoreCLI@2 | Y |
HelmDeploy@0 | Azure-Dienstverbindung: Y |
HelmDeploy@1 | Azure-Dienstverbindung: Y |
InvokeRESTAPI@1 | Y |
JavaToolInstaller@0 | Y |
JenkinsDownloadArtifacts@1 | Y |
Kubernetes@0 | Verwenden Sie Kubernetes@1 |
Kubernetes@1 | Y |
KubernetesManifest@0 | Verwenden Sie KubernetesManifest@1 |
KubernetesManifest@1 | Y |
Maven@4 | Y |
Notation@0 | Y |
PackerBuild@0 | Verwenden von PackerBuild@1 |
PackerBuild@1 | Y |
PublishToAzureServiceBus@1 | Verwenden von PublishToAzureServiceBus@2 mit Azure-Dienstverbindung |
PublishToAzureServiceBus@2 | Y |
ServiceFabricComposeDeploy@0 | N |
ServiceFabricDeploy@1 | N |
SqlAzureDacpacDeployment@1 | Y |
VSTest@3 | Y |
Überprüfen Sie, ob der Identitätsverbund für die Workload aktiv ist
Wenn Sie die Fehlermeldungen AADSTS700223 oder AADSTS700238 sehen, wurde der Identitätsverbund in Ihrem Microsoft Entra-Tenant deaktiviert.
Stellen Sie sicher, dass keine Microsoft Entra-Richtlinien vorhanden sind, die Partneranmeldedaten blockieren.
Überprüfen der Aussteller-URL auf Genauigkeit
Wenn Sie die Meldung no matching federated identity record found sehen, stimmt entweder die Aussteller-URL oder der Verbundgegenstand nicht überein. Die korrekte URL des Ausstellers beginnt mit https://vstoken.dev.azure.com
.
Sie können die Aussteller-URL korrigieren, indem Sie die Dienstverbindung bearbeiten und speichern, um die Aussteller-URL zu aktualisieren. Wenn Azure DevOps die Identität nicht erstellt hat, muss die Ausstellungs-URL manuell aktualisiert werden. Für Azure-Identitäten wird die Aussteller-URL automatisch aktualisiert.
Häufige Probleme
In den folgenden Abschnitten werden häufige Probleme aufgezeigt sowie Ursachen und Lösungen beschrieben.
Ich habe keine Berechtigung, einen Dienstprinzipal im Microsoft Entra-Tenant zu erstellen
Sie können das Azure DevOps-Dienstverbindungskonfigurationstool nicht verwenden, wenn Sie nicht über die richtigen Berechtigungen verfügen. Ihre Berechtigungsstufe reicht nicht aus, um das Tool zu verwenden, wenn Sie entweder keine Berechtigung zum Erstellen von Service Principals haben oder wenn Sie einen anderen Microsoft Entra-Tenant als Ihr Azure DevOps-Benutzer verwenden.
Sie müssen entweder über die Berechtigung in Microsoft Entra ID verfügen, App-Registrierungen zu erstellen, oder eine entsprechende Rolle haben (z. B. Anwendungsentwickler).
Sie haben zwei Möglichkeiten, das Problem zu lösen:
- Lösung 1: Manuelle Konfiguration der Workload-Identität mithilfe der verwalteten Identitätsauthentifizierung
- Lösung 2: Manuelles Konfigurieren der Workloadidentität mithilfe der App-Registrierungsauthentifizierung
Fehlermeldungen
In der folgenden Tabelle sind häufige Fehlermeldungen und die Probleme aufgeführt, die sie verursachen können:
`Message` | Mögliches Problem |
---|---|
Token kann nicht angefordert werden: ?audience=api://AzureADTokenExchange: unsupported protocol scheme abrufen |
Die Aufgabe unterstützt nicht den Workload-Identitätsverbund. |
Identität nicht gefunden | Die Aufgabe unterstützt nicht den Workload-Identitätsverbund. |
Zugriffstoken für Azure konnte nicht abgerufen werden | Die Aufgabe unterstützt nicht den Workload-Identitätsverbund. |
AADSTS700016: Die Anwendung mit der Kennung '****' wurde nicht gefunden | Die Identität, die für die Dienstverbindung verwendet wird, existiert nicht mehr oder sie wurde möglicherweise aus der Dienstverbindung entfernt oder ist falsch konfiguriert. Wenn Sie die Dienstverbindung manuell mit einer vordefinierten Identität konfigurieren, stellen Sie sicher, dass die appID /clientId ordnungsgemäß konfiguriert ist. |
AADSTS7000215: Ungültiger geheimer Clientschlüssel angegeben. | Sie verwenden eine Dienstverbindung, deren Geheimnis abgelaufen ist. Konvertieren Sie die Dienstverbindung in Workload-Identitätsverbund und ersetzen Sie das abgelaufene Geheimnis durch Verbundanmeldeinformationen. |
AADSTS700024: Die Clientassertion liegt nicht innerhalb des gültigen Zeitbereichs | Wenn der Fehler nach etwa 1 Stunde auftritt, verwenden Sie stattdessen eine Dienstverbindung mit einem Workload-Identitätsverbund und einer verwalteten Identität. Verwaltete Identitätstoken haben eine Lebensdauer von ca. 24 Stunden. Wenn der Fehler nach 10 Minuten aber eher als nach 1 Stunde auftritt, verschieben Sie Befehle, die z. B. für den Zugriff auf Azure Storage (implizit) ein Zugriffstoken erfordern, an den Anfang Ihres Skripts. Das Zugriffstoken wird für nachfolgende Befehle zwischengespeichert. |
AADSTS70021: Für die dargestellte Assertion wurde kein übereinstimmender Verbundidentitätsdatensatz gefunden. Assertionaussteller: https://app.vstoken.visualstudio.com . |
Es wurden keine Verbundanmeldeinformationen erstellt, oder die Aussteller-URL ist nicht korrekt. Die korrekte URL des Ausstellers hat das Format https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX . Sie können die Aussteller-URL korrigieren, indem Sie eine Dienstverbindung bearbeiten und dann speichern. Wenn Azure DevOps Ihre Identität nicht erstellt hat, müssen Sie den Aussteller manuell aktualisieren. Sie finden den richtigen Aussteller im Bearbeitungsdialog der Serviceverbindung oder in der Antwort (unter Autorisierungsparameter), wenn Sie die REST-API verwenden. |
AADSTS70021: Für die dargestellte Assertion wurde kein übereinstimmender Verbundidentitätsdatensatz gefunden. Assertionaussteller: https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX . Assertionantragssteller: sc://<org>/<project>/<service-connection>. |
Entweder stimmt die URL des Ausstellers oder der Betreff der Föderation nicht überein. Die Azure DevOps-Organisation oder das Azure DevOps-Projekt wurde umbenannt oder eine manuell erstellte Dienstverbindung wurde umbenannt, ohne dass das Verbundobjekt der Identität aktualisiert wurde. |
AADSTS700211: Für den angezeigten Assertionsaussteller wurde kein übereinstimmender Verbundidentitätsdatensatz gefunden | Es wurden keine Verbundanmeldeinformationen erstellt, oder die Aussteller-URL ist nicht korrekt. |
AADSTS700213: Für den angezeigten Assertionbetreff wurde kein übereinstimmender Verbundidentitätsdatensatz gefunden | Es wurden keine Verbundanmeldeinformationen erstellt, oder der Betreff ist nicht korrekt. |
AADSTS700223 | Der Workloadidentitätsverbund ist für den Microsoft Entra-Mandanten eingeschränkt oder deaktiviert. In diesem Szenario ist kann es möglich sein, stattdessen eine verwaltete Identität für den Verbund zu verwenden. Weitere Informationen finden Sie unter Workload-Identität mit verwalteter Identität. |
AADSTS70025: Für die Clientanwendung sind keine Anmeldeinformationen für Verbundidentitäten konfiguriert | Stellen Sie sicher, dass Verbundanmeldeinformationen für die App-Registrierung oder die verwaltete Identität konfiguriert sind. |
Microsoft Entra hat das von Azure DevOps ausgestellte Token mit Fehlercode AADSTS700238 abgelehnt | Der Workloadidentitätsverbund wurde für den Microsoft Entra-Mandanten eingeschränkt. Der Aussteller für Ihre Organisation (https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX ) darf keinen Workload-Identitätsverbund verwenden. Bitten Sie Ihren Microsoft Entra-Tenant-Administrator oder Ihr Administrationsteam, den Workload-Identitätsverbund für Ihre Azure DevOps-Organisation zuzulassen. |
AADSTS900382: Vertrauliche Clients werden in Cross Cloud nicht unterstützt. | Einige Sovereign Clouds blockieren den Workloadidentitätsverbund. |
Abrufen des JSON-Web-Tokens (JWT) unter Verwendung der Client-ID des Dienstprinzipals fehlgeschlagen | Ihre Federation-Identitätsnachweise sind falsch konfiguriert oder der Microsoft Entra-Tenant blockiert OpenID Connect (OIDC). |
Fehler beim Skript: UnrecognizedArgumentError: nicht erkannte Argumente: --federated-token | Sie verwenden eine AzureCLI-Aufgabe auf einem Agenten, auf dem eine frühere Version von Azure CLI installiert ist. Für den Workload-Identitätsverbund ist Azure CLI 2.30 oder höher erforderlich. |
Fehler beim Erstellen einer App in Microsoft Entra ID. Fehler: Unzureichende Berechtigungen zum Abschließen des Vorgangs in Microsoft Graph. Stellen Sie sicher, dass die Benutzer*innen über Berechtigungen zum Erstellen einer Microsoft Entra-Anwendung verfügen. | Die Möglichkeit, App-Registrierungen zu erstellen, wurde im Microsoft Entra-Tenant deaktiviert. Weisen Sie dem Benutzer, der die Dienstverbindung erstellt, die Rolle Application Developer Microsoft Entra zu. Alternativ können Sie die Dienstverbindung auch manuell mit einer verwalteten Identität erstellen. Weitere Informationen finden Sie unter Workload-Identität mit verwalteter Identität. |
Wird der AADSTS-Fehler, den Sie sehen, oben nicht aufgeführt? Weitere Informationen finden Sie unter Microsoft Entra Authentifizierungs- und Autorisierungsfehlercodes.