检索KeyVault Secret时出现问题

时间:2017-02-02 09:21:35

标签: c# certificate azure-active-directory azure-powershell azure-keyvault

尝试使用证书通过AD身份验证检索KeyVault密钥。

Documentation Reffered for Creating KeyVault & AD application using Certificate

public static async Task<string> GetAccessToken(string authority, string resource, string scope) {
    var context = new AuthenticationContext(authority, TokenCache.DefaultShared);
    var result = await context.AcquireTokenAsync(resource, AssertionCert);
    return result.AccessToken; }

时代码失败
  

var result = await context.AcquireTokenAsync(resource,AssertionCert)

InnerException包含:“键集不存在”

有时候“指定的提供程序类型无效”。发生错误 不知道问题出在哪里。

3 个答案:

答案 0 :(得分:0)

假设AssertionCert有效,则可能是访问私钥的权限问题(此处需要进行身份验证)。

试试这个:

  • 使用证书创建Microsoft管理控制台(MMC) 定位到本地计算机证书存储区的管理单元
  • 展开MMC并选择管理私钥。
  • 在“安全”选项卡上,使用“读取”添加您正在运行的帐户 访问。

答案 1 :(得分:0)

当您尝试读取证书的用户无权访问证书的私钥时,通常会发生KeySet。你能仔细检查证书上的ACL吗?

答案 2 :(得分:0)

以管理员身份运行应用程序后,我已解决此问题。