2017-03-23 2 views
1

지금까지 X-Api-Key 헤더로 메트릭을 가져 오기 위해 Application Insights REST API를 성공적으로 사용했습니다. https://api.applicationinsights.io/beta/apps/xxxxxxxxxx/metrics/customMetrics%2FmetricName?timespan=PT2H&interval=PT20M&aggregation=minApplication Insights에서 인증 AAD가 포함 된 REST API

그러나 우리의 새로운 대시 보드에서는 몇 가지 메트릭을 크롤링하여 1500 요청/api 키 제한을 엄호했습니다.

일부 API 키를 여러 개 사용하는 것이 좋지만이 접근 방식을 방지하고 싶습니다.

문서에 따르면, 일일 한도 (https://dev.applicationinsights.io/documentation/Authorization/Rate-limits)

을 제거 할 AAD 인증하지만 (nodejs에,하지만 난 그게 어떤 언어에서 같은 용의자) AAD 인증에 실패 내가 사용

간단한 앱 adal-node, 나는 성공적으로 토큰을 얻을 그러나 나는 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

에게 전달 할 수 아니에요 6,

내가 오류 메시지가 The provided authentication is not valid for this resource The given API Key is not valid for the requested resource

다음 받고 있어요 나는 우리가 직접 우리의 REST API의 AAD를 지원하지 않습니다 :

+0

안녕하세요.이 솔루션을 찾으셨습니까? –

+0

현재로서는 아닙니다. 필자는 설명서에 설명 된 powershell 명령 (아래 답변 참조)을 사용하는 방법에 대해 다소 당황 스럽습니다. 당분간 나는 일련의 apikeys로 바람을 피고있다. ( – camous

답변

1

뭔가를 그리워 생각한다. 귀하의 리소스는 Azure Resource Manager에 의해 관리되며, 특정 사용자 만이 리소스에 액세스 할 수 있음을 확인할 수 있습니다. API 키는 사용자 컨텍스트가 아닌 리소스에 직접 권한을 단락시키는 우리의 방법입니다.

사용자는이 AAD 앱에이 리소스에 대한 액세스 권한을 부여 했으므로 인증은 여전히 ​​사용자의 컨텍스트에 있습니다.

문서가 여기에 링크 된 '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'- 명시 적으로 설명 아니지만 : 호출 대신 ARM을 만들 수있다 https://dev.applicationinsights.io/documentation/Authorization

이렇게하면 더 높은 속도 제한을 얻고, 여전히 같은 응답을 반환합니다 REST API.

+0

아! 나는이 문서 페이지를 완전히 놓쳤다 (나는 단지 섹션 헤더 일 뿐이라고 생각했다 ...)하지만 나는 뭔가를 놓치고 있다는 것을 알았다. 최대한 빨리 시험해보십시오 – camous

+0

설명서는 Connect-ARM 및 Execute-ARMQuery에 대한 참조로 여기에서 이해하고 (2 년 후부터 유지되지는 않습니다) 올바른지 확인하십시오. – camous