Risolvere i problemi relativi all'identità gestita di Automazione di Azure
Questo articolo illustra le soluzioni ai problemi che possono verificarsi quando si usa un'identità gestita con un account di Automazione di Azure. Per informazioni generali sull'uso dell'identità gestita con gli account di automazione, vedere Panoramica sull'autenticazione dell'account di Automazione di Azure.
Scenario: Il runbook con identità gestita assegnata dal sistema ha esito negativo e viene visualizzato un messaggio di errore 400
Problema
Il runbook con identità gestita assegnata dal sistema ha esito negativo e viene visualizzato l'errore unable to acquire for tenant organizations with error ManagedIdentityCredential authentication failed. Managed System Identity not found! Status 400 (Bad Request)
Causa
Non sono state assegnate autorizzazioni dopo aver creato l'identità gestita assegnata dal sistema.
Risoluzione
Assicurarsi di assegnare le autorizzazioni appropriate per l'identità gestita assegnata dal sistema. Uso di un'identità gestita assegnata dal sistema per un account di Automazione di Azure
Scenario: L'identità gestita in un runbook non può eseguire l'autenticazione in Azure
Problema
Quando si usa un'identità gestita nel runbook, viene visualizzato un errore come: connect-azaccount : ManagedIdentityCredential authentication failed: Failed to get MSI token for account d94c0db6-5540-438c-9eb3-aa20e02e1226 and resource https://management.core.windows.net/. Status: 500 (Internal Server Error)
Causa
Questa situazione può verificarsi quando:
Causa 1: Si usa l'identità gestita del sistema dell'account di Automazione che non è ancora stata creata e
Code Connect-AzAccount -Identity
tenta di eseguire l'autenticazione in Azure ed eseguire un runbook in Azure o in un ruolo di lavoro ibrido per runbook.Causa 2: L'account di Automazione ha un'identità gestita dall'utente assegnata e non un'identità gestita del sistema e
Code Connect-AzAccount -Identity
tenta di eseguire l'autenticazione in Azure ed eseguire un runbook in un ruolo di lavoro ibrido per runbook di una macchina virtuale di Azure usando l'identità gestita del sistema di macchine virtuali di Azure.
Risoluzione
Risoluzione 1: È necessario creare l'identità gestita del sistema dell'account di Automazione e concedergli l'accesso alle risorse di Azure.
Risoluzione 2: In base alle esigenze, è possibile:
- Creare l'identità gestita del sistema di account di Automazione e usarla per l'autenticazione.
o - Eliminare l'identità gestita assegnata dall'account di Automazione.
- Creare l'identità gestita del sistema di account di Automazione e usarla per l'autenticazione.
Scenario: Impossibile trovare l'identità gestita assegnata dall'utente per aggiungerla all'account di Automazione
Problema
Si vuole aggiungere un'identità gestita assegnata dall'utente all'account di Automazione. Tuttavia, non è possibile trovare l'account nel pannello Automazione.
Causa
Questo problema si verifica quando non si dispone delle seguenti autorizzazioni per visualizzare l'identità gestita assegnata dall'utente nel pannello Automazione.
Microsoft.ManagedIdentity/userAssignedIdentities/*/read
Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action
Nota
Le autorizzazioni precedenti vengono concesse per impostazione predefinita a Operatore identità gestita e Collaboratore identità gestita.
Risoluzione
Assicurarsi di disporre dell'autorizzazione del ruolo operatore identità per aggiungere l'identità gestita assegnata dall'utente all'account di Automazione.
Scenario: Il runbook ha esito negativo con il messaggio di errore "this.Client.SubscriptionId non può essere Null"
Problema
Il runbook usa un'identità gestita Connect-AzAccount -Identity che prova a gestire gli oggetti di Azure, ma non funziona correttamente e registra l'errore - this.Client.SubscriptionId cannot be null.
get-azvm : 'this.Client.SubscriptionId' cannot be null. At line:5 char:1 + get-azvm + ~~~~~~~~ + CategoryInfo : CloseError: (:) [Get-AzVM], ValidationException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Compute.GetAzureVMCommand
Causa
Questo errore può verificarsi quando all'Identità gestita (o a un altro account usato nel runbook) non sono state concesse autorizzazioni per accedere alla sottoscrizione.
Risoluzione
Concedere all'identità gestita (o a un altro account usato nel runbook) un'appartenenza al ruolo appropriata nella sottoscrizione. Ulteriori informazioni
Scenario: Impossibile ottenere token MSI per l'account
Problema
Quando si usa un'identità gestita assegnata dall'utente nell'account di Automazione, viene visualizzato un errore simile al seguente: Failed to get MSI token for account a123456b-1234-12a3-123a-aa123456aa0b
.
Causa
Uso di un'identità gestita assegnata dall'utente prima di abilitare un'identità gestita assegnata dal sistema per l'account di Automazione.
Risoluzione
Abilitare identità gestite assegnate dal sistema con un account di Automazione. Quindi usare l'identità gestita assegnata dall'utente.
Scenario: Il tentativo di usare l'identità gestita con l'account di Automazione non riesce
Problema
Quando si prova a usare le identità gestite nell'account di Automazione, viene visualizzato un errore simile al seguente:
Connect-AzureRMAccount : An error occurred while sending the request. At line:2 char:1 + Connect-AzureRMAccount -Identity +
CategoryInfo : CloseError: (:) [Connect-AzureRmAccount], HttpRequestException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Profile.ConnectAzureRmAccountCommand
Causa
La causa più comune è che l'identità non è stata abilitata prima di provare a usarla. Per verificarlo, eseguire il seguente runbook di PowerShell nell'account di Automazione interessato.
$resource= "?resource=https://management.azure.com/"
$url = $env:IDENTITY_ENDPOINT + $resource
$Headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$Headers.Add("X-IDENTITY-HEADER", $env:IDENTITY_HEADER)
$Headers.Add("Metadata", "True")
try
{
$Response = Invoke-RestMethod -Uri $url -Method 'GET' -Headers $Headers
}
catch
{
$StatusCode = $_.Exception.Response.StatusCode.value__
$stream = $_.Exception.Response.GetResponseStream()
$reader = New-Object System.IO.StreamReader($stream)
$responseBody = $reader.ReadToEnd()
Write-Output "Request Failed with Status: $StatusCode, Message: $responseBody"
}
Se il problema è che l'identità non è stata abilitata prima di provare a usarla, verrà visualizzato un risultato simile al seguente:
Request Failed with Status: 400, Message: {"Message":"No managed identity was found for Automation account xxxxxxxxxxxx"}
Risoluzione
È necessario abilitare un'identità per l'account di Automazione prima di poter usare il servizio di gestione delle identità. Vedere Abilitare un'identità gestita per l'account di Automazione di Azure
Passaggi successivi
Se questo articolo non risolve il problema, usare uno dei canali seguenti per ottenere ulteriore assistenza:
- Ottenere risposte dagli esperti di Azure tramite i forum di Azure.
- Contattare @AzureSupport. l'account Microsoft Azure ufficiale che mette in contatto la community di Azure con le risorse corrette: risposte, supporto ed esperti.
- Archiviare un incidente del supporto tecnico di Azure. Accedere al sito del supporto tecnico di Azure e selezionare Supporto tecnico.