如何在不存储凭据的情况下连接到KeyVault?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在不存储凭据的情况下连接到KeyVault?相关的知识,希望对你有一定的参考价值。
我的Web应用程序有许多存储在KeyVault中的安全配置元素。为了连接它,我们有一些使用应用ID和密钥的代码,这反过来,因为它们允许访问密钥保管库,是安全凭据。
我可以使用应用程序的身份作为凭证以某种集成安全方式连接到KeyVault吗?或者是否有其他方法来保护这些凭据?
我已经考虑过使用加密保护配置元素,但是还有另一个必须维护,保护和部署的资产(密钥)。这比明文配置更好,但我想在这里找出最好的解决方案。
答案
如果要使用Azure Active Directory从Web App访问Key Vault,可以执行以下操作
- 转到您的Web应用程序
- 转到托管服务标识并使用Azure Active Directory注册Web应用程序(稍后单击
On
按钮和Save
),这将创建托管服务标识。 - 现在转到密钥库并打开
Access policies
选项卡 - 单击“添加新”
- 从模板中选择
Secret Management
作为Configure - 在“选择主体”选项中,选择为您的Web应用程序创建的托管服务标识(应该将其命名为您的应用程序)
- 现在转到Key权限,至少选择
Get
,以获取对密钥的访问权限(Secrets和Certificates的相同过程)。
完成所有这些步骤后,您可以转到您的网络应用程序代码并获取,例如,如下所示的秘密:
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软件包。
另一答案
如果您的应用程序在Web应用程序中运行,Managed Service Identity会为您的应用程序提供一个身份,您可以使用该身份使用AAD访问Key Vault和其他资源。
以上是关于如何在不存储凭据的情况下连接到KeyVault?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 *** 映像的情况下连接到 docker 中的 ***?
如何在不使用@符号连接到DB的情况下连接到DB。调用sqlplus UNAME @ DBNAME /密码@ \ Filelocation