
Ich erstelle ein PowerShell-Skript, um Metriken von Azure abzurufen. Ich habe eine App-Registrierung mit API-Berechtigung für Insights-UserMetric.Read.All (Anwendungstyp). Außerdem ist dieser App auf Abonnementebene die Rolle „Monitoring Reader“ zugewiesen. Beim Ausführen eines Skripts erhalte ich die folgende Fehlermeldung:
{ "error": { "code": "AuthenticationFailed", "message": "Authentication failed." } }
Ich habe versucht, die Rolle auf Mitwirkender zu erhöhen, nur um zu prüfen, ob ich nicht über ausreichende Berechtigungen verfüge, aber selbst mit der Rolle Mitwirkender erhalte ich denselben Fehler
Hier ist das Skript:
$ClientId = 'someClientId'
$ClientSecret = 'someClientSecret'
$Tenantid = 'someTenantId'
$TokenBody = @{
Grant_Type = "client_credentials"
Scope = "https://graph.microsoft.com/.default"
Client_Id = $ClientId
Client_Secret = $ClientSecret
}
$TokenResponse = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$Tenantid/oauth2/v2.0/token" -Method POST -Body $TokenBody
$Headers = @{
"Authorization" = "Bearer $($tokenResponse.access_token)"
"Content-type" = "application/json"
}
$Uri = 'https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.EventHub/namespaces/$eventHub/providers/Microsoft.Insights/metrics?api-version=2018-01-01'
Invoke-RestMethod -Headers $Headers -Uri $Uri -Method GET
Ich bin für jede Art von Anleitung dankbar
Antwort1
Problem gelöst. Token-Teil behoben:
$TokenBody = @{
Grant_Type = "client_credentials"
Scope = "https://management.azure.com/.default"
Client_Id = $ClientId
Client_Secret = $ClientSecret
Tenant_Id = $TenantId
}