使用Azure Key Vault中的证书对IdentityServer4进行签名

时间:2017-07-07 14:41:31

标签: azure identityserver4 azure-keyvault

我已将一个pfx证书作为秘密上传到我的Azure门户,我现在想用它来签署IdentityServer4中的凭据。

我在使用api启动时引用了保险库:

builder.AddAzureKeyVault(
       $"https://{config["Vault"]}.vault.azure.net/",
       config["ClientId"],
       config["ClientSecret"]);

但不太确定如何将证书传递给:

 services.AddIdentityServer()
            .AddSigningCredential(...)

是否可以直接从密钥保管库引用证书,或者我是否需要将证书部署到运行api的Web应用程序中?

由于

1 个答案:

答案 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);