我的 Web 应用程序在 KeyVault 中存储了许多安全配置元素。为了连接到它,我们有一些使用应用程序 ID 和 key 的代码,而这些代码又是安全凭据,因为它们允许访问 Key Vault。
我可以使用应用程序的身份作为凭据,以某种集成安全方式连接到 KeyVault 吗?或者有其他方法来保护这些凭据吗?
我考虑过通过加密来保护配置元素,但是还有另一个 Assets ( key )需要维护、保护和部署。这比纯文本配置更好,但我试图在这里找出最好的解决方案。
最佳答案
如果您想使用 Azure Active Directory 从 Web 应用程序访问 Key Vault,您可以执行以下操作
- 转到您的网络应用程序
转到托管服务身份并向 Azure Active Directory 注册 Web 应用(单击
开启
按钮并稍后保存
),这将创建托管服务服务身份。现在转到 key 保管库并打开
访问策略
选项卡- 点击“新增”
- 选择
Secret Management
作为从模板配置 现在转到“关键权限”并至少选择
获取
,以获取对 您的 key ( secret 和证书的过程相同)。
完成所有这些步骤后,您可以转到您的网络应用程序代码并获取例如如下所示的 secret :
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = await keyVaultClient.GetSecretAsync("https://keyvaultname.vault.azure.net/secrets/secret").ConfigureAwait(false);
您需要将 Microsoft.Azure.Services.AppAuthentication
和 Microsoft.Azure.KeyVault
NuGet 包安装到您的应用程序。
关于azure - 如何在不存储凭据的情况下连接到 KeyVault?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49053940/