从本地 Web 应用程序使用 Azure Vault Secret
Use Azure Vault Secret from onpremise Web Application
我想使用来自本地 Web 应用程序的 Azure Key Vault 机密。
我创建了一个带有秘密的 Key Vault,但在访问策略中我应该指定一个授权应用程序并且在示例中使用了 Azure WebApp。
我想改用本地 MVC 网络应用程序中的秘密:我应该什么都不指定并且它有效吗?我自己指定了 Azure Vault 和 Principal,但我不确定这是否正确。
好吧,有些东西需要进行身份验证才能访问秘密。
当前用户,或者您可以使用服务主体。
由于我们讨论的是 MVC 应用程序,因此服务主体可能更简单。
您需要通过 Azure 门户在 Azure Active Directory 中注册一个新应用。
找到 Azure AD,通过 App registrations 注册一个新的应用程序。
名称和 URL 并不重要,但它必须是 Web app/API 类型。
例如,登录 URL 可以是 https://localhost
。
然后在 Keys 边栏中添加一个 key 到应用程序(创建应用程序后单击设置,然后单击密钥)。
将客户端 ID(应用程序 ID)和密钥复制到某处。
现在您可以转到您的 Key Vault,创建一个新的访问策略,然后选择您创建的应用程序作为主体。
给它你想要的权利,比如 Secrets -> Get。
然后就可以保存策略了。
在您的应用中,您可以像这样使用 Key Vault library + 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;
我想使用来自本地 Web 应用程序的 Azure Key Vault 机密。
我创建了一个带有秘密的 Key Vault,但在访问策略中我应该指定一个授权应用程序并且在示例中使用了 Azure WebApp。
我想改用本地 MVC 网络应用程序中的秘密:我应该什么都不指定并且它有效吗?我自己指定了 Azure Vault 和 Principal,但我不确定这是否正确。
好吧,有些东西需要进行身份验证才能访问秘密。 当前用户,或者您可以使用服务主体。
由于我们讨论的是 MVC 应用程序,因此服务主体可能更简单。 您需要通过 Azure 门户在 Azure Active Directory 中注册一个新应用。 找到 Azure AD,通过 App registrations 注册一个新的应用程序。
名称和 URL 并不重要,但它必须是 Web app/API 类型。
例如,登录 URL 可以是 https://localhost
。
然后在 Keys 边栏中添加一个 key 到应用程序(创建应用程序后单击设置,然后单击密钥)。
将客户端 ID(应用程序 ID)和密钥复制到某处。
现在您可以转到您的 Key Vault,创建一个新的访问策略,然后选择您创建的应用程序作为主体。 给它你想要的权利,比如 Secrets -> Get。 然后就可以保存策略了。
在您的应用中,您可以像这样使用 Key Vault library + 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;