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.
- Maak de beheerde identiteit van het Automation-accountsysteem en gebruik deze om te verifiëren.
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 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.
Oplossing
Verleen de beheerde identiteit (of een ander account dat in het runbook wordt gebruikt) een geschikt rollidmaatschap in het abonnement. Meer informatie
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.
- Maak verbinding 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.