使用 Graph Api 更新 Azure Active Directory 应用程序的应用程序角色

Update approles for an Azure ActiveDirectory application using GraphApi

我正在尝试使用 GraphApi 更新 Azure AD 应用程序的 appRoles,但收到一条错误消息,指出 Authorization_RequestDenied with Insufficient privileges to complete the操作错误。

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

这是可能的 PATCH 请求的正文:

{
    "appRoles": [
        {
          "allowedMemberTypes": [
            "User"
          ],
          "description": "Writer has the ability to create tasks",
          "displayName": "Writer",
          "id": "66ea9f02-31b0-40b2-94fb-67a408bc10e3",
          "isEnabled": true,
          "value": "Writer"
        }
      ]
}

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

我在 AAD 中有 2 个应用程序。一个名为 "PostMan" for PostMan OAuth2.0,这样我就可以获得不记名令牌。另一个名为 "TaskTrackerApp",我正在尝试通过 GraphApi 设置 appRoles。

感谢您的帮助!

您在应用程序 "PostMan" 上配置的 RequiredResourceAccess 列表是什么he/she 此应用程序的所有者 "TaskTrackerApp" 或目录中的全局管理员?

您可以尝试将您使用的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 

这周我也打了这个。在我的例子中,尝试更新回复 URL。我减少了我的请求,最终只是尝试更新应用程序的名称。同样的事情,权限不足。 最终追踪到一个事实,即如果一个应用程序不是该应用程序的所有者,则该应用程序无法更新另一个应用程序。例如Azure 门户->应用注册->(Select 应用更新)->设置->所有者。 在我的例子中,在 "real world" 的情况下,我试图用来更新的应用程序应该是所有者(因为它是创建更新应用程序的应用程序)

因此,在 OP 的情况下,"PostMan" 应用需要列为 "TaskTrackerApp"

的所有者