为了账号安全,请及时绑定邮箱和手机立即绑定

无法授权 Azure LogAnalytics 工作区

无法授权 Azure LogAnalytics 工作区

C#
森栏 2021-11-07 19:28:59
我正在尝试连接到 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();        }    }}
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

操作返回了无效的状态代码“未授权”。

根据错误信息和提供的代码,需要在Azure AD中注册的应用程序中添加权限。

//img1.sycdn.imooc.com//6187b8e700019b7115130237.jpg

注意:如果您想为应用程序添加权限,您需要成为 admin,然后您可以使用ClientIdClientSecret获取身份验证令牌并读取日志分析。

但是,如果您不是 admin,则可以将权限委派给用户并使用用户名和密码访问 Azure AD。

要获取用户的身份验证令牌,您可以使用该函数UserTokenProvider.LoginSilentAsync(nativeClientAppClientid, domainName, userName, password).GetAwaiter().GetResult()获取我们的凭据。


查看完整回答
反对 回复 2021-11-07
  • 1 回答
  • 0 关注
  • 185 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信