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.

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

 Screenshot che mostra l'assegnazione di assegnazioni di ruolo di Azure.

Screenshot che mostra come aggiungere un'assegnazione di ruolo.

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.