【问题标题】:AAD hosted Blazor Webassembly - How to get subset of user's AD groups when user is member of large number of groupsAAD 托管的 Blazor Webassembly - 当用户是大量组的成员时如何获取用户的 AD 组的子集
【发布时间】:2020-09-14 20:40:32
【问题描述】:

我在 ASP.Net Core github repo 上问过这个question,但我认为我的问题没有得到充分回答,所以在这里发布问题。

我按照说明 here 获取用户的 AD 组作为声明。但是,用户是大量组的成员,我只看到一个声明“hasGroups”。

我的问题是:在这种情况下建议遵循的最佳实践/模式是什么,因为我只对检索与字符串模式匹配的少数用户组感兴趣。我什至会在哪里编写代码来执行此过滤器?

我知道如何编写图形 api 查询,但具体在何处/何时进行此调用尚不清楚。一旦我从 Graph Api 检索组,我如何将组信息反映到令牌声明中,以便客户端应用程序可以使用常规授权机制,而不知道如何填充用户组的详细信息。

【问题讨论】:

    标签: azure-active-directory azure-ad-graph-api blazor-client-side


    【解决方案1】:

    我不确定这是否是推荐的方法,但这里的文档讨论了添加组和角色以使用 blazor 的用户对象声明。 https://docs.microsoft.com/en-us/aspnet/core/security/blazor/webassembly/azure-active-directory-groups-and-roles?view=aspnetcore-3.1

    我不确定这是否可能,但在 customuserfactory 中,我会尝试替换

       foreach (var group in account.Groups)
        {
            userIdentity.AddClaim(new Claim("group", group));
        }
    

    使用一些代码尝试调用图形 api(以某种方式获取用于调用 api 的令牌,这是我不确定的部分),解析组并将它们添加到用户声明中, 然后按照其余的示例说明如何将其合并到 [authorize] 机制中。

    同样,我对 blazor wasm 还不是很熟悉,除此之外我找不到任何文档来将组/角色添加到授权机制中。 如果其他人有更好的方法或者为什么这不起作用,请随时加入,但我希望这至少可以给你一些想法并且有点有用。

    【讨论】:

      猜你喜欢
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      相关资源
      最近更新 更多