在 Powershell 中列出 Azure 函数的机密

listing secrets for Azure function in Powershell

我一直在关注一些示例 here using the functions API 试图获取部署函数的秘密。

我通过 Login-AzureRmAccount 以订阅所有者身份登录并从令牌缓存中提取访问令牌。使用它,我使用 Invoke-RestMethod 调用 ARM API 以尝试根据函数 API 列出机密。示例:

# $accessToken is from TokenCache
$uri = "https://management.azure.com/subscriptions/[my-subscription-guid]/resourceGroups/SampleResourceGroup/providers/Microsoft.Web/sites/SampleFunctionApp/functions/SampleFunction/listsecrets?api-version=2015-08-01"
Invoke-RestMethod `
    -Method Post `
    -Headers @{
        "Authorization" = "Bearer $accessToken"
    } `
    -Uri $uri

Azure returns 403,声称 Web 应用程序已停止。函数应用程序是 运行,权限 应该 检查,因为我是所有者。我试过退回服务无济于事。 (值得一提的是,上述方法适用于其他资源。)

我错过了什么?我需要调整功能应用程序中的设置吗?或者,是否有另一种方法可以从 AzureRm cmdlet 系列或另一个 API?

获取机密

事实证明,为了防止 CSRF 攻击,Kudu API 需要明确的 User-AgentContent-Type(来源 here)。