我正在使用Azure API。
我需要获取所有虚拟机列表,并需要执行START STOP RESTART之类的操作。
当我尝试从此链接获取所有订阅的列表时,它的工作正常: https://docs.microsoft.com/en-us/rest/api/resources/subscriptions/list
但是从我的API中我得到的结果为空。
我确定了问题,并且该问题是授权:不记名+令牌问题
当我传递静态授权时:Bearer Token。它可以在我的api中正常工作,但是当我从CURL获取授权令牌时,它会返回null数据。
我正在使用以下代码获取访问令牌。
$strAppTenantDomainName="exmple.com"; // This is tenant domain name
$arrCurlOptions[CURLOPT_POSTFIELDS] = ['client_id'=> 'xxxxxx','client_secret'=> 'xxxxxx','resource'=> "https://management.azure.com/",'grant_type'=> 'client_credentials'];
$arrAccessTokenDetails = cUrl_process("https://login.microsoftonline.com/$strAppTenantDomainName/oauth2/token",$arrCurlOptions);
请帮助我。
谢谢。
答案 0 :(得分:0)
我可以重现您的问题,我想您尚未将AD App添加为订阅中的角色。
要解决此问题,请在门户中导航至您的订阅-> Access control (IAM)
-> Add role assignment
->将AD App添加为owner
角色(例如)。
然后它将正常工作。
有关更多详细信息,请参阅此link。