Я пытаюсь использовать ссылки хранилища ключей в моей функции Azure (v1), как описано здесь .Он отлично работает для секретов, но не для сертификатов.
В документах вообще не упоминаются сертификаты, так что, может быть, они просто не поддерживаются?Я надеялся получить его в виде строки base64.
Пример настройки приложения, который я использую: @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/certificates/ApiClientAuthenticationCertificate/f9580a1f5a0c4a6ca65ea089976ca2b0)
@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/certificates/ApiClientAuthenticationCertificate/f9580a1f5a0c4a6ca65ea089976ca2b0)
Оказывается, сертификат доступен по пути /secrets. Мой пример выше должен выглядеть так: @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/ApiClientAuthenticationCertificate/f9580a1f5a0c4a6ca65ea089976ca2b0).
/secrets
@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/ApiClientAuthenticationCertificate/f9580a1f5a0c4a6ca65ea089976ca2b0)
Тогда значение параметра будет строкой base64 сертификата в формате PFX. Создайте копию в вашей функции Azure:
byte[] certBytes = Convert.FromBase64String(base64Pfx); var cert = new X509Certificate2(); cert.Import(certBytes, String.Empty, X509KeyStorageFlags.MachineKeySet);