从Azure Key Vault读取机密需要很长时间

时间:2018-09-19 05:53:49

标签: azure azure-keyvault

正如标题所述,我目前遇到一个问题,以下代码需要20秒钟以上的时间才能执行。

var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
             new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = await keyVaultClient.GetSecretAsync(vaultBaseUrl, secretName).ConfigureAwait(false);

enter image description here

这个秘密最终被阅读了,但是我觉得这是一个漫长的等待时间。我还没有找到任何有类似问题的人。

第一次使用Key Vault,我可能无法正确访问它吗?

3 个答案:

答案 0 :(得分:1)

(在我的开发机器上)我遇到了同样的问题,原因是,AzureServiceTokenProvider似乎首先尝试使用本地url超时,这可能是在Azure上运行时更好的设置,但不适用于本地开发。

对我来说,解决方案是在我的开发机上将环境变量AzureServicesAuthConnectionString设置为值RunAs=Developer; DeveloperTool=VisualStudio

另请参见此github问题https://github.com/Azure/azure-sdk-for-net/issues/4645

答案 1 :(得分:0)

尝试在 之后启动秒表,然后从AAD检索访问令牌,并在检索密码后将其终止。我怀疑延迟是在令牌检索期间进行的。

我个人发现,当我创建使用Azure API的应用程序时,自己获取令牌会更快。

答案 2 :(得分:0)

  1. Azure Key Vault Service的SLA应该更好 比您在这里观察到的要好。我在这里提到它是因为 否则,您可以通过Microsoft支持来解决这个问题,他们 应该能够提供帮助。      SLA for Key Vault
      

    我们保证我们将在5天内处理关键保险柜交易   秒,至少有99.9%的时间。

  2. 检查您在哪个地区创建了密钥保险库?您的应用程序(您从中访问它的位置)是否在完全不同的区域中?