【问题标题】:Creating, assigning roles to users and loading menu based on roles assigned根据分配的角色创建、分配角色给用户和加载菜单
【发布时间】:2020-03-07 18:43:43
【问题描述】:

我想在 Azure Active Directory 中为已注册的应用程序创建角色,并根据分配给用户的角色加载菜单。

我在之前的项目中做过这个,没有身份提供者、安全服务提供者或没有 OIDC。我们遵循的过程如下

  • 从用户创建屏幕创建用户

  • 从角色创建屏幕创建角色并将菜单项分配给角色

  • 从用户角色分配屏幕为用户分配角色

  • 根据用户角色加载菜单项


    所有这些数据都存储在 RDBMS 中

    我想使用 Azure Active Directory 从应用程序执行上述所有操作。我在谷歌搜索过。所有示例都显示为转到 azure 门户并手动执行所有操作。但我想从应用程序中做到这一点。
    1) 当管理员登录时,将用户从 Azure Active Directory 加载到应用程序中。
    2) 在 Azure Active Directory 中为注册的应用程序创建角色并将菜单项分配给角色
    3) 为用户分配角色

注意:我们使用的是 Azure Active Directory B2B 和 SSO 应用程序。

【问题讨论】:

    标签: reactjs .net-core azure-active-directory


    【解决方案1】:

    在 Azure AD B2C 中,您可以通过不同的方式实现此目的。在开始之前,我将解释一下 Azure AD B2C 中的用户角色和组。

    AD B2C 中的用户角色是 B2C 告诉您您在 Azure AD 中拥有什么权限的方式。为了实现你的问题陈述,虽然你可以利用 Group member ship。

    要实现这种行为,您所要做的就是创建特定于应用程序的组并在其中分配用户。

    一旦组创建和用户映射完成,您就可以编写代码从您的应用程序中获取用户成员,这里是获取group member ship. 的示例代码,您可以将其存储在您的客户端应用程序中。

    恐怕没有直接的方法可以在您的声明中添加组成员,这里是支持文档:

    https://feedback.azure.com/forums/169401-azure-active-directory/suggestions/10123836-get-user-membership-groups-in-the-claims-with-ad-b

    但简而言之,Role base menu创建实现逻辑,你只需要在客户端编写,只需要访问session存储项即可。

    https://mrochon.azurewebsites.net/2019/05/06/using-groups-in-azure-ad-b2c/

    希望对你有帮助。

    【讨论】:

    • 感谢您提供宝贵的信息。所以我将创建用户、组,从 dotnet core c# 将用户添加到组。对于菜单项,我将根据数据库中的组维护菜单项。当用户登录时,我将从令牌中检索组并将菜单项发送到前端。它是否正确?我怀疑在会话存储中存储菜单项将是安全问题,因为用户可以篡改会话存储。当用户刷新应用程序时,最好的事情是我们必须从后端获取菜单项。
    • 如果有帮助,请接受它作为答案,因为它会帮助其他有同样问题的人。
    猜你喜欢
    • 2023-02-14
    • 2015-08-01
    • 2021-06-24
    • 2020-09-07
    • 1970-01-01
    • 2023-01-13
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多