PowerApps:在您的 PowerApps 应用程序中实施基于角色的安全性

PowerApps : Implementing Role Based Security In Your PowerApps App

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

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

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

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

如果您的公司规模较小,并且管理团队始终是管理员,您可以通过以下方式将其硬编码到您的应用中:

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

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

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

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

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