【问题标题】:What's the simplest way to get user Groups from WAAD?从 WAAD 获取用户组的最简单方法是什么?
【发布时间】:2015-02-13 13:50:19
【问题描述】:

我已经启动并运行了 AngularJS 和 Web.API WAAD 身份验证。对于客户端,我使用了很棒的库ADAL.JS。对于后端,我使用Microsoft.Owin.Security.OAuth。这部分进行得很顺利。

现在我想实现基于角色的授权(将映射到 WAAD 组)。组不包含在身份验证令牌中,因此我必须向 Azure Graph API 询问它们。我看到了各种方法,使用自定义声明提供程序,将 Web 服务添加到项目等。一些示例已经提供了组和角色之间的映射以在 [Authorize] 属性中使用。

但是,当我已经通过身份验证时,如何从提供用户 ID 或用户名的 WAAD 获取组 ID/名称列表的最简单示例是什么?

另外,有没有办法让这些数据在 JS 中用于 Angular 前端,或者我应该创建一个 API 服务,Angular 应该调用角色信息?

【问题讨论】:

    标签: angularjs azure asp.net-web-api active-directory azure-active-directory


    【解决方案1】:

    在非 JS 情况下,在令牌中获取组的最简单方法是选择加入。下载应用程序的清单,找到“groupMembershipClaims”条目,将其值更改为“SecurityGroup”或“All”,然后上传回来清单。 但是请注意,这不适用于您的方案,因为它使用隐式授权 - 这里令牌在 URI 片段中返回,因此大令牌可能会超过浏览器的 URL 长度限制。 您始终可以向 Graph 请求组,并通过 API 上的自定义操作将其提供给您的前端,但是从您编写的内容来看,您已经熟悉了。让我在这里讨论这个问题 - 如果有更简单的方法可以在 SPA 中进行这项工作,我会回到这个线程。 高温高压 五。 更新:我已验证并且在隐式授权情况下,您将始终通过超额索赔接收组。请参考https://github.com/AzureADSamples/WebApp-GroupClaims-DotNet/tree/master/WebApp-GroupClaims-DotNet - 它将向您展示如何处理超额索赔以检索组。您需要做的就是将相同的指导应用于 Web API,如果您需要将信息提供给客户端,请公开一个或多个操作。

    【讨论】:

    • 感谢您的回答。我希望我能在下周初试一试。如果没有,那么我会在 1 月份回复它,并告诉它是否有效。
    猜你喜欢
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多