第11章 低代码新手入门系列,西门子Mendix 安全管理

518 阅读9分钟

介绍

安全性是应用程序最重要的方面之一,因为错误配置或未能设置安全性可能会对利益相关者产生重大影响。西门子Mendix 通过在西门子Mendix平台中处理平台级别的基本安全性来帮助您。虽然这有帮助,但有些安全部分是特定于应用程序的。这些部分必须在开发过程中进行配置。西门子Mendix安全系统通过安全配置选项简化了此过程。不过不要上当;设置安全性仍然很复杂。幸运的是,您将在接下来几个章节中学习正确设置安全性所需的所有知识。我们将涵盖:

  • 西门子Mendix授权模型
  • 用户和模块角色
  • 为您自己的模块设置模块安全性
  • 配置项目安全性

Mendix 安全基础知识

在安全方面有两个重要的概念:身份验证和授权。身份验证是对用户身份的确定,而授权确定用户可以访问的内容。

验证

西门子Mendix提供开箱即用的基本密码身份验证,并通过 OpenID 和 SAML 等标准协议提供与第三方身份验证服务的集成。这允许您将西门子Mendix应用程序集成到您现有的身份验证环境中并配置单点登录 (SSO)。除此之外,您还可以使用西门子Mendix SSO 模块,以便用户可以使用他们的西门子Mendix 帐户登录。

授权

西门子Mendix 授权模型已集成到平台中。这使它成为一个跨领域的关注点。为了确保您可以轻松地将模块集成到您的应用程序中,西门子Mendix 中的授权分为两部分:项目安全 和 模块安全。在项目级别,您可以配置一般安全设置,例如密码策略。在模块级别,您可以配置对页面、微流、实体等的访问。您可以通过安全配置屏幕或直接在微流、页面或实体的属性窗格中配置安全性。 

您通过角色的概念将模块安全性连接到项目安全性。因此,当您想使用 Marketplace 中的模块时,您所要做的就是将该模块的角色映射到您已经在项目中配置的角色。 

为了理解西门子Mendix 安全模型,将其分为四个主要部分,如下所示。用户登录后,导航菜单将仅包含指向用户有权访问的页面和微流程的按钮。页面上的按钮也是如此。如果它们链接到用户无权访问的页面或微流,则按钮将被隐藏。当涉及调用其他微流的微流时,情况会发生变化。始终允许一个微流调用另一个微流。在这种情况下,不会检查模块角色。

image.png

在西门子Mendix 中,您可以使用基本密码验证。除此之外,您还可以使用 Marketplace 中的 SAML 模块针对 Active Directory 等身份提供者进行身份验证。要查看您有哪些可用选项,请查看市场中的身份验证部分。

应用安全级别

安全性始终应用于您的整个应用程序,您可以在应用程序级别配置许多设置。当您创建新的 Mendix 应用程序时,安全性仅在应用程序级别可见。屏幕相当小,提供关闭、原型/演示和生产选项。

image.png

乍一看,这给您的印象是 Mendix 的安全性极低。然而,西门子Mendix 安全系统相当先进。切换到其他模式之一后,您将看到 UI 发生了变化。在安全方面,西门子Mendix 只会向您展示您需要的东西。三种安全模式提供以下功能:

  • Off  在此模式下,西门子Mendix 根本不应用任何安全措施。我们一直在这种模式下工作,所以它有利于初始开发,因为它的工作量较少。但是,您希望在启动下一个应用程序时尽快打开安全性。这样您就可以在开发时配置安全性。这是一个很好的节省时间。
  • Prototype/Demo  当您拥有应用程序的原型并且想要展示基本的安全性时,这是您应该使用的模式。它提供登录功能、页面访问以及微流和纳流访问。
  • Production  在将应用程序部署到云之前,您必须将安全设置为生产。完成此操作后,您需要配置安全性的所有方面。否则,您将无法将应用程序部署到西门子Mendix 云中的许可节点。

西门子Mendix 中的安全分为两部分,应用安全和模块安全。应用程序安全主要处理常规设置,而模块安全处理对模块中各个元素的访问。这允许您导出模块及其安全性并将其导入另一个项目,从而提高可重用性。这是使用角色的概念来完成的。在应用程序安全性中,您可以设置可以分配给用户的用户角色。在模块安全性中,您设置分配访问权限的模块角色。然后,您将这些模块角色分配给您的用户角色。

