Не удалось авторизовать Azure LogAnalytics Workspace

введите здесь описание изображения Я пытаюсь подключиться к своей рабочей области на портале Azure. Я получаю сообщение об ошибке

Операция вернула неверный код статуса «Не авторизован».

Объект creds получил токен аутентификации, и я добавил права доступа к своему приложению, как указано в этом ссылка

using System;
using Microsoft.Azure.OperationalInsights;
using Microsoft.Rest.Azure.Authentication;

namespace LogAnalytics
{
    class Program
    {
        static void Main(string[] args)
        {
            var workspaceId = "**myworkspaceId**";
            var clientId = "**myClientId**";

            var clientSecret = "**myClientSecret**";
            //<your AAD domain>
            var domain = "**myDomain**";
            var authEndpoint = "https://login.microsoftonline.com";
            var tokenAudience = "https://api.loganalytics.io/";

            var adSettings = new ActiveDirectoryServiceSettings
            {
                AuthenticationEndpoint = new Uri(authEndpoint),
                TokenAudience = new Uri(tokenAudience),
                ValidateAuthority = true
            };

            var creds = ApplicationTokenProvider.LoginSilentAsync(domain,clientId, clientSecret, 
                strong textadSettings).GetAwaiter().GetResult();            

            var client = new OperationalInsightsDataClient(creds);
            client.WorkspaceId = workspaceId;

            //Error happens below
            var results = client.Query("union * | take 5");

            Console.WriteLine(results);
            Console.ReadLine();
        }
    }
}

person Harshith Reddy    schedule 31.07.2018    source источник
comment
Вы добавили разрешение в Access control (IAM) в своей рабочей области?   -  person Joy Wang    schedule 31.07.2018
comment
Да, приложение с указанными выше ClientId и ClientSecret добавляется к ресурсу с ролью LogAnalyticsReader.   -  person Harshith Reddy    schedule 31.07.2018


Ответы (1)


Операция вернула недопустимый код статуса «Не авторизован».

Согласно сообщению об ошибке и предоставленному вами коду, вам необходимо добавить разрешение в ваше зарегистрированное приложение в Azure AD.

введите описание изображения здесь

Примечание. Если вы хотите добавить разрешение для приложения, вы должны быть администратором, и тогда вы можете использовать ClientId и ClientSecret для получения токена аутентификации и чтения аналитики журнала.

Однако, если вы не администратор, вы можете делегировать разрешение пользователю и доступ к Azure AD с помощью имени пользователя и пароля.

Чтобы получить токен аутентификации с пользователем, вы можете использовать функцию UserTokenProvider.LoginSilentAsync(nativeClientAppClientid, domainName, userName, password).GetAwaiter().GetResult() для получения наших учетных данных.

person Joey Cai    schedule 31.07.2018