8

我的理解是,为了在 Azure 中实现对 SQL 数据库的 Azure AD 托管服务标识访问,我需要SqlConnection使用检索到的令牌创建一个。

要将该令牌添加到SqlConnection.NET 4.6+ 中有一个AccessToken属性来执行此操作。.NET Core 2.0 没有。

有没有办法解决?

在这一点上,在核心应用程序中实现 Azure AD 托管服务标识似乎是不可能的,除非我有误解。

4

4 回答 4

3

从 SqlClient 包 4.6.0 开始,SqlConnection现在支持AccessToken.NET SqlClientCore 2.2。

https://www.nuget.org/packages/System.Data.SqlClient/

于 2018-10-23T00:06:27.237 回答
2

一种解决方法是将连接字符串存储在 Azure Key Vault 中,然后实施 MSI 以从 Key Vault 中检索它。

于 2018-01-31T16:58:08.163 回答
0

它现在是 2020 年 6 月,并且正在使用 .NET 5.0 preview 4。但仍然不支持在 Blazor Asp.NET Core 中基于 AccessToken 连接到 SqlConnection。

Azure SQL 数据库中的连接字符串部分说要在连接字符串中使用“用户 ID”,身份验证 =“Active Directory Interactive”,但在 .NET EF Core 中,我们收到错误,即无法使用 AD Integrated 或 AD Interactive 设置用户 ID。另一种方法是使用 Azure Vault。

我们更喜欢在连接字符串和 AccessToken 中使用动态用户 ID(来自 AAD 可显示 ID)。这会在 .NET 5 最终版本之前得到支持吗?

于 2020-06-22T17:08:41.617 回答
0

要使用托管标识访问 Sql,您需要使用.NET Framework 4.6或更高版本或.NET Core 2.2或更高版本。

你可以在这里找到完整的教程:

于 2021-08-21T23:29:00.423 回答