我正在尝试连接到 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中注册的应用程序中添加权限。
注意:如果您想为应用程序添加权限,您需要成为 admin,然后您可以使用ClientId
和ClientSecret
获取身份验证令牌并读取日志分析。
但是,如果您不是 admin,则可以将权限委派给用户并使用用户名和密码访问 Azure AD。
要获取用户的身份验证令牌,您可以使用该函数UserTokenProvider.LoginSilentAsync(nativeClientAppClientid, domainName, userName, password).GetAwaiter().GetResult()
获取我们的凭据。
- 1 回答
- 0 关注
- 185 浏览
添加回答
举报
0/150
提交
取消