从本地 Web 应用程序使用 Azure 保管库机密



我想使用本地 Web 应用程序中的 Azure 密钥保管库机密。

我创建了一个包含机密的密钥保管库,但在访问策略中,我应指定授权应用程序,并在示例中使用 Azure Web 应用。

我想改用本地 MVC Web 应用程序中的机密:我什么也没指定,它有效吗? 我自己指定了 Azure 保管库并作为主体,但我不确定这是否正确。

好吧,需要进行身份验证才能访问机密。可以是当前用户,也可以使用服务主体。

由于我们谈论的是 MVC 应用,因此服务主体可能更容易。你需要通过 Azure 门户在 Azure Active Directory 中注册一个新应用。找到 Azure AD,并通过应用注册注册新应用。

名称和 URL 并不重要,但它需要是 Web 应用/API 类型。例如,可以https://localhost登录 URL。然后在">密钥"边栏选项卡中向应用添加一个密钥(创建应用后单击"设置",然后单击">密钥"(。将客户端 ID(应用程序 ID(和密钥复制到某处。

现在,你可以转到密钥保管库,创建新的访问策略,然后选择你创建的应用作为主体。赋予它你想要的权利,比如秘密 -> Get。然后,您可以保存策略。

在应用中,可以使用密钥保管库库 + ADAL,如下所示:

var kvClient = new KeyVaultClient(async (authority, resource, scope) =>
{
    var context = new AuthenticationContext(authority);
    var credential = new ClientCredential("client-id-here", "key-here");
    AuthenticationResult result = await context.AcquireTokenAsync(resource, credential);
    return result.AccessToken;
});
SecretBundle secret = await kvClient.GetSecretAsync("https://yourvault.vault.azure.net/", "secret-name");
string secretValue = secret.Value;

最新更新