【发布时间】: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