Dela via


Felsöka Azure Automation-problem med hanterad identitet

I den här artikeln beskrivs lösningar på problem som kan uppstå när du använder en hanterad identitet med ditt Automation-konto. Allmän information om hur du använder hanterad identitet med Automation-konton finns i Översikt över Azure Automation-kontoautentisering.

Scenario: Runbook med systemtilldelad hanterad identitet misslyckas med felmeddelandet 400

Problem

Runbook med systemtilldelad hanterad identitet misslyckas med felet som unable to acquire for tenant organizations with error ManagedIdentityCredential authentication failed. Managed System Identity not found! Status 400 (Bad Request)

Orsak

Du har inte tilldelat behörigheter när du har skapat den systemtilldelade hanterade identiteten.

Åtgärd

Se till att tilldela lämpliga behörigheter för systemtilldelad hanterad identitet. Använda en systemtilldelad hanterad identitet för ett Azure Automation-konto

Scenario: Hanterad identitet i en Runbook kan inte autentisera mot Azure

Problem

När du använder en hanterad identitet i din runbook får du ett felmeddelande som: 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)

Orsak

Detta kan inträffa antingen när:

  • Orsak 1: Du använder Automation-kontot Systemhanterad identitet, som ännu inte har skapats och försöker autentisera Code Connect-AzAccount -Identity till Azure och köra en runbook i Azure eller på en Hybrid Runbook Worker.

  • Orsak 2: Automation-kontot har en tilldelad användarhanterad identitet och inte en systemhanterad identitet och – Code Connect-AzAccount -Identity försöker autentisera till Azure och köra en runbook på en virtuell Azure-dator Hybrid Runbook Worker med hjälp av Azure VM System Managed Identity.

Åtgärd

  • Lösning 1: Du måste skapa automationskontots systemhanterade identitet och ge den åtkomst till Azure-resurserna.

  • Lösning 2: Efter behov kan du:

    • Skapa automationskontots systemhanterade identitet och använd den för att autentisera.
      Eller
    • Ta bort den tilldelade hanterade identiteten för Automation-kontot.

Scenario: Det går inte att hitta den användartilldelade hanterade identiteten för att lägga till den i Automation-kontot

Problem

Du vill lägga till en användartilldelad hanterad identitet till Automation-kontot. Du kan dock inte hitta kontot på Automation-bladet.

Orsak

Det här problemet uppstår när du inte har följande behörigheter för den användartilldelade hanterade identiteten att visa den på Automation-bladet.

  • Microsoft.ManagedIdentity/userAssignedIdentities/*/read
  • Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action

Kommentar

Ovanstående behörigheter beviljas som standard till Hanterad identitetsoperatör och Hanterad identitetsdeltagare.

Åtgärd

Se till att du har behörighet som identitetsoperator för att lägga till den användartilldelade hanterade identiteten i ditt Automation-konto.

Scenario: Runbook misslyckas med "this. Client.SubscriptionId får inte vara null." felmeddelande

Problem

Din runbook med hjälp av en hanterad identitet Connect-AzAccount -Identity som försöker hantera Azure-objekt, misslyckas med att fungera och loggar följande fel – 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

Orsak

Detta kan inträffa när den hanterade identiteten (eller något annat konto som används i runbooken) inte har beviljats några behörigheter för att komma åt prenumerationen.

Åtgärd

Ge den hanterade identiteten (eller annat konto som används i runbooken) ett lämpligt rollmedlemskap i prenumerationen. Läs mer

 Skärmbild som visar tilldelningen av Azure-rolltilldelningar.

Skärmbild som visar hur du lägger till rolltilldelning.

Scenario: Det gick inte att hämta MSI-token för kontot

Problem

När du arbetar med en användartilldelad hanterad identitet i ditt Automation-konto får du ett fel som liknar: Failed to get MSI token for account a123456b-1234-12a3-123a-aa123456aa0b.

Orsak

Använda en användartilldelad hanterad identitet innan du aktiverar en systemtilldelad hanterad identitet för ditt Automation-konto.

Åtgärd

Aktivera en systemtilldelad hanterad identitet för ditt Automation-konto. Använd sedan den användartilldelade hanterade identiteten.

Scenario: Försök att använda hanterad identitet med Automation-konto misslyckas

Problem

När du försöker arbeta med hanterade identiteter i ditt Automation-konto får du ett felmeddelande som liknar detta:

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

Orsak

Den vanligaste orsaken till detta är att du inte aktiverade identiteten innan du försökte använda den. Kontrollera detta genom att köra följande PowerShell-runbook i det berörda Automation-kontot.

$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"
}

Om problemet är att du inte aktiverade identiteten innan du försökte använda den bör du se ett resultat som liknar detta:

Request Failed with Status: 400, Message: {"Message":"No managed identity was found for Automation account xxxxxxxxxxxx"}

Åtgärd

Du måste aktivera en identitet för ditt Automation-konto innan du kan använda den hanterade identitetstjänsten. Se Aktivera en hanterad identitet för ditt Azure Automation-konto

Nästa steg

Om den här artikeln inte löser problemet kan du prova någon av följande kanaler för ytterligare support:

  • Få svar från Azure-experter via Azure-forum.
  • Anslut med @AzureSupport. Det här är det officiella Microsoft Azure-kontot för att ansluta Azure-communityn till rätt resurser: svar, support och experter.
  • Skapa en Azure-supportincident. Gå till Azure-supportwebbplatsen och välj Hämta support.