我正在尝试获取属于给定订阅的资源列表。我已经在Azure AD中创建了一个应用程序,并为其赋予了查看订阅和资源的权限。我可以得到一份订阅列表。当我尝试获取资源列表时,该列表为空白,很明显(如下面的图片所示)有资源。我想念什么?
我的代码:
$token = getToken();
$subId = "SomeValidSubscriptionId";
$url = "https://management.azure.com/subscriptions/".$subId."/resources?api-version=2019-05-10";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json charset=utf-8','Authorization: Bearer '.$token));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
print_r($result);
$res = json_decode($result,true);
return $res;
结果:
{"value":[]}Array
(
[value] => Array
(
)
)
图片1:我想获取的资源列表:
图像2:1个资源的权限。证明我的billingAPI应用有权查看它:
///忽略billingAPI123资源,这是之前的尝试失败。
答案 0 :(得分:0)
billingAPI用户具有不允许查看资源的角色。 我当时使用billingReader角色,当切换为所有者时,它可以按预期工作。