【问题标题】:Azur Key Vault - CORS Error after using Azure KeyVault in Azure App ServiceAzur Key Vault - 在 Azure 应用服务中使用 Azure KeyVault 后出现 CORS 错误
【发布时间】:2021-09-08 19:55:52
【问题描述】:

我正在尝试从 Azure Key Vault 中获取价值。它在 localhost 中运行良好,但是当我们部署到 Azure 应用服务时。它显示 CORS 错误:

CORS 策略已阻止从源“https://xxxxxxx.azurewebsites.net”访问“https://xxxxxxxx.azure-api.net/xxxxxx/api/xxx/xxxx”处的 XMLHttpRequest:响应预检请求未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

我在 .Net Core Web API 中使用以下代码:

const string secretName = "XXXXXXXXXXXXXX";
var kvUri = $"https://xxxxxxxx.vault.azure.net";
var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());
var secret = client.GetSecretAsync(secretName).GetAwaiter().GetResult().Value;
conString = secret.Value;

提前致谢

【问题讨论】:

  • 我认为这与 Key Vault 没有任何关系。您是否在 API 上配置了 CORS 规则以允许来自应用服务的 XHR 请求?
  • azure-api.net 不是 API 管理 URL 吗?正如 Gaurav 所说,这与 Key Vault 无关。您需要 API 管理中的 CORS 策略以允许来自前端的请求。
  • 我已经为 API 实现了 CORS,并且在没有 KeyVault 的情况下它可以正常工作。但是当我添加 KeyVault 时,它显示 CORS 错误。
  • 您能否确认您的密钥保管库代码是否正常工作并且没有引发错误?

标签: azure cors azure-web-app-service azure-keyvault


【解决方案1】:

目前 Key Vault 不允许使用 CORS,因为它不是为浏览器设计的。几年前,我与 KV 产品团队讨论了这个问题,并为此功能创建了 UserVoice 提交:https://feedback.azure.com/forums/906355-azure-key-vault/suggestions/34753195-enable-cors-for-key-vault

【讨论】:

    【解决方案2】:

    您在本地测试此应用程序时是否已登录到 Azure? 此外,为了让应用服务访问密钥库,您还需要一些身份验证机制 例如服务主体或托管身份。

    您可以查看此链接以供参考: Access key vault from app service

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-04
      • 2020-10-15
      • 1970-01-01
      • 2021-10-31
      • 2020-06-02
      • 2019-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多