Создание сертификата клиента с помощью функции Azure и хранилища ключей Azure. - PullRequest
0 голосов
/ 19 февраля 2019

Мне нужно хранить корневой сертификат в хранилище ключей Azure.Этот шаг в порядке, я думаю.

Следующим шагом является функция Azure, из которой я должен создать некоторые клиентские сертификаты со специальными идентификаторами и корневой сертификат из хранилища ключей.Но я понятия не имею, как это сделать.

Может ли кто-нибудь помочь мне с функцией Azure и как я могу создать там сертификат клиента?Функция должна быть написана на .NET.В интернете я почти нашел скрипты Powershell, но это мне не помогает.Было бы здорово, если бы кто-нибудь смог мне помочь.

Большое спасибо.

1 Ответ

0 голосов
/ 19 февраля 2019

Вот пример того, что я получил из этой записи Джеффа Холлингера.Вот пример кода, который вам нужен в функции:

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}");
        }
    }
}

Похоже, у вас уже есть секреты в хранилище ключей, поэтому все, что вам не хватает, - это добавить ссылки на хранилище ключей в настройки приложения вашей функции.Вот описание из Microsoft Azure-Functions-Key-Vault docs .

При локальном запуске вы можете добавить значения в файл, например 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"
  }
}
...