Risolvere i problemi relativi a una connessione al servizio identità del carico di lavoro di Azure Resource Manager
Ottenere assistenza per il debug dei problemi comuni relativi alle connessioni al servizio identità del carico di lavoro. Si apprenderà anche come creare manualmente una connessione al servizio, se necessario.
Elenco di controllo per la risoluzione dei problemi
Usare l'elenco di controllo seguente per risolvere i problemi relativi alle connessioni al servizio identità del carico di lavoro:
- Esaminare le attività della pipeline per assicurarsi che supportino l'identità del carico di lavoro.
- Verificare che la federazione dell'identità del carico di lavoro sia attiva per il tenant.
- Controllare l'URL dell'autorità di certificazione e l'oggetto della federazione per verificare l'accuratezza.
Le sezioni seguenti descrivono i problemi e come risolverli.
Esaminare le attività della pipeline
Non tutte le attività delle pipeline supportano l'identità del carico di lavoro. In particolare, solo le proprietà di connessione del servizio Azure Resource Manager nelle attività usano la federazione delle identità del carico di lavoro. La tabella seguente elenca il supporto della federazione delle identità del carico di lavoro per le attività incluse in Azure DevOps. Per le attività installate dal Marketplace, contattare l'editore dell'estensione per ottenere supporto.
Attività | Supporto della federazione delle identità del carico di lavoro |
---|---|
AutomatedAnalysis@0 | Y |
AzureAppServiceManage@0 | Y |
AzureAppServiceSettings@1 | Y |
AzureCLI@1 | Y |
AzureCLI@2 | Y |
AzureCloudPowerShellDeployment@1 | Usare AzureCloudPowerShellDeployment@2 |
AzureCloudPowerShellDeployment@2 | Y |
AzureContainerApps@0 | Y |
AzureContainerApps@1 | Y |
AzureFileCopy@1 | Usare AzureFileCopy@6 |
AzureFileCopy@2 | Usare AzureFileCopy@6 |
AzureFileCopy@3 | Usare AzureFileCopy@6 |
AzureFileCopy@4 | Usare AzureFileCopy@6 |
AzureFileCopy@5 | Usare AzureFileCopy@6 |
AzureFileCopy@6 | Y |
AzureFunctionApp@1 | Y |
AzureFunctionApp@2 | Y |
AzureFunctionAppContainer@1 | Y |
AzureFunctionOnKubernetes@0 | Usare AzureFunctionOnKubernetes@1 |
AzureFunctionOnKubernetes@1 | Y |
AzureIoTEdge@2 | Y |
AzureKeyVault@1 | Y |
AzureKeyVault@2 | Y |
AzureMonitor@0 | Usare 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 | Connessione al servizio di Azure: Y Connessione al servizio Registro Docker: N |
Docker@2 | Y |
DockerCompose@0 | Y |
DockerCompose@1 | Y |
DotNetCoreCLI@2 | Y |
HelmDeploy@0 | Connessione al servizio di Azure: Y |
HelmDeploy@1 | Connessione al servizio di Azure: Y |
InvokeRESTAPI@1 | Y |
JavaToolInstaller@0 | Y |
JenkinsDownloadArtifacts@1 | Y |
Kubernetes@0 | Usare Kubernetes@1 |
Kubernetes@1 | Y |
KubernetesManifest@0 | Usare KubernetesManifest@1 |
KubernetesManifest@1 | Y |
Maven@4 | Y |
Notation@0 | Y |
PackerBuild@0 | Usare PackerBuild@1 |
PackerBuild@1 | Y |
PublishToAzureServiceBus@1 | Usare PublishToAzureServiceBus@2 con la connessione al servizio di Azure |
PublishToAzureServiceBus@2 | Y |
ServiceFabricComposeDeploy@0 | N |
ServiceFabricDeploy@1 | N |
SqlAzureDacpacDeployment@1 | Y |
VSTest@3 | Y |
Verificare che la federazione dell'identità del carico di lavoro sia attiva
Se vengono visualizzati messaggi di errore AADSTS700223 o AADSTS700238, la federazione dell'identità del carico di lavoro è stata disabilitata nel tenant di Microsoft Entra.
Verificare che non siano presenti criteri di Microsoft Entra che bloccano le credenziali federate.
Controllare l'URL dell'autorità di certificazione per verificare l'accuratezza
Se viene visualizzato un messaggio che indica che non è stato trovato alcun record di identità federato corrispondente, l'URL dell'autorità di certificazione o l'oggetto della federazione non corrisponde. L'URL dell'emittente corretto inizia con https://vstoken.dev.azure.com
.
È possibile correggere l'URL dell'emittente modificando e salvando la connessione al servizio per aggiornare l'URL dell'emittente. Se Azure DevOps non ha creato l'identità, l'URL dell'emittente deve essere aggiornato manualmente. Per le identità di Azure, l'URL dell'emittente viene aggiornato automaticamente.
Problemi comuni
Le sezioni successive identificano i problemi comuni e descrivono le cause e le soluzioni.
Non dispongono delle autorizzazioni per creare un'entità servizio nel tenant di Microsoft Entra
Non è possibile usare lo strumento di configurazione della connessione al servizio Azure DevOps se non si dispone delle autorizzazioni corrette. Il livello di autorizzazione non è sufficiente per usare lo strumento se non si dispone delle autorizzazioni per creare entità servizio o se si usa un tenant di Microsoft Entra diverso rispetto all'utente di Azure DevOps.
È necessario disporre delle autorizzazioni in Microsoft Entra ID per creare registrazioni app o avere un ruolo appropriato (ad esempio, sviluppatore di applicazioni).
Per risolvere il problema sono disponibili due opzioni:
- Soluzione 1: Configurare manualmente l'identità del carico di lavoro usando l'autenticazione dell'identità gestita
- Soluzione 2: configurare manualmente l'identità del carico di lavoro usando l'autenticazione di registrazione dell'app
Messaggi di errore
La tabella seguente identifica i messaggi di errore comuni e i problemi che potrebbero generarli:
Message | Possibile problema |
---|---|
non può richiedere il token: Get ?audience=api://AzureADTokenExchange: unsupported protocol scheme |
L'attività non supporta la federazione delle identità del carico di lavoro. |
Identità non trovata | L'attività non supporta la federazione delle identità del carico di lavoro. |
Non è stato possibile recuperare il token di accesso per Azure | L'attività non supporta la federazione delle identità del carico di lavoro. |
AADSTS700016: l'applicazione con identificatore '*' non è stata trovata | L'identità usata per la connessione al servizio non esiste più, potrebbe essere stata rimossa dalla connessione al servizio o configurata in modo non corretto. Se si configura manualmente la connessione al servizio con un'identità creata in modo preliminare, assicurarsi che sia appID /clientId configurato correttamente. |
AADSTS7000215: segreto client non valido specificato. | Si sta usando una connessione al servizio con un segreto scaduto. Convertire la connessione al servizio nella federazione dell'identità del carico di lavoro e sostituire il segreto scaduto con le credenziali federate. |
AADSTS700024: l'asserzione client non rientra nell'intervallo di tempo valido | Se l'errore si verifica dopo circa 1 ora, usare invece una connessione al servizio con la federazione dell'identità del carico di lavoro e un'identità gestita. I token di identità gestita hanno una durata di circa 24 ore. Se l'errore si verifica prima di 1 ora ma dopo 10 minuti, spostare i comandi che richiedono (in modo implicito) un token di accesso, ad esempio accedere ad Archiviazione di Azure all'inizio dello script. Il token di accesso verrà memorizzato nella cache per i comandi successivi. |
AADSTS70021: nessun record di identità federato corrispondente trovato per l'asserzione presentata. Autorità di certificazione dell'asserzione: https://app.vstoken.visualstudio.com . |
Non è stata creata alcuna credenziale federata o l'URL dell'autorità di certificazione non è corretto. L'URL dell'autorità emittente corretta ha il formato https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX . È possibile correggere l'URL dell'autorità di certificazione modificando e quindi salvando una connessione al servizio. Se Azure DevOps non ha creato l'identità, è necessario aggiornare manualmente l'autorità emittente. È possibile trovare l'autorità emittente corretta nella finestra di dialogo di modifica della connessione al servizio o nella risposta (in parametri di autorizzazione) se si usa l'API REST. |
AADSTS70021: nessun record di identità federato corrispondente trovato per l'asserzione presentata. Autorità di certificazione dell'asserzione: https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX . Oggetto asserzione: sc://<org>/<project>/<service-connection>. |
L'URL dell'autorità di certificazione o l'oggetto della federazione non corrisponde. L'organizzazione o il progetto di Azure DevOps è stato rinominato o è stata rinominata una connessione al servizio creata manualmente senza aggiornare l'oggetto della federazione nell'identità. |
AADSTS700211: nessun record di identità federato corrispondente trovato per l'autorità emittente dell'asserzione presentata | Non è stata creata alcuna credenziale federata o l'URL dell'autorità di certificazione non è corretto. |
AADSTS700213: nessun record di identità federato corrispondente trovato per l'oggetto dell'asserzione presentato | Non è stata creata alcuna credenziale federata o l'oggetto non è corretto. |
AADSTS700223 | La federazione dell'identità del carico di lavoro è vincolata o disabilitata nel tenant di Microsoft Entra. In questo scenario può essere invece possibile usare un'identità gestita per la federazione. Per altre informazioni, vedere identità dei carichi di lavoro con identità gestita. |
AADSTS70025: l'applicazione client non ha credenziali di identità federate configurate | Assicurarsi che le credenziali federate siano configurate nella registrazione dell'app o nell'identità gestita. |
Microsoft Entra ha rifiutato il token rilasciato da Azure DevOps con codice di errore AADSTS700238 | La federazione dell'identità del carico di lavoro è stata vincolata nel tenant di Microsoft Entra. L'autorità di certificazione per l'organizzazione (https://vstoken.dev.azure.com/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX ) non è autorizzata a usare la federazione delle identità del carico di lavoro. Chiedere all'amministratore tenant o al team di amministrazione di Microsoft Entra di consentire la federazione delle identità del carico di lavoro per l'organizzazione Azure DevOps. |
AADSTS900382: Il client riservato non è supportato in Cross Cloud | Alcuni cloud sovrani bloccano la federazione dell'identità del carico di lavoro. |
Impossibile ottenere il token JSON Web (JWT) usando l'ID client dell'entità servizio | Le credenziali dell'identità federativa non sono configurate correttamente o il tenant di Microsoft Entra blocca OpenID Connect (OIDC). |
Script non riuscito con errore: UnrecognizedArgumentError: argomenti non riconosciuti: --federated-token | Si usa un'attività AzureCLI in un agente con una versione precedente dell'interfaccia della riga di comando di Azure installata. La federazione dell'identità del carico di lavoro richiede l'interfaccia della riga di comando di Azure 2.30 o versione successiva. |
Impossibile creare un'app in Microsoft Entra ID. Errore: privilegi insufficienti per completare l'operazione in Microsoft Graph. Assicurarsi che l'utente disponga delle autorizzazioni per creare un'applicazione Microsoft Entra. | La possibilità di creare registrazioni dell'app è stata disabilitata nel tenant di Microsoft Entra. Assegnare all'utente che sta creando la connessione al servizio il ruolo Application Developer Microsoft Entra. In alternativa, creare manualmente la connessione al servizio usando un'identità gestita. Per altre informazioni, vedere identità dei carichi di lavoro con identità gestita. |
L'errore AADSTS non è elencato in precedenza? Controllare i codici di errore di autenticazione e autorizzazione di Microsoft Entra.