我已将一个pfx证书作为秘密上传到我的Azure门户,我现在想用它来签署IdentityServer4中的凭据。
我在使用api启动时引用了保险库:
builder.AddAzureKeyVault(
$"https://{config["Vault"]}.vault.azure.net/",
config["ClientId"],
config["ClientSecret"]);
但不太确定如何将证书传递给:
services.AddIdentityServer()
.AddSigningCredential(...)
是否可以直接从密钥保管库引用证书,或者我是否需要将证书部署到运行api的Web应用程序中?
由于
答案 0 :(得分:3)
您已经在构建IConfiguration
对象,因此您可以像引用配置中的任何其他对象一样引用pfx键。
如果密钥在keyvault中,您可以引用它:
// Name of your pfx in the keyvault.
var key = _configuration["pfx"];
var pfxBytes = Convert.FromBase64String(key);
// Create the certificate.
var cert = new X509Certificate2(pfxBytes);
services.AddIdentityServer()
.AddSigningCredential(cert);
我建议使用keyvault,但您可以决定将pfx上传到Web应用程序的证书存储区。您可以通过转到您的网络应用程序在Azure中执行此操作 - &gt; SSL证书 - &gt;上传证书并输入密码。转到“应用程序设置”并添加应用设置WEBSITE_LOAD_CERTIFICATES : <thumbprint>
。您要做的最后一件事是从商店检索证书并再次添加,如AddSigningCredential(cert);
。