我正在尝试在我的Azure功能(v1)中使用密钥保管库引用,如here所述。它适用于秘密,但不适用于证书。
文档根本没有提到证书,所以也许它们根本不受支持?我希望将它作为base64字符串。
我正在使用的示例应用程序设置:@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/certificates/ApiClientAuthenticationCertificate/f9580a1f5a0c4a6ca65ea089976ca2b0)
结果证明在/secrets
路径下可用。我上面的例子应该是这样的:@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/ApiClientAuthenticationCertificate/f9580a1f5a0c4a6ca65ea089976ca2b0)
。
然后,设置值将是PFX格式的cert的base64字符串。在Azure函数中实例化如下:
byte[] certBytes = Convert.FromBase64String(base64Pfx);
var cert = new X509Certificate2();
cert.Import(certBytes, String.Empty, X509KeyStorageFlags.MachineKeySet);