Problemen met Azure Automation beheerde identiteit oplossen

In dit artikel worden oplossingen besproken voor problemen die kunnen optreden wanneer u een beheerde identiteit gebruikt met uw Automation-account. Voor algemene informatie over het gebruik van beheerde identiteiten met Automation-accounts, zie Azure Automation-accountverificatatieoverzicht.

Scenario: Runbook met door het systeem toegewezen beheerde identiteit mislukt met 400 foutbericht

Probleem

Runbook met door het systeem toegewezen beheerde identiteit mislukt met de foutmelding unable to acquire for tenant organizations with error ManagedIdentityCredential authentication failed. Managed System Identity not found! Status 400 (Bad Request)

Oorzaak

U hebt geen machtigingen toegewezen nadat u de door het systeem toegewezen beheerde identiteit hebt gemaakt.

Resolutie

Zorg ervoor dat u de juiste machtigingen toewijst voor door het systeem toegewezen beheerde identiteit. Gebruiker een door het systeem toegewezen beheerde identiteit voor een Azure Automation-account

Scenario: Beheerde identiteit in een runbook kan zich niet authentiseren bij Azure

Probleem

Wanneer u een beheerde identiteit in uw runbook gebruikt, krijgt u een foutmelding als: 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)

Oorzaak

Dit kan gebeuren wanneer:

  • Oorzaak 1: U gebruikt de Systeem Beheerde Identiteit van het Automation-account, die nog niet is gemaakt en de Code Connect-AzAccount -Identity probeert te authenticeren bij Azure en een runbook uit te voeren in Azure of op een Hybrid Runbook Worker.

  • Cause 2: Het Automation-account heeft een door de gebruiker beheerde identiteit toegewezen en geen door het systeem beheerde identiteit en de - Code Connect-AzAccount -Identity probeert te verifiëren bij Azure en een runbook uit te voeren op een Azure virtuele machine Hybrid Runbook Worker met behulp van de beheerde identiteit van het Azure VM-systeem.

Resolutie

  • Resolution 1: U moet de beheerde identiteit van het Automation-accountsysteem maken en toegang verlenen tot de Azure-resources.

  • Oplossing 2: Indien van toepassing op uw vereisten, kunt u het volgende doen:

    • Maak de beheerde identiteit van het Automation-accountsysteem en gebruik deze om te verifiëren.
      Of
    • Verwijder de door de gebruiker toegewezen beheerde identiteit van het Automation-account.

Scenario: Kan de door de gebruiker toegewezen beheerde identiteit niet vinden om deze toe te voegen aan het Automation-account

Probleem

U wilt een door de gebruiker toegewezen beheerde identiteit toevoegen aan het Automation-account. U kunt het account echter niet vinden in de Automation-blade.

Oorzaak

Dit probleem treedt op wanneer u niet beschikt over de volgende machtigingen voor een door gebruiker toegewezen beheerde identiteit om deze in het automatiseringspaneel te bekijken.

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

Notitie

De bovenstaande machtigingen worden standaard verleend aan Managed Identity Operator en Inzender voor beheerde identiteiten.

Resolutie

Zorg ervoor dat u de rol Identity Operator hebt om de door de gebruiker toegewezen beheerde identiteit aan uw Automation-account toe te voegen.

Scenario: Runbook mislukt met de foutmelding "this.Client.SubscriptionId kan niet null zijn."

Probleem

Uw runbook met behulp van een beheerde identiteit Connect-AzAccount -Identity die probeert Azure objecten te beheren, werkt niet goed en registreert de volgende fout - 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

Oorzaak

Dit kan gebeuren wanneer aan de beheerde identiteit (of een ander account dat in het runbook wordt gebruikt) geen machtigingen zijn verleend voor toegang tot het abonnement.

Resolutie

Verleen de beheerde identiteit (of een ander account dat in het runbook wordt gebruikt) een passende rol in het abonnement. Meer informatie

 Schermopname van het toewijzen van Azure Roltoewijzingen.

Schermopname van het toevoegen van roltoewijzing.

Scenario: Kan geen MSI-token ophalen voor account

Probleem

Wanneer u werkt met een door de gebruiker toegewezen beheerde identiteit in uw Automation-account, krijgt u een foutmelding die vergelijkbaar is met: Failed to get MSI token for account a123456b-1234-12a3-123a-aa123456aa0b.

Oorzaak

Gebruik een door de gebruiker toegewezen beheerde identiteit voordat u een door het systeem toegewezen beheerde identiteit inschakelt voor uw Automation-account.

Resolutie

Schakel een door het systeem toegewezen beheerde identiteit in voor uw Automation-account. Gebruik dan de door de gebruiker toegewezen beheerde identiteit.

Scenario: Poging om beheerde identiteit te gebruiken met Automation-account mislukt

Probleem

Wanneer u probeert te werken met beheerde identiteiten in uw Automation-account, treedt er een fout op als volgt:

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

Oorzaak

De meest voorkomende oorzaak hiervoor is dat u de identiteit niet hebt ingeschakeld voordat u deze probeert te gebruiken. Voer het volgende PowerShell-runbook uit in het betreffende Automation-account om dit te controleren.

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

Als het probleem is dat u de identiteit niet hebt ingeschakeld voordat u deze probeert te gebruiken, ziet u een resultaat dat er ongeveer als volgt uit ziet:

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

Resolutie

U moet een identiteit voor uw Automation-account inschakelen voordat u de beheerde identiteitsservice kunt gebruiken. Zie Een beheerde identiteit inschakelen voor uw Azure Automation-account

Volgende stappen

Als dit artikel uw probleem niet oplost, kunt u een van de volgende kanalen proberen voor aanvullende ondersteuning: