无法通过 windows 应用程序读取 Azure Key Vault 的密钥

Not able read Azure Key Vault's secret key through windows application

我们正在尝试通过 windows 应用程序(不是任何 azure application/resource 来读取 Azure Key vault 的秘密。 这是我们正在努力实现的目标 –

1. Created key vault 
2.  Added secret
3.  Added user (Azure AD User) to access policies and given required permissions.
4.  Running a windows application (not azure) to get those keys and getting error. (User who is running this application has already been added to access policies of key vault)

下面是错误的

在 Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProvider.d__14.MoveNext() --- 从抛出异常的先前位置开始的堆栈跟踪结束 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 Microsoft.Azure.KeyVault.KeyVaultCredential.d__11.MoveNext() --- 从抛出异常的先前位置开始的堆栈跟踪结束 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 Microsoft.Azure.KeyVault.KeyVaultCredential.d__13.MoveNext() --- 从抛出异常的先前位置开始的堆栈跟踪结束 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务) 在 Microsoft.Azure.KeyVault.KeyVaultClient.d__65.MoveNext() --- 从抛出异常的先前位置开始的堆栈跟踪结束 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 Microsoft.Azure.KeyVault.KeyVaultClientExtensions.d__13.MoveNext()

windows 应用程序需要关联一个 Azure 活动目录 ID。 如果您阅读了 Key Vault 的基本概念,则有 2 种推荐的方法来访问 Key Vault。 1) 使用托管身份,其中尝试使用 Key Vault interact/authenticate 的应用程序需要具有由 Azure 管理的身份。 2) 使用服务主体和证书对 Key Vault 进行身份验证。

在这种情况下,如果它是本地 运行 windows 应用程序,它需要使用服务主体和证书对密钥保管库进行身份验证。

确保您的解决方案中存在以下 3 个 dll。如果不是从 nuget

得到这些
  1. Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll

  2. Microsoft.Azure.KeyVault

  3. Microsoft.Azure.Services.AppAuthentication