Я использовал формат Public API для аутентификации с помощью AppId и ApiKey.
Совсем недавно мне пришлось пройти проверку подлинности в Azure Active Directory, чтобы запросить сведения о приложении.
Как я понял, чтение этого , когда я использую Azure Active Directory, мне нужно использовать management.azure.com
. Из того, что я узнал из этого , мне нужно составить ссылку:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/components/{componentName}/query/query?api-version={apiVersion}&query={newQuery}
Если я правильно понимаю, странная /query/query
часть состоит в том, как я долженинтерпретировать /{area}/[path]
.
Мой запрос выглядит примерно так:
requests
| where name =~ '{itemName}'
| where timestamp > datetime('{referenceDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff")}')
| project timestamp, id, name, success, customDimensions
| order by timestamp desc
| take 5
Я удаляю разрывы строк: -)
Я вызываю API следующим образом:
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
var response = client.GetAsync(url).Result;
Но я получаю неверный запрос.
Мне нужно получить запрос Application Insights с аутентификацией AAD (что я уже решил, так как без строки с Auth или с неверным значением я получаю Unauthorized),При регистрации приложения в Azure Active Directory мне не было предоставлено никаких вариантов добавления разрешений, кроме Data.Read - при использовании Post (код, отличный от представленного) я получил «Метод не разрешен».
Пожалуйста, сообщите.
Редактировать
Я попытался выполнить тот же запрос в Почтальоне.
{
"error": {
"message": "The request had some invalid properties",
"code": "BadArgumentError",
"innererror": {
"code": "SemanticError",
"message": "A semantic error occurred.",
"innererror": {
"code": "SEM0100",
"message": "'' operator: Failed to resolve table or column or scalar expression named 'requests'"
}
}
}
}
Даже когда я сократил параметр query
до requests
. Поэтому я не знаю, как передать запрос в вызове GET API.