在第11章中,我们已经学习了,在西门子Mendix如何设置应用的安全,安全分为几个级等相关知识,这一章我们就一起来学习一下,如何在应用等模块级设置安全。
设置模块安全性
设置安全或您的应用后, 在 App Explorer中的 UserManager 中添加了一个新元素,即 Security 元素。这包含模块的所有安全设置。您要设置的第一件事是模块角色。所有其他元素将使用这些角色来确定允许谁访问它们。然后这些模块角色将被分配给我们之前创建的用户角色。就像在项目安全性中看到的一样,您会看到几个选项卡,每个选项卡负责配置模块安全性的不同部分。
- 模块角色 : 您可以创建可用于为模块分配不同访问级别的模块角色。
- 页面访问 : 对于可通过导航项、链接或按钮访问的每个页面。包含按钮的页面本身不必是可访问的。
- Nanoflow 访问 : 当 Nanoflow 附加到导航菜单中的按钮、链接或项目时,它将显示在此选项卡中并且可以分配访问权限。
- 微流访问 : 当微流附加到导航菜单中的按钮、链接或项目时,它将显示在此选项卡中,并且可以分配访问权限。
- 实体访问 : 可以将实体配置为具有访问规则。这些规则是每个实体访问规则一个或多个模块角色的组合。通常,每个实体访问规则只需要一个模块角色。每个规则都允许您定义是否允许该模块角色创建和/或删除对象。此外,它还允许您将每个属性和关联的访问级别设置为 - **** (none)、 read 或 read/write。该规则允许您指定授予新属性和/或关联的访问级别。您也可以在对象级别设置访问权限。
并非 Mendix 中存在的所有安全选项卡都是可见的。这是因为如果您的模块中没有某些类型的元素,这些选项卡将被隐藏。为了完整起见,它们在下面列出。
- OData 访问 : 您可以定义用户是否必须使用用户名/密码登录,他们是否可以使用活动会话访问 OData 服务和/或使用自定义微流来处理身份验证。为此,您必须指定模块角色。请注意,实体访问也将被应用。
- REST 访问 : 您可以定义用户是否必须使用用户名/密码登录,他们是否可以使用活动会话访问 REST 服务和/或使用自定义微流来处理身份验证。为此,您必须指定模块角色。请注意,实体访问也将被应用。
- 数据集访问 : 您可以定义哪些模块角色可以访问为数据集定义的参数。可以单独允许或禁止每个可能的参数值。
创建模块角色
Summerhill Hospital 的工作人员为您提供了将登录此应用程序的用户类型列表。您甚至已经创建了所需的用户角色,因此下一步将是设置模块角色。由于您只负责您自己模块的模块角色,让我们为您的 UserManager 模块打开安全设置。
- 在 UserManager 模块中双击 Security。
- 在模块角色部分中,双击 用户 模块角色并将其重命名为 Employee 。
- 单击 新建 以添加一个名为 Administrator的新模块角色 。
- 再次单击 新建 以添加另一个名为 KeyUser的模块角色 。
- 完成后,单击 OK。
设置页面和微流访问
现在您已经了解了安全性的基础知识,是时候为微流和页面设置访问权限了。
- 在您的UserManager模块中双击Security。
- 单击页面访问选项卡。
- 使用下图设置页面访问。
- 单击微流访问选项卡并使用下图设置微流访问。
- 完成后,单击OK。
您已经配置了基本安全性,现在您已经定义了对页面和逻辑的访问权限。
设置实体访问
现在我们已经设置了页面和微流访问权限,是时候配置对我们数据的访问权限了,以便每个角色只能看到与他们相关的数据。此外,我们将决定谁可以写入数据,谁不可以。
- 在 App Explorer的 UserManager 模块下,双击 Security。
- 单击 实体访问 选项卡和 新建 以创建您的第一个规则。
- 在新打开的屏幕中选择所有实体,然后单击 OK
- 选择 管理员 作为用户角色并从下图中复制设置。单击 确定。
- 再次 单击 新建,仅选择 Employee 实体,然后单击 确定
- 匹配下图中的设置,然后单击OK。
- 再次单击 新建 ,选择 部门 和班次 实体,然后单击 确定。
- 匹配下图中的设置,然后单击 OK。
- 最后一次 单击 New ,选择 Employee 实体,然后单击 OK。
- 匹配下图中的设置。确保将 EmployeeId 成员设置为 Read 并将所有其他成员设置为 Read, Write。完成后单击 确定 。
- 您的 实体访问 规则应如下图所示。完成后,单击 OK。
请注意,即使您已授予 管理员 和 KeyUser 角色的 完全写入权限, Shift 实体的 ShiftId 属性也 仅允许 读取 权限。这是因为它是 自动编号 实体类型。
将模块角色分配给用户角色
现在是时候将注意力转移到应用程序安全上了。
- 双击 应用程序中的安全性。
- 单击 用户角色 并编辑每个用户角色,以便您拥有图像中的设置。为此,您需要选择正确的模块角色。
完成后,单击 OK
系统和管理模块
您已经看到了三个模块,但还没有讨论过——它们是 System 模块、Administration 模块和 DataGrid 模块。系统模块是您无法编辑的必需模块。它是 Mendix 运行的关键,允许您的用户登录。管理模块默认提供给您,允许您管理本地用户。该模块是可编辑的,您甚至可以根据需要将其删除。但是,建议将其保留在原处,因为它包含管理用户的基本功能。
最后是 DataGrid 模块,它自动包含在您用于应用程序的空白 Web 应用程序模板中。我们不需要这个模块,所以我们将在下一个练习中删除它,并确保我们的应用程序通过了内置的安全检查
移除模块并验证安全检查
- 在App Explorer的 Marketplace 模块下找到DataGrid模块。********
- 右键单击DataGrid模块,然后单击Delete。
- 单击警告窗口中的删除模块和用户数据
- 双击应用程序中的安全性。
- 您现在应该会看到App status参数在 Complete旁边显示一个绿色圆圈,以验证您的应用程序通过了内置的安全检查。
好了,我们今天学习了如何在模块中创建角色,并且在应用中管理角色等相关内容,下一章我们继续学习,如何使用XPath进一步提高应用的安全性。
低代码新手入门系列,快速导航
- 第11章 低代码新手入门系列,西门子Mendix 安全管理
- 第10章 低代码新手入门系列,西门子Mendix XPath数据过滤
- 第9章 低代码新手入门系列,西门子Mendix 微流如何进行Debug?
- 第8章 低代码新手入门系列,西门子Mendix 创建我们的第一个微流
- 第7章 低代码新手入门系列,西门子Mendix 图形逻辑组件,微流
- 第6章 低代码新手入门系列,西门子Mendix UI页面组件
- 第5章 低代码新手入门系列,西门子Mendix页面编辑器
- 第4章 低代码新手入门系列,西门子Mendix领域模型和数据存储
- 第3章 低代码新手入门系列,西门子Mendix面向专业开发者的IDE
- 第2章 低代码新手入门系列,西门子Mendix团队如何进行协作?
- 第1章 低代码新手入门系列,西门子Mendix 平台简介