【问题标题】:How to connect kusto database with C#?如何用 C# 连接 kusto 数据库?
【发布时间】:2020-08-19 18:33:19
【问题描述】:

WithAadUserPromptAuthentication 缺失,所以我不能使用 Microsoft 文档提供的示例代码? 那是 :

var serviceUri = "Service URI, typically of the form https://cluster.region.kusto.windows.net";
var authority = "contoso.com"; // Or the AAD tenant GUID: "..."

// Recommended syntax
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(serviceUri)
  .WithAadUserPromptAuthentication(authority);

// Legacy syntax
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(serviceUri)
{
    FederatedSecurity = true,
    InitialCatalog = "NetDefaultDB",
    Authority = authority,
};

// Equivalent Kusto connection string: $"Data Source={serviceUri};Database=NetDefaultDB;Fed=True;Authority Id={authority}"

是否有任何新的解决方案来代替 WithAadUserPromptAuthentication 方法?

【问题讨论】:

  • 嗨,尼基塔·博帕莱。我的回复有用吗?

标签: c# azure azure-active-directory azure-data-explorer kql


【解决方案1】:

恐怕WithAadUserPromptAuthentication 已从KustoConnectionStringBuilder 转移。 Microsoft.Azure.Kusto.Data.NETStandard(6.1.8) 和 Microsoft.Azure.Kusto.Data(8.1.5) 都不包含此方法。

您可以使用 ApplicationClientId 和 ApplicationKey 尝试此示例。或者来自here的其他方法。

var serviceUri = "Service URI, typically of the form https://cluster.region.kusto.windows.net";
var authority = "contoso.com"; // Or the AAD tenant GUID: "..."
var applicationClientId = <ApplicationClientId>;
var applicationKey = <ApplicationKey>;

// Recommended syntax
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(serviceUri)
    .WithAadApplicationKeyAuthentication(applicationClientId, applicationKey, authority);

// Legacy syntax
var kustoConnectionStringBuilder = new KustoConnectionStringBuilder(serviceUri)
{
    FederatedSecurity = true,
    InitialCatalog = "NetDefaultDB",
    ApplicationClientId = applicationClientId,
    ApplicationKey = applicationKey,
    Authority = authority,
};

// Equivalent Kusto connection string: $"Data Source={serviceUri};Database=NetDefaultDB;Fed=True;AppClientId={applicationClientId};AppKey={applicationKey};Authority Id={authority}"

【讨论】:

  • 谢谢@pamela-peng。但是 ApplicationClientId 和 applicationKey 是什么?从哪里得到?
  • 嗨,@NikitaBhopale。 ApplicationClientId 是您的应用程序在 AAD 中的应用程序 ID。 ApplicationKey 是客户端密码的值。您可以在门户中找到它们,导航到 Azure Active Directory-> 应用注册-> 您的应用-> 概述- Application (client) ID 和证书和机密- Client secrets
【解决方案2】:

Microsoft.Azure.Kusto.Data.NETStandard 已弃用且不再维护。 请使用 Microsoft.Azure.Kusto.Data 包(.Net 框架和 .Net Core 风格)。

由于使用了身份验证库 (ADAL),此方法不适用于 .Net Core,仅适用于 .Net 框架包。 .Net Core 可以使用的解决方法是通过在 KustoConnectionStringBuilder 实例上手动设置以下属性来触发用户名/密码身份验证:FederatedSecurity、UserID、Password、Authority。

我们计划发布使用下一代身份验证库 (MSAL) 构建的软件包的新版本,它将在所有平台上公开此方法(交互式用户身份验证)。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
相关资源
最近更新 更多