无法授权 Azure LogAnalytics 工作区
Unable to authorize Azure LogAnalytics Workspace
我正在尝试连接到我在 Azure 门户中的工作区。我收到错误
Operation returned an invalid status code 'Unauthorized'.
creds 对象已获取身份验证令牌,并且我已将资源权限添加到我的应用程序中,如此 link
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();
}
}
}
Operation returned an invalid status code 'Unauthorized'.
根据报错信息和您提供的代码,您需要在Azure AD中注册的应用程序中添加权限。
注意:如果你想给应用程序添加权限你需要成为管理员,然后你可以使用ClientId
和 ClientSecret
获取身份验证令牌并读取日志分析。
但是,如果您不是管理员,您可以将权限委托给用户并使用用户名和密码访问 Azure AD。
要获取用户的身份验证令牌,您可以使用函数 UserTokenProvider.LoginSilentAsync(nativeClientAppClientid, domainName, userName, password).GetAwaiter().GetResult()
来获取我们的凭据。
Operation returned an invalid status code 'Unauthorized'.
creds 对象已获取身份验证令牌,并且我已将资源权限添加到我的应用程序中,如此 link
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();
}
}
}
Operation returned an invalid status code 'Unauthorized'.
根据报错信息和您提供的代码,您需要在Azure AD中注册的应用程序中添加权限。
注意:如果你想给应用程序添加权限你需要成为管理员,然后你可以使用ClientId
和 ClientSecret
获取身份验证令牌并读取日志分析。
但是,如果您不是管理员,您可以将权限委托给用户并使用用户名和密码访问 Azure AD。
要获取用户的身份验证令牌,您可以使用函数 UserTokenProvider.LoginSilentAsync(nativeClientAppClientid, domainName, userName, password).GetAwaiter().GetResult()
来获取我们的凭据。