首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ADAL to MSAL -没有足够的权限来完成操作

问ADAL to MSAL -没有足够的权限来完成操作
EN

Stack Overflow用户
提问于 2021-01-28 07:02:57
回答 1查看 389关注 0票数 1

我有一个场景,需要从DevOps管道向安全组添加应用程序。下面的场景运行得很好:

在管道中的

  1. 我有以下powershel脚本:

代码语言:javascript
复制
if (!((Get-AzADGroupMember -ObjectId ((Get-AzADGroup -DisplayName $groupName).id)).DisplayName -eq $appName)) {Add-AzADGroupMember -MemberObjectId (Get-AzADServicePrincipal -DisplayName $appName).id -TargetGroupObjectId (Get-AzADGroup -DisplayName $groupName).id} else {"member is already part of the group"}

  1. 服务主体具有具有Directory.Read.All权限的Azure Active图的API权限:

​

​

服务主体

  1. 是安全组

的所有者。

​

​

问题是Azure Active图处于弃用路径,因此我将权限更改为推荐的MicrosoftGraph权限:

​

​

但现在我得到了“不足以完成手术的特权”。错误

​

​

请有人告诉我,我还需要配置什么才能让它正常工作?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-29 05:59:55

虽然AAD图处于不推荐路径上,但MS图和AAD图的权限不能混淆,它们是不一样的。

您可以使用fiddler4来捕获Powershell Az cmdlet的请求,并发现它实际上是在调用AAD图,而不是底部的MS图。

当我们使用访问令牌调用官方API时,API需要验证访问令牌是否有效。

有一个名为aud的声明,它意味着您正在调用的资源。当您在Azure应用程序中分配MS图权限(例如:https://graph.microsoft.com/user.read)时,但您正在调用的资源是AAD图https://graph.windows.net/,则访问令牌中肯定不包含MS Graph权限。此时所需的权限应该是https://graph.windows.net/user.read。这就是为什么您获得错误不足以完成操作的特权。

因此,在这种情况下,您应该继续使用AAD图权限。

不要担心AAD图的退休。在那一天之前,MS应该能够提供从AAD图到MS图的迁移,或者其他方法,使它仍然工作,而不需要用户做太多的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65932401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档