从 Azure Graph API 获取用户应用程序访问权限

Obtaining a users Application access from Azure Graph API

我正在使用 GraphHelper 库 (http://www.nuget.org/packages/Microsoft.Azure.ActiveDirectory.GraphClient) 从 Azure AD 获取用户详细信息。但是,我正在努力获取 approles 信息,它 returns:

资源 'appRoleAssignments' 不存在或其查询的引用之一 - 属性 对象不存在。

代码:

   public static async Task<List<AzureAppRole>> GetApplications(User user)
    {

        var appRoles = new List<AzureAppRole>();

        var userFetcher = user as IUserFetcher;
        IPagedCollection<IAppRoleAssignment> rawObjects = await userFetcher.AppRoleAssignments.ExecuteAsync();

        do
        {
            List<IAppRoleAssignment> directoryObjects = rawObjects.CurrentPage.ToList();
            foreach (IAppRoleAssignment dobject in directoryObjects)
            {
                if (dobject is AppRole)
                {
                    var u = (AppRole)dobject;
                    appRoles.Add(new AzureAppRole
                    {
                        DisplayName = u.DisplayName,
                        ObjectId = u.Value

                    });
                }
            }
            rawObjects = rawObjects.GetNextPageAsync().Result;
        } while (rawObjects != null && rawObjects.MorePagesAvailable);

        return appRoles;

    }

编辑:

查看原始 API 调用,我可以看到它正在调用以下内容,当使用 GraphExplorer 查询时会导致错误:

https:// graph.windows.net/tenant/directoryObjects/objectid/appRoleAssignments?api-version=1.5

但是,以下查询导致返回结果:

https:// graph.windows.net/tenant/users/objectid/appRoleAssignments?api-version=1.5

这是库中的错误吗?

感谢您报告错误。已在 Graph 客户端库 2.0.5 中修复。