[英]REST request on an Azure storage account using an access key results in HTTP 403 Forbidden
[英]Azure KeyVault 403 Forbidden when using Principal Account to access
我创建了一个Azure KeyVault
,我希望我的App Service
能够访问它。 据我所知,我的App Service
的主体应该可以访问KeyVault
,但是在尝试从中检索时总是出现以下错误。 无论我是在Visual Studio
中本地运行还是在Azure
中运行,都会发生这种情况。
服务请求失败。 状态:
403
(禁止) 内容:{"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"}}}标头: Pragma: no-cache x-ms-keyvault-region: westus x-ms-client-request-id: REDACTED x-ms-request-id: REDACTED x-ms-keyvault -服务版本:1.2.236.0 x-ms-keyvault-network-info:conn_type=Ipv4;addr=52.155.40.204;act_addr_fam=InterNetwork; Strict-Transport-Security:已编辑 X-Content-Type-Options:已编辑 Content-Length:387 Cache-Control:no-cache Content-Type:application/json; charset=utf-8 日期:格林威治标准时间 2021 年 4 月 21 日星期三 20:10:33 过期:-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);
设置访问策略时,您需要 select 服务主体,只有 object id(没有应用程序 id)。
请参阅此类似的帖子答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.