Har*_*ddy 5 c# azure azure-active-directory azure-application-insights azure-log-analytics
操作返回无效的状态代码"未授权".
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
操作返回无效状态代码“未经授权”。
根据错误消息和您提供的代码,您需要在Azure AD中注册的应用程序中添加权限。
注意:如果您想向应用程序添加权限,您需要成为 admin,然后您可以使用ClientId
和ClientSecret
来获取身份验证令牌并读取日志分析。
但是,如果您不是admin,您可以将权限委托给用户并使用用户名和密码访问 Azure AD。
要获取用户的身份验证令牌,您可以使用该函数UserTokenProvider.LoginSilentAsync(nativeClientAppClientid, domainName, userName, password).GetAwaiter().GetResult()
来获取我们的凭据。
归档时间: |
|
查看次数: |
275 次 |
最近记录: |