Problemen met beheerde identiteit van Azure Automation oplossen

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

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 fout als 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.

Oplossing

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

Scenario: Beheerde identiteit in een runbook kan niet worden geverifieerd met 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 door het Automation-accountsysteem beheerde identiteit, die nog niet is gemaakt en probeert Code Connect-AzAccount -Identity te verifiëren bij Azure en een runbook uit te voeren in Azure of op een Hybrid Runbook Worker.

  • Oorzaak 2: Aan het Automation-account is een door de gebruiker beheerde identiteit toegewezen en niet aan een door het systeem beheerde identiteit en de - Code Connect-AzAccount -Identity wordt geprobeerd om te verifiëren bij Azure en een runbook uit te voeren op een Hybrid Runbook Worker van een virtuele Azure-machine met behulp van de beheerde identiteit van het Azure-VM-systeem.

Oplossing

  • Oplossing 1: U moet de beheerde identiteit van het Automation-accountsysteem maken en deze 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 op de blade Automation.

Oorzaak

Dit probleem treedt op wanneer u niet beschikt over de volgende machtigingen voor de door de gebruiker toegewezen beheerde identiteit om deze te bekijken op de blade Automation.

  • 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.

Oplossing

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

Scenario: Runbook mislukt met 'dit. Client.SubscriptionId kan niet null zijn." foutbericht

Probleem

Uw runbook met behulp van een beheerde identiteit Verbinding maken-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.

Oplossing

Verleen de beheerde identiteit (of een ander account dat in het runbook wordt gebruikt) een geschikt rollidmaatschap 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.

Oplossing

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

Oplossing

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:

  • Krijg antwoorden van Azure-experts via Azure-forums.
  • Verbinding maken met @AzureSupport. Dit is het officiële Microsoft Azure-account voor het verbinden van de Azure-community met de juiste resources: antwoorden, ondersteuning en experts.
  • Dien een ondersteuning voor Azure incident in. Ga naar de ondersteuning voor Azure site en selecteer Ondersteuning krijgen.