无法通过 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
得到这些
Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll
Microsoft.Azure.KeyVault
Microsoft.Azure.Services.AppAuthentication
我们正在尝试通过 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
得到这些Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll
Microsoft.Azure.KeyVault
Microsoft.Azure.Services.AppAuthentication