Azure SDK for .NET身份验证 - 在哪里保留生成的服务主体?

问题描述 投票:0回答:1

我正在尝试了解如何在开发和生产期间使用Azure进行身份验证。

为了开发,我按照这里的说明:documentation

我现在有一个Azure SDK用于身份验证的文件和环境变量。

但是对于生产我不知道把这个文件放在哪里。在这种情况下,生产本身就是一组使用Azure SDK的Azure功能。在文档中,服务主体存储在C:\上。

我应该放弃环境变量,而是将服务主体文件放在我的src目录中(并将其从提交中排除),然后确保将文件复制到输出中,以便它可用于开发和生产吗?

var credentials = SdkContext.AzureCredentialsFactory
        .FromFile("service-principle.json"); // same dir as the Azure Function DLLs
c# azure azure-functions azure-sdk-.net azure-functions-core-tools
1个回答
1
投票

正如Thomas所说,您可以在Azure门户中的Azure功能appsetting中添加该设置。

然后您可以使用以下命令获取凭据。如何使用azure功能appsettings,请参阅此document

注意:添加后需要保存设置。然后我们可以使用SdkContext.AzureCredentialsFactory.FromServicePrincipal(clientId, clientSecret, tenantId, environment: AzureEnvironment.AzureGlobalCloud);获取凭据。

以下是演示代码。

var clientId = Environment.GetEnvironmentVariable("clientId");
var clientSecret = Environment.GetEnvironmentVariable("clientSecret");
var tenantId = Environment.GetEnvironmentVariable("tenantId");
var credentials = SdkContext.AzureCredentialsFactory.FromServicePrincipal(clientId, clientSecret, tenantId, environment: AzureEnvironment.AzureGlobalCloud);

如果您仍想这样做,建议不要将Credentials文件发布到azure函数。您可以使用Azure功能kudu工具。并且Azure功能D:\ home是共享的,您可以将service-principle.json上传到您想要的文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.