无法授权 Azure LogAnalytics 工作区

http://img1.mukewang.com/6187b8b20001980f14580641.jpg

我正在尝试连接到 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();

        }

    }

}


森栏
浏览 186回答 1
1回答

元芳怎么了

操作返回了无效的状态代码“未授权”。根据错误信息和提供的代码,需要在Azure AD中注册的应用程序中添加权限。注意:如果您想为应用程序添加权限,您需要成为 admin,然后您可以使用ClientId和ClientSecret获取身份验证令牌并读取日志分析。但是,如果您不是 admin,则可以将权限委派给用户并使用用户名和密码访问 Azure AD。要获取用户的身份验证令牌,您可以使用该函数UserTokenProvider.LoginSilentAsync(nativeClientAppClientid, domainName, userName, password).GetAwaiter().GetResult()获取我们的凭据。
打开App,查看更多内容
随时随地看视频慕课网APP