使用GraphApi更新Azure ActiveDirectory应用程序的批准

时间:2016-11-04 15:59:04

标签: azure azure-active-directory azure-ad-graph-api

我尝试使用GraphApi更新Azure AD应用程序的appRoles,但是在没有足够的权限来完成操作错误时收到错误声明 Authorization_RequestDenied

我使用PostMan调用Rest端点https://graph.windows.net//applications/d66c96ea-56fd-41c8-884b-fc0664792f7d?api-version=1.6

这是可能PATCH请求的正文:

function sumOfDigits(n) {
  var sum = 0;
  while(n != 0) {
    sum += n % 10;
    n = Math.floor(n/10);
  }
  return sum;
}
function sumDigitsSeq(n) {
  return new Promise(function(resolve) {
    var i = 1;
    var chunkSize = 1e5;
    var sum = 1;
    (function chunk() {
      chunkSize = Math.min(chunkSize, n-i);
      for (var j=0; j<chunkSize; ++j, ++i) {
        sum += sumOfDigits(sum);
      }
      if (i >= n) return resolve(sum);
      console.log('Please wait. sumDigitsSeq(' + i + ') == ' + sum);
      setTimeout(chunk, 60);
    })();
  });
}
var number = 1e6;
sumDigitsSeq(number).then(function(result) {
  console.log('Done! sumDigitsSeq(' + number + ') == ' + result);
});

我已从AAD应用程序添加了对Microsoft Graph和Windows Azure Active Directory的所有权限。

我在AAD有2个应用程序。一个被称为&#34; PostMan&#34;对于PostMan OAuth2.0,以便我可以获得持有者令牌。另一个被称为&#34; TaskTrackerApp&#34;我试图通过GraphApi设置appRoles。

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

您在应用程序&#34; PostMan&#34;上配置了什么RequiredResourceAccess列表并且正在进行更改的人是他/她是此应用程序的所有者&#34; TaskTrackerApp&#34;或目录中的全局管理员?

答案 1 :(得分:0)

您可以尝试将您使用的AD应用程序的角色升级为管理员权限。在PowerShell中运行以下命令:

Connect-MsolService
$ClientIdWebApp = '{your_AD_application_client_id}'
$webApp = Get-MsolServicePrincipal –AppPrincipalId $ClientIdWebApp
#use Add-MsolRoleMember to add it to "Company Administrator" role).
Add-MsolRoleMember -RoleName "Company Administrator" -RoleMemberType ServicePrincipal -RoleMemberObjectId $webApp.ObjectId 

答案 2 :(得分:0)

本周我也打了这个。在我的情况下,尝试更新回复网址。我减少了我的请求,最终只是尝试更新应用程序的名称。同样的事情,特权不足。 最终追踪到这样一个事实:如果应用程序不是该应用程序的所有者,则该应用程序无法更新另一个应用程序。例如Azure门户 - &gt;应用注册 - &gt;(选择要更新的应用) - &gt;设置 - &gt;所有者。 在我的情况下,在“真实世界”的情况下,我试图用来更新的应用程序应该是所有者(因为它是创建更新应用程序的应用程序)

所以在OP案例中,“PostMan”应用程序需要被列为“TaskTrackerApp”的所有者