Har*_*iam 5 azure-web-sites docker azure-keyvault asp.net-core
我正在运行一个由asp.net core 2.2 api组成的docker容器。此api需要访问Azure密钥保险库,并且我已经与一个在Key Vault具有正确访问策略以检索机密的用户登录Visual Studio。但是,当我使用Visual Studio工具为Docker调试容器时,这种特殊登录似乎并没有在本地运行的容器内部传播。但是当我在本地运行应用程序时(没有在docker容器中运行它),asp net核心配置提供程序似乎接了我的Visual Studio登录名。关于此的任何指示都是有帮助的
我的 Mac 上的 docker 和 MSI 也有同样的问题。我最终做了以下解决方法:
首先从 CLI 获取访问令牌并将其设置为环境(并记住将其传递给 docker)
export ACCESS_TOKEN=$(az account get-access-token --resource=https://vault.azure.net | jq -r .accessToken)
Run Code Online (Sandbox Code Playgroud)
在代码中,如果令牌在环境中,则选择它:
KeyVaultClient keyVaultClient;
var accessToken = Environment.GetEnvironmentVariable("ACCESS_TOKEN");
if (accessToken!=null)
{
keyVaultClient = new KeyVaultClient(
async (string a, string r, string s)=> accessToken);
}
else
{
var azureServiceTokenProvider = new AzureServiceTokenProvider();
keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
437 次 |
| 最近记录: |