我尝试使用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。
感谢您的帮助!
答案 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”的所有者