AAD托管的Blazor Webassembly-当用户是大量组的成员时,如何获取用户广告组的子集

问题描述 投票:0回答:1

我已经在ASP.Net Core github存储库上询问了此question,但我认为查询没有得到足够的回答,因此在此处发布问题。

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

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

我知道如何对图形API查询进行编码,但是不清楚在何时何地进行此调用。当我从Graph Api中检索到组后,如何将组信息反映到令牌声明中,因此客户端应用程序可以使用常规的授权机制,而无需了解用户组的填充方式的详细信息。

azure-active-directory azure-ad-graph-api blazor-client-side
1个回答
0
投票

我不确定这是否是推荐的方法,但是这里的文档讨论了添加组和角色以使用用户对象声明的方式。 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,除此以外,我找不到任何其他文档来向授权机制添加组/角色。如果有人有更好的方法或者为什么这样做不起作用,请随时提出建议,但是我希望这至少可以给您一些想法,并且会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.