【问题标题】:Azure KeyVault 403 Forbidden when using Principal Account to accessAzure KeyVault 403 Forbidden when using Principal Account to access
【发布时间】:2021-04-21 20:35:38
【问题描述】:

我创建了一个Azure KeyVault,我希望我的App Service 能够访问它。据我所知,我的App Service 的负责人应该可以访问KeyVault,但是在尝试从中检索时总是出现以下错误。无论我是在 Visual StudioAzure 本地运行,都会发生这种情况。

服务请求失败。状态: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


【解决方案1】:

当你设置访问策略时,你需要选择只有object id(没有app id)的服务主体。

看到这个类似的帖子answer

【讨论】:

    猜你喜欢
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    相关资源
    最近更新 更多