image.png

设置应用安全

应用安全是您在应用级别配置安全方面的部分。可以在屏幕中心的选项卡中找到不同的方面。它们中的每一个都配置了一组不同的方面。让我们回顾一下:

image.png

  • Module status  您可以在此处查看特定模块的所有安全方面是否已正确设置。所有尚未完全设置安全性的模块都将在此处可见。因此,当您想查看模块中安全配置的状态时,请查看此处。 
  • User roles  您可以通过为用户分配用户角色来授予他们对您的应用程序的特定访问权限。您可以在此选项卡中创建和编辑用户角色。 
  • Administrator 要启动您的应用程序,您需要一个初始用户登录。该用户应具有名称、密码和用户角色。所有这些都可以在这里进行配置。
  • Demo users  在开发应用程序时,您可能想查看您的安全设置是否按预期工作。在这里,您可以为每个可用于测试安全配置的用户角色配置演示用户。
  • Anonymous users  有时您需要向没有用户帐户的人授予访问权限。要么他们永远不会拥有一个,要么他们必须创造一个。此选项卡允许您进行设置并定义匿名用户将获得的用户角色。
  • Password policy   Mendix 允许您设置基本密码身份验证,为此,您需要影响密码策略。此选项卡允许您执行此操作。

创建用户角色

现在您已经激活了安全性,是时候添加您与 Summerhill Hospital 的团队讨论过的角色了。管理员将有权访问整个系统,关键用户将是特定部门的管理员,用户将只能访问与其工作相关的信息。所以让我们开始创建一些用户角色。 

  1. App Security窗口中,单击 用户角色
  2. 单击 User 用户角色并将名称更改为 KeyUser。单击 确定
  3. 单击 新建 并将角色命名为 Employee。取消选中所有模块。仔细检查您是否在此处选中任何框。稍后在配置模块安全性时,您将在本模块中创建模块角色。 

image.png

  1. 单击 OK 关闭 Add User Role  ,然后再次 单击 OK 关闭 App Security 窗口并保存您的更改。你会看到一些新的错误出现。那也行。我们会尽快修复它们。

将新用户设置为员工用户角色

现在您已将用户角色添加到我们的应用程序,您需要确保当员工收到帐户时,他们设置了用户角色。

  1. 打开OCH_Employee_CreateDeleteAccount微流程。
  2. 在Create Account活动之前添加一个Retrive Object活动。 您将使用此活动来检索将用作用户默认角色的用户角色 检索对象中: - 将设置为来自数据库 - 将实体设置为System.UserRole - 将范围设置为First - 将对象名称更改为UserRole_Employee - 设置 XPath 约束,如下面的屏幕截图所示。这将从数据库中检索用户角色 Employee。

image.png

image.png

  1. 打开Create Account活动,添加新的初始化,并将System.UserRoles关联设置为 $UserRole_Employee。

image.png

设置演示用户

最后一件事将有助于测试您的应用程序:配置 demo_users 以便更轻松地以管理员、KeyUser 或员工身份测试应用程序。

  1. 在您的应用 安全设置中打开演示用户选项卡。

image.png

默认情况下,您会得到两个。保持 demo_administrator不变将demo_user重命名为demo_keyuser并创建第三个:demo_employee。确保将实体设置为Administration.Account并检查Employee。然后单击确定

image.png

  1. 恭喜,您的应用程序现在状态良好。是时候在本地运行这个应用程序,看看一切是否按预期工作了。
  2. 通过使用默认密码“ 1 ”以“ MxAdmin ”登录来尝试一下。您可以在“管理员”选项卡上项目的“ 安全”部分找到该密码。默认情况下,密码是隐藏的,但如果您选中复选框Show password,您将能够毫无问题地看到该密码。

image.png

登录后,请注意屏幕右侧的小方形标签,其中包含用户图像和方向圆圈。如果您点击它,您可以使用您的演示用户立即在用户角色之间切换以查看您的应用程序的行为方式,这比创建一堆测试帐户要容易得多!

image.png

好了,这一章我们先介绍了,西门子Mendix里面的安全基础、应用安全等级相关知识,下一章我们一起来学习如何在模块里面设置模块的安全,并且使用XPath来提高安全行。

低代码新手入门系列,快速导航