【发布时间】:2021-06-09 15:32:18
【问题描述】:
是否可以通过托管标识在本地(或在管道中)访问 Azure 应用程序配置,而无需将任何其他服务部署到 Azure?
我有一个 .net 核心单元测试项目,它针对实时站点运行一些集成测试。为了将各种设置、机密等排除在源代码之外,我想我也许可以使用 Azure 应用程序配置。
我正在阅读本指南,但它似乎是针对访问应用配置的应用服务https://docs.microsoft.com/en-us/azure/azure-app-configuration/howto-integrate-azure-managed-service-identity?tabs=core2x
我已启用系统分配的托管标识
[]1]
我正在尝试使用以下代码:
var builder = new ConfigurationBuilder();
builder.AddAzureAppConfiguration(options =>
{
options.Connect(new Uri("https://sauitest-config.azconfig.io"), new DefaultAzureCredential())
.Select(KeyFilter.Any, "TestLocal");
});
不幸的是,这会返回一个403 (Forbidden)。注意我以管理员身份登录到 Visual Studio,使用的凭据与我用于访问门户的凭据相同。显然DefaultAzureCredential 应该在本地和天蓝色环境中都可以工作。
我错过了什么吗?
【问题讨论】:
-
把
.Select(KeyFilter.Any, "TestLocal")去掉有用吗?您所做的应该是正确的 -DefaultAzureCredential尝试使用多种方法,包括托管身份,首先,回退到可用于本地开发的浏览器身份验证。 -
不幸的是没有任何区别。我登录到 Visual Studio 的用户是对应用程序配置资源(从资源组继承)具有“贡献者”访问权限的组的一部分。你觉得这就够了吗?
-
要使用 VS 登录用户进行身份验证,请直接在代码中尝试
VisualStudioCredential()而不是DefaultAzureCredential()。 Besdies,无法使用 MSI(托管标识)在本地访问应用程序配置。
标签: c# azure azure-app-configuration