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 的一部分。
您可以通过多种方式执行此操作,具体取决于您的环境设置方式。
- 将管理员电子邮件地址保存在某个列表中(Azure
SQL/Sharepoint/etc)
- 连接到 Office365Users 数据源(
View/Data Sources
)
- 将 User().Email 与管理员列表进行比较
- 如果为真,则将管理按钮的可见性设置为 "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 表示用户分配了相应的角色。
我使用 Power Apps 创建了一个应用程序。假设主屏幕有两个按钮 "admin" 和 "user"。如果具有管理员角色的用户访问应用程序 he/she 应该只能看到 "Admin" 按钮。如果具有 "User" 角色的用户登录,he/she 应该只能看到 "user" 按钮。假设用户是 Azure Active Directory 的一部分。
您可以通过多种方式执行此操作,具体取决于您的环境设置方式。
- 将管理员电子邮件地址保存在某个列表中(Azure SQL/Sharepoint/etc)
- 连接到 Office365Users 数据源(
View/Data Sources
) - 将 User().Email 与管理员列表进行比较
- 如果为真,则将管理按钮的可见性设置为 "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 表示用户分配了相应的角色。