【问题标题】:Azure Active Directory Get User GroupsAzure Active Directory 获取用户组
【发布时间】:2018-06-26 04:02:23
【问题描述】:

我正在尝试(像许多其他人一样)为我的应用程序的用户获取组成员资格。 我一直遇到以下代码行的阻塞点:

IPagedCollection<IGroup> pagedCollection = await client.Groups.ExecuteAsync();

.. 引发(“未授权”)异常。 虽然我知道错误在说什么,但我不确定它为什么这么说。 我已授予我的应用程序在 Graph API 下的每一项权限(39 个应用程序权限和 88 个委派权限 - 我现在只是原型设计)。

我也已经“管理员同意”,因为我已经完成了登录过程并“接受”了它告诉我它将使用的很长的权限列表,然后继续带我回到我的应用程序,然后上面的代码行失败。

作为参考,我一直在关注 Azure 文档站点上的“TodoListWebApp”演示代码,虽然我可以使用 AD 身份验证成功登录应用程序,但我对 HomeController Index 操作的修改以获取列表(作为测试)似乎是我的失败。

这是我目前使用的;

ActiveDirectoryClient client = AuthenticationHelper.GetActiveDirectoryClient();
IPagedCollection<IGroup> pagedCollection = await client.Groups.ExecuteAsync();

do
{
    List<IGroup> directoryGroups = pagedCollection.CurrentPage.ToList();
    foreach (IGroup directoryGroup in directoryGroups)
    {
        roleList.Add((Group)directoryGroup);
    }
    pagedCollection = await pagedCollection.GetNextPageAsync();
}
while (pagedCollection != null);

我也尝试过关注这个预先存在的问题; Get a list of groups that Azure AD user belongs to in claims

我已经如前所述修改了应用程序清单,并尝试使用 Jonas 发布的 GetGroupMembershipsByObjectId 方法。

这只会导致异常消息“发生一个或多个错误”。 所以我很好,真的被困住了。

任何帮助都会很棒

编辑:

一些修改 - 我意识到发布的代码不准确,因为它引用了角色而不是组,所以我已经更新了。

第二次编辑,是我已经确定了这个助手的异常来源;

https://github.com/Azure-Samples/active-directory-dotnet-graphapi-web/blob/master/WebAppGraphAPI/Utils/AuthenticationHelper.cs

令牌从未设置,因此出现错误,但我在源代码中看不到它应该设置的位置?如果有人能指出我的方向。

【问题讨论】:

  • AuthenticationHelper.cs 链接不起作用。

标签: c# asp.net azure model-view-controller active-directory


【解决方案1】:

根据您的描述,您正在 MVC 应用程序中使用 AD Graph。 AFAIK,您只需在 Azure 门户上注册您的 Web 应用程序/API 应用程序,然后为 Windows Azure Active Directory API 设置所需权限,然后选择委派权限 Access the directory as the signed-in userSign in and read user profile 如下:

此外,您可以关注关于Calling the Azure AD Graph API in a web application 的github 示例。

此外,您可以使用jwt.io 解码您的访问令牌并确保scp 属性包含Directory.AccessAsUser.AllUser.Read 委派的权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多