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

时间:2018-10-11 14:15:56

标签: powerapps

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

2 个答案:

答案 0 :(得分:0)

您可以根据环境的设置方式进行几种操作。

  1. 将管理员电子邮件地址保留在列表中的某个位置(Azure SQL / Sharepoint / etc)
  2. 连接到Office365Users数据源(View/Data Sources
  3. 比较User()。通过电子邮件发送给管理员列表
  4. 将管理按钮的可见性设置为“ true”(如果为true),否则设置为“ false”

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

如果您的衣服很小,并且管理员团队将始终是管理员,则可以使用以下命令将其硬编码到您的应用中:

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

答案 1 :(得分:0)

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

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

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

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