Azure密钥保管库证书:未找到密钥。

3

我正在尝试将Azure Key Vault证书启用到现有的API中。我们已经在Azure Key Vault账户中拥有了密钥和Azure Key Vault证书。以下是配置证书的代码:

Original Answer翻译成“最初的回答”

 public static IWebHost BuildWebHost() =>
               WebHost.CreateDefaultBuilder()
                   .ConfigureAppConfiguration((context, config) =>
                   {
                       var env = context.HostingEnvironment;
                       config.SetBasePath(Directory.GetCurrentDirectory())
                            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);

                       var builtConfig = config.Build();
                       X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
                       store.Open(OpenFlags.ReadOnly);
                       var cert = store.Certificates.Find(X509FindType.FindByThumbprint, builtConfig["AzureKeyVault:CertThumbprint"], false);
                       config.AddAzureKeyVault(
                               $"https://{builtConfig["AzureKeyVault:Vault"]}.vault.azure.net/",
                               builtConfig["AzureKeyVault:ClientId"],
                               cert.OfType<X509Certificate2>().Single());
                       store.Close();
                   })
                   .UseStartup<Startup>()
                   .Build();

在我的本地计算机上,我已正确导入了证书,其中包括下载pfx格式。但是我收到的错误消息是:“Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException:'AADSTS700027:客户端声明包含无效签名。[原因-未找到密钥。客户端使用的指纹:'xxx']”造成这种情况的原因是什么?“最初的回答”

1
cert 是空的吗?如果不是,那么私钥未找到或导入。 - undefined
啊,我明白了。是的,现在它正常工作了。谢谢你! - undefined
1
我已经给出了一个答案。请标记它,以便其他用户可以受益。 - undefined
1个回答

5

该消息表示证书未与私钥一起导入(certmgr.msc),或者请求用户的权限未设置(在使用机器存储 - certlm.msc时)。


你可以告诉我更多关于这个的信息吗?我认为我有相同/类似的问题。我可以通过迭代和使用指纹在存储中找到正确的证书。我可以成功创建一个ClientAssertionCertificate,但在AquireTokenAsync上失败了。一个即将过期的证书可以工作,但其他尝试的证书都不行。我确定我在过去的两天多里忽略了某些东西。谢谢! - undefined
certmgr.msc (请注意 't') - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接