2017-03-23 1 views
1

Bisher habe ich erfolgreich Application Insights REST API zum Abrufen von Metriken mit X-API-Key-Header verwendet. https://api.applicationinsights.io/beta/apps/xxxxxxxxxx/metrics/customMetrics%2FmetricName?timespan=PT2H&interval=PT20M&aggregation=minAuthenticate on Application Insights REST-API mit AAD

Allerdings haben wir mit unserem neuen Dashboard, das mehrere Metriken durchforstet, die Obergrenze von 1500 Request/API-Schlüsseln erreicht.

Einige schlagen vor, mit mehreren API-Schlüsseln herumzuspielen, aber ich möchte diesen Ansatz verhindern.

Dokumentation nach, authentifizieren mit AAD die tägliche Kappe (https://dev.applicationinsights.io/documentation/Authorization/Rate-limits)

aber ich kann nicht mit AAD (in NodeJS, aber ich vermute, es ist das gleiche in jeder Sprache) authentifizieren würde entfernen

I verwendet adal-node mit einem einfachen app, ich ein Token erfolgreich bekommen, aber ich bin es uns auf die Request

var context = new AuthenticationContext(authorityUrl); 

context.acquireTokenWithClientCredentials(resource, clientId, clientSecret, function(err, tokenResponse) { 
    if (err) { 
    console.log('well that didn\'t work: ' + err.stack); 
    } else { 
    console.log(tokenResponse); 

    request({'url' : 'https://api.applicationinsights.io/beta/apps/xxxxxxxxx/metrics/customMetrics%2Fmetrics?timespan=PT2H&interval=PT20M&aggregation=min', 
    headers: { 
      'Authorization': 'Bearer ' + tokenResponse.accessToken 
     } 
    }, function (error,response,body){ 
      console.log(body); 
    }); 
    } 
}); 

enter image description here

nicht in der Lage

ich folgende Fehlermeldung bekommen The provided authentication is not valid for this resource The given API Key is not valid for the requested resource

Ich vermute, ich etwas vermissen :)

+0

Hallo, hast du eine Lösung dafür gefunden? –

+0

Nicht zur gegenwärtigen Zeit bin ich etwas perplex darüber, wie die Powershell-Befehle (siehe unten) in der Dokumentation beschrieben werden. Vorläufig betrüge ich mit einer Reihe von apikeys :( – camous

Antwort

1

Wir nicht direkt AAD in unserer REST-API unterstützen. Ihre Ressource wird vom Azure-Ressourcenmanager verwaltet, und nur sie kann überprüfen, ob ein bestimmter Benutzer Zugriff auf diese Ressource hat. API Keys sind unsere Möglichkeit, die Autorisierung direkt an eine Ressource anstatt im Benutzerkontext kurzzuschließen.

Sie gaben dieser AAD-App Zugriff auf diese Ressource als Sie selbst, sodass die Authentifizierung immer noch im Kontext eines Benutzers erfolgt. Der Anruf muss gemacht werden, anstatt auf ARM: ‚https://management.azure.com/subscriptions/xxxxxx/resourcegroups/xxxxx/providers/microsoft.insights/components/xxxxx/api/metrics/customMetrics%2Fmetrics?api-version=2014-12-01-preview&timespan=PT2H&interval=PT20M&aggregation=min

Dokumentation hier verknüpft ist - wenn auch nicht explizit erklärt: https://dev.applicationinsights.io/documentation/Authorization

Diese erhalten Ihnen ein höheres Rate-Limit, und immer noch die gleiche Antwort wie die Rückkehr REST-API

+0

Ah! Ich habe diese Dokumentationsseite total vermisst (ich dachte, es wäre nur ein Abschnitt Header ...) Aber ich wusste, dass ich etwas verpasst habe! Ich werde versuchen Sie es so schnell wie möglich – camous

+0

Die Dokumentation beziehen sich auf Connect-ARM & Execute-ARMQuery, die von meinem Verständnis kommt von hier (https://github.com/dushyantgill/AzureResourceManagerPowerShell) und nicht seit 2 Jahren gepflegt. Ist es richtig? – camous

Verwandte Themen