Dela via


Felsök 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 och ger felmeddelande 400

Problem

Runbook med hanterad identitet tilldelad av systemet misslyckas med följande fel 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-kontots Systemhanterad identitet, som ännu inte har skapats, och Code Connect-AzAccount -Identity försöker autentisera 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.

Beslut

  • 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 i bladet Automation.

Orsak

Problemet uppstår om du saknar följande behörigheter för den användartilldelade hanterade identiteten för att se den i Automation-bladet.

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

Kommentar

Ovanstående behörigheter beviljas som standard till Managed Identity Operator och Managed Identity Contributor.

Beslut

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

Fråga

Din runbook använder en hanterad identitet med kommandot Connect-AzAccount -Identity för att försöka hantera Azure-objekt, men den fungerar inte korrekt och följande fel loggas – 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.

Beslut

Bevilja den hanterade identiteten (eller annat konto som används i körboken) 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.
  • Anmäl ett supportärende till Azure. Gå till webbplatsen Azure Support och välj Hämta support.