【问题标题】:Connect to Azure Data Explorer Cluster via Visual studio通过 Visual Studio 连接到 Azure 数据资源管理器集群
【发布时间】:2020-12-27 17:54:23
【问题描述】:

我正在尝试连接到我从 Visual Studio 2019、.NET Core 3.1 在 azure 中创建的 kusto 集群

我正在关注此链接: https://docs.microsoft.com/en-us/azure/data-explorer/kusto/api/connection-strings/kusto

这就是我正在做的:

var azureServiceTokenProvider = new AzureServiceTokenProvider();
var accessToken = await azureServiceTokenProvider.GetAccessTokenAsync(clusterUri);
var managedIdentity = "<managed identity>";

var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(clusterUri))
                                       .WithAadManagedIdentity(managedIdentity);

但我不断收到此错误:

"异常消息:尝试了以下 3 种方法来获取访问令牌,但均无效。"

我做错了什么? 有没有简单的连接集群的方法?

【问题讨论】:

    标签: azure-data-explorer


    【解决方案1】:

    根据异常文本判断,您不是从 Kusto SDK 获得的。 您可以调试以查看代码中的哪一行引发了此错误吗? 如果您使用托管身份并且您需要的身份在您的环境中可用,则不需要前两行;您只需要托管身份 ID。

    或者,如果您希望自己执行身份验证,则需要遵循“令牌提供者”模式并使用 AzureServiceTokenProvider 的 GetAccessTokenAsync 方法:

    Func<string> tokenProviderCallback; // User-defined method to retrieve the access token
    
    // Recommended syntax
    var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(serviceUri)
        .WithAadTokenProviderAuthentication(tokenProviderCallback);
    

    【讨论】:

    • 失败的行是:“Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProvider”。不确定“在您的环境中”是什么意思。另外,关于您的第二个选项 - 如果我在我的 VS 中进行调试,我将如何在本地运行时获得令牌。我还看到它尝试以 3 种方式进行身份验证,其中一种方式是通过名为“tokenprovider.json”的“visual Studio 令牌提供程序文件”。有什么我需要做的吗
    • 这正是我想说的——您未能配置或使用令牌提供程序。 “Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProvider”行本身不会失败 - 它只是一个类型名称,因此您需要提供更多信息。
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    相关资源
    最近更新 更多