gpt4 book ai didi

azure - ADAL 到 MSAL - 权限不足,无法完成操作

转载 作者:行者123 更新时间:2023-12-03 02:28:45 25 4
gpt4 key购买 nike

我有一个场景,需要将应用程序从 DevOps 管道添加到安全组。我有以下运行良好的场景:

  1. 在管道中我有以下 powershel 脚本:
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"}
  • 服务主体拥有 Azure Active Directory Graph 的 API 权限以及 Directory.Read.All 权限:
  • enter image description here

  • 服务主体是安全组的所有者:
  • enter image description here

    问题是 Azure Active Directory Graph 已弃用,因此我将权限更改为推荐的 Microsoft Graph 权限:

    enter image description here

    但现在我收到“没有足够的权限来完成操作”。错误

    enter image description here

    请问有人可以建议我还需要配置什么才能使其工作吗?

    谢谢。

    最佳答案

    虽然 AAD Graph 已处于弃用路径,但 MS Graph 和 AAD Graph 的权限不能混淆,它们并不相同。

    可以使用fiddler4捕获Powershell Az cmdlet的请求,发现底层实际上调用的是AAD Graph而不是MS Graph。

    当我们使用access token调用官方API时,API需要验证access token是否有效。

    有一个名为 aud 的声明,表示您正在调用的资源。当您在 Azure AD 应用中分配 MS Graph 权限(例如:https://graph.microsoft.com/user.read),但您调用的资源是 AAD Graph https 时://graph.windows.net/,MS Graph 权限肯定不会包含在访问 token 中。而此时所需的权限应该是https://graph.windows.net/user.read。这就是为什么您收到错误没有足够的权限来完成操作

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

    不用担心 AAD Graph 的退役。在那一天之前,MS 应该能够提供从 AAD Graph 到 MS Graph 的迁移或其他方式,使其仍然可以工作,而无需用户做太多事情。

    关于azure - ADAL 到 MSAL - 权限不足,无法完成操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65932401/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com