首页 > 解决方案 > 使用 Azure Function 和 Azure Key Vault 生成客户端证书

问题描述

我必须在 Azure Key Vault 中存储根证书。这一步我觉得很好。

下一步是一个 Azure 函数,我应该从中创建一些具有特殊 ID 的客户端证书和来自 Key Vault 的根证书。但我不知道该怎么做。

有人可以帮助我使用 Azure 功能以及如何在那里创建客户端证书吗?函数应该用 .NET 编写。在网上,我几乎找到了 Powershell Skripts,但这对我没有帮助。如果有人能够帮助我,那就太好了。

非常感谢。

标签: c#.netazureazure-functionsazure-keyvault

解决方案


这是我从Jeff Hollinger的这篇文章中得到的一个观点。这是您在函数中需要的一些示例代码:

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;

namespace KeyVault
{
    public static class MyFunctionClass
    {
        private static string superSecret = System.Environment.GetEnvironmentVariable("SuperSecret");

        [FunctionName("MyFunction")]
        public static void Run([EventHubTrigger("eventhub", Connection = "EventHubConnectionString")]string myEventHubMessage, ILogger log)
        {
            // DISCLAIMER: Never log secrets. Just a demo :)
            log.LogInformation($"Shhhhh.. it's a secret: {superSecret}");
        }
    }
}

听起来您已经在 Key Vault 中拥有您的秘密,因此您所缺少的就是将您的 Key Vault 引用添加到您的函数的应用程序设置中。这是来自 Microsoft Azure-Functions-Key-Vault文档的描述。

在本地运行时,您可以将值添加到文件中,例如local.settings.json

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "SuperSecret": "I love Azure Functions",
    "EventHubConnectionString": "Endpoint=sb://jeffs.servicebus.windows.net/;SharedAccessKeyName=MyFakeKey;SharedAccessKey=NotARealSecret"
  }
}

推荐阅读