【发布时间】:2021-04-21 20:35:38
【问题描述】:
我创建了一个Azure KeyVault,我希望我的App Service 能够访问它。据我所知,我的App Service 的负责人应该可以访问KeyVault,但是在尝试从中检索时总是出现以下错误。无论我是在 Visual Studio 或 Azure 本地运行,都会发生这种情况。
服务请求失败。状态:
403(Forbidden) 内容:{"error":{"code":"Forbidden","message":"策略要求调用者 'appid=MY_APP_ID;oid=MY_PRINCIPAL_ID_STARTING_WITH_1A5 ;iss=https://sts .windows.net/REDACTED_GUID/' 以使用代表 (OBO) 流。有关 OBO 的更多信息,请参阅https://go.microsoft.com/fwlink/?linkid=2152310","innererror":{"code":"ForbiddenByPolicy"}}} Headers: Pragma: no-cache x-ms-keyvault-region: westus x-ms -client-request-id: 已编辑 x-ms-request-id: 已编辑 x-ms-keyvault-service-version: 1.2.236.0 x-ms-keyvault-network-info: conn_type=Ipv4;addr=52.155.40.204; act_addr_fam=InterNetwork; Strict-Transport-Security: REDACTED X-Content-Type-Options: REDACTED Content-Length: 387 Cache-Control: no-cache Content-Type: application/json; charset=utf-8 日期: Wed, 21 2021 年 4 月 20:10:33 GMT 过期:-1 X-Powered-By:已编辑
我查看了链接的 KB 文章,它谈到了 OAUTH`。我没有尝试使用 OAUTH,所以我不明白为什么这很重要。
这是我KeyVault中的访问策略:
这是我配置主体的App Service 的屏幕截图。
底部明明说可以配置访问其他资源,不明白为什么不能访问KeyVault。
用于尝试访问的代码。
var kvUri = "https://" + Properties.Settings.Default.KeyVaultName + ".vault.azure.net";
var credential = new DefaultAzureCredential();
var client = new SecretClient(new Uri(kvUri),credential );
var result = client.GetSecret(secret);
【问题讨论】:
-
您的应用服务的主体是什么?它是 Azure 托管标识吗?
标签: azure azure-keyvault