Запросы Azure Log Analytics из приложения C # - PullRequest
0 голосов
/ 24 декабря 2018

Последние несколько дней я пытаюсь запросить пользовательские журналы из Azure Log Analytics.Я следовал учебному пособию, предоставленному Microsoft от https://dev.int.loganalytics.io/documentation/1-Tutorials/Direct-API, но продолжаю получать 403. Я предоставил все разрешения в рабочей области своему приложению Azure Azure Application permissions on the ALA Workspace Вот простой код приложения, которым я являюсьиспользую для запроса ALA Workspace

static async Task Main(string[] args)
    {

        String tenantId = "??????????????????????????????????";
        String applicationId = "??????????????????????????????????";";
        String applictionSecretKey = "??????????????????????????????????";;
        String token;

        using (var client = new HttpClient())
        {
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            Dictionary<String, String> requestData = new Dictionary<String, String>();
            requestData.Add("grant_type", "client_credentials");
            requestData.Add("client_id", applicationId);
            requestData.Add("client_secret", applictionSecretKey);
            requestData.Add("resource", "https://api.loganalytics.io/");
            FormUrlEncodedContent requestBody = new FormUrlEncodedContent(requestData);

            var request = await client.PostAsync($"https://login.microsoftonline.com/{tenantId}/oauth2/token", requestBody);
            var response = await request.Content.ReadAsStringAsync();
            token = JsonConvert.DeserializeObject<dynamic>(response).access_token;

        }

        String workspaceId = "??????????????????????????????????";;

        String query = JsonConvert.SerializeObject(new
        {
            query = "ApplicationLog_CL | take 10",
            timespan = "PT12H"
        });
        using (var client = new HttpClient())
        {
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);

            var postContent = new StringContent(query, Encoding.UTF8, "application/json");
            var response = await client.PostAsync($"https://api.loganalytics.io/v1/workspaces/{workspaceId}/query", postContent);

            HttpContent responseContent = response.Content;
            var content = await response.Content.ReadAsStringAsync();

            Console.WriteLine(content);

        }



        Console.ReadKey();
    }

Я продолжаю получать ответ 403 от ALA API.Любая подсказка, что мне здесь не хватает?

1 Ответ

0 голосов
/ 25 декабря 2018

Согласно предоставленному вами учебнику , я тестирую на своем сайте, и он работает очень хорошо.

Вот несколько способов устранения неполадок.

1. Когдавы add role в Access control, вы можете добавить зарегистрированное приложение AAD с именем AIDemoApp как учебник.

enter image description here

и Log AnalyticsРазрешение API добавлено в AAD.enter image description here

2. Измените new MediaTypeWithQualityHeaderValue("application/json") на new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded").

3.После добавления разрешения в зарегистрированном приложении в AAD нажмите Grant Permission.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...