【问题标题】:PowerApps : Implementing Role Based Security In Your PowerApps AppPowerApps : 在您的 PowerApps 应用程序中实施基于角色的安全性
【发布时间】:2018-10-25 23:45:00
【问题描述】:

我使用 Power Apps 创建了一个应用程序。假设主屏幕有两个按钮“admin”和“user”。如果具有管理员角色的用户访问该应用程序,他/她应该只能看到“管理员”按钮。如果具有“用户”角色的用户登录,他/她应该只能看到“用户”按钮。假设用户是 Azure Active Directory 的一部分。

【问题讨论】:

  • 你试过什么?您是否尝试过连接到 Azure AD 或 O365 Graph?

标签: powerapps


【解决方案1】:

您可以通过多种方式执行此操作,具体取决于您的环境设置方式。

  1. 将管理员电子邮件地址保存在某个列表中(Azure SQL/Sharepoint/等)
  2. 连接到 Office365Users 数据源 (View/Data Sources)
  3. 将 User().Email 与管理员列表进行比较
  4. 如果为真,则将管理按钮的可见性设置为“真”,否则为“假”

另一种选择是连接到 Azure AD 数据源并使用 AzureAD.GetMemberGroups 或其他类似函数来查看用户是否属于正确的安全组。

如果您是一个小公司,并且管理团队始终是管理员,您可以将其硬编码到您的应用中:

If(
    User().Email = bob@mycompany.com,
    true,
    false
)

【讨论】:

    【解决方案2】:

    根据用户安全角色控制对应用元素的访问,有三种方法:

    方法一: 我们可以利用 Azure Active Directory 组。 我们需要在 PowerApps 中创建一个自定义连接器,它将返回用户所属的组(表示安全角色)。 这些组应在 Azure Active Director 中创建。 用户必须属于某个组。

    方法二: 如果应用程序的数据源使用基于安全角色的模型,这更适用。 在这种情况下,PowerApps 将继承用户在数据源中的安全角色。

    方法三: 假设将 SQL Server 数据库作为我们应用程序的数据源。 我们可以创建自己的安全模型,例如有一个用户表,其中的列存储布尔类型值(SQL Server 中的位),每列代表一个安全角色。值 true 表示用户已分配相应的角色。

    【讨论】:

      猜你喜欢
      • 2011-12-22
      • 2022-01-18
      • 1970-01-01
      • 2014-04-30
      • 2012-05-27
      • 2012-03-18
      • 2013-03-21
      • 2011-05-12
      • 1970-01-01
      相关资源
      最近更新 更多