Azure KeyVault 403 Forbidden when using Principal Account 访问
Azure KeyVault 403 Forbidden when using Principal Account to access
我创建了一个 Azure KeyVault
,我希望我的 App Service
能够访问它。据我所知,我的 App Service
的委托人应该可以访问 KeyVault
,但我在尝试从中检索时总是收到以下错误。无论我是 Visual Studio
本地 运行 还是 Azure
.
都会发生这种情况
Service request failed. Status: 403
(Forbidden) Content: {"error":{"code":"Forbidden","message":"The policy requires the caller 'appid=MY_APP_ID;oid=MY_PRINCIPAL_ID_STARTING_WITH_1A5 ;iss=https://sts.windows.net/REDACTED_GUID/' to use on-behalf-of (OBO) flow. For more information on OBO, please see https://go.microsoft.com/fwlink/?linkid=2152310","innererror":{"code":"ForbiddenByPolicy"}}} Headers: Pragma: no-cache x-ms-keyvault-region: westus x-ms-client-request-id: REDACTED x-ms-request-id: REDACTED 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 Date: Wed, 21 Apr 2021 20:10:33 GMT Expires: -1 X-Powered-By: REDACTED
我查看了链接的 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只有对象 ID(没有应用程序 ID)的服务主体。
看到类似的 post 。
我创建了一个 Azure KeyVault
,我希望我的 App Service
能够访问它。据我所知,我的 App Service
的委托人应该可以访问 KeyVault
,但我在尝试从中检索时总是收到以下错误。无论我是 Visual Studio
本地 运行 还是 Azure
.
Service request failed. Status:
403
(Forbidden) Content: {"error":{"code":"Forbidden","message":"The policy requires the caller 'appid=MY_APP_ID;oid=MY_PRINCIPAL_ID_STARTING_WITH_1A5 ;iss=https://sts.windows.net/REDACTED_GUID/' to use on-behalf-of (OBO) flow. For more information on OBO, please see https://go.microsoft.com/fwlink/?linkid=2152310","innererror":{"code":"ForbiddenByPolicy"}}} Headers: Pragma: no-cache x-ms-keyvault-region: westus x-ms-client-request-id: REDACTED x-ms-request-id: REDACTED 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 Date: Wed, 21 Apr 2021 20:10:33 GMT Expires: -1 X-Powered-By: REDACTED
我查看了链接的 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只有对象 ID(没有应用程序 ID)的服务主体。
看到类似的 post