在OSGi环境上强化和保护AEM表单

了解在OSGi服务器上保护AEM Forms的建议和最佳实践。

保护服务器环境对组织至关重要。 本文描述了保护运行AEM Forms的服务器的建议和最佳实践。 这不是操作系统的全面主机强化文档。 相反,本文描述了您应该实施的各种安全强化设置,以增强已部署应用程序的安全性。 但是,为确保应用程序服务器保持安全,除了本文中提供的建议之外,您还应实施安全监控、检测和响应程序。 该文档还包含保护PII(个人身份信息)的最佳实践和指南。

本文面向负责规划AEM Forms的应用程序或基础架构开发和部署的顾问、安全专家、系统架构师和IT专业人士。 这些角色包括以下常见角色:

  • IT和运营部门的工程师必须在其自己或客户组织中部署安全的Web应用程序和服务器。
  • 负责为组织中的客户规划建筑工作的建筑师和规划师。
  • IT安全专家,他们专注于提供组织内跨平台的安全。
  • Adobe和合作伙伴的顾问,他们需要为客户和合作伙伴提供详细的资源。

下图显示了典型AEM Forms部署中使用的组件和协议,包括相应的防火墙拓扑:

典型体系结构

AEM Forms高度可定制,可在多种不同的环境中工作。 某些建议可能不适用于您的组织。

安全传输层

传输层安全漏洞是任何面向Internet或面向Intranet的应用程序服务器面临的首要威胁之一。 本节介绍针对这些漏洞强化网络上主机的过程。 它解决了网络分段、传输控制协议/因特网协议(TCP/IP)栈加固以及使用防火墙保护主机的问题。

限制开放端点

组织可以具有外部防火墙来限制最终用户与AEM Forms发布场之间的访问。 组织还可以具有内部防火墙,以限制发布场与组织元素中的其他元素(例如,作者实例、处理实例、数据库)之间的访问。 允许防火墙允许最终用户和组织元素中访问有限数量的AEM FormsURL:

配置外部防火墙

您可以配置外部防火墙以允许特定AEM FormsURL访问Internet。 要填写或提交自适应表单、HTML5、通信管理信件或登录AEM Forms服务器,必须访问这些URL:

组件 URI
自适应表单
  • /content/dam/formsanddocuments/AF_PATH/jcr:content
  • /etc/clientlibs/fd/
  • /content/forms/af/AF_PATH
  • /libs/granite/csrf/
HTML5 表单
  • /content/forms/formsets/用户档案/
通信管理
  • /aem/forms/createcorresponences*
Forms门户
  • /content/forms/portal/
  • /libs/cq/ui/widgets*
  • /libs/cq/security/
AEM Forms 应用程序
  • /j_security_check*
  • /soap/services/AuthenticationManagerService

配置内部防火墙

您可以配置内部防火墙,以允许某些AEM Forms组件(例如,作者实例、处理实例、数据库)与发布场和拓扑图中提到的其他内部组件进行通信:

主机
URI
发布场(发布节点) /bin/receive
处理服务器 /content/forms/fp/*
Forms Workflow加载项服务器(JEE服务器上的AEM Forms) /soap/sdk

设置存储库权限和访问控制列表(ACL)

默认情况下,所有人都可以访问发布节点上的可用资产。 对所有资产启用只读访问权限。 需要启用匿名访问。 如果您计划限制表单视图并仅向经过身份验证的用户提交访问权限,则使用公用组仅允许经过身份验证的用户对发布节点上可用的资产具有只读访问权限。 以下位置/目录包含需要强化的表单资产(对已验证的用户来说,为只读访问):

  • /content/*
  • /etc.clientlibs/fd/*
  • /libs/fd/*

安全地处理表单数据

AEM Forms将数据存储到预定义的位置和临时文件夹。 您应保护数据,防止未经授权的使用。

设置临时文件夹的定期清除

为文件附件、验证或预览组件配置表单时,相应数据会存储在位于/tmp/fd/的发布节点上。 数据会定期清除。 您可以将默认数据清除作业修改为更具攻击性。 要修改计划清除数据的作业,请打开AEM Web Console,打开AEM Forms临时存储清除任务,并修改Cron表达式。

在上述情况下,仅为经过身份验证的用户保存数据。 此外,访问控制列表(ACL)保护数据。 因此,修改数据清除是保护信息的额外步骤。

保护表单门户提交操作保存的数据

默认情况下,自适应表单的表单门户提交操作会将数据保存到发布节点的本地存储库中。 数据保存在/content/forms/fp。 不建议在发布实例上存储数据。

您可以配置存储服务以通过线路发送到处理群集,而无需在发布节点上本地保存任何内容。 处理群集位于专用防火墙后的安全区域中,数据保持安全。

使用AEM DS设置服务的处理服务器凭据将数据从发布节点发布到处理服务器。 建议使用具有对处理服务器存储库的读写访问权限的受限非管理用户的凭据。 有关详细信息,请参阅为草稿和提交配置存储服务

通过表单数据模型(FDM)处理的安全数据

使用具有最低所需权限的用户帐户为表单数据模型(FDM)配置数据源。 使用管理帐户可以为未经授权的用户提供对元数据和模式实体的开放访问。
数据集成还提供对FDM服务请求授权的方法。 您可以插入执行前和执行后授权机制来验证请求。 在预填表单、提交表单以及通过规则调用服务时生成服务请求。

预处理授权: 您可以在执行请求之前使用预处理授权来验证请求的真实性。您可以使用输入、服务和请求详细信息来允许或停止执行请求。 如果停止执行,则可以返回数据集成异常OPERATION_ACCESS_DENIED。 您还可以在发送客户端请求以执行之前修改它。 例如,更改输入并添加其他信息。

后处理授权: 在将结果返回给请求者之前,您可以使用后处理授权验证和控制结果。您还可以过滤、修剪和插入其他数据到结果。

限制用户访问

创作、发布和处理实例需要一组不同的用户角色。 请勿运行任何具有管理员凭据的实例。

在发布实例上:

  • 只有表单用户组的用户才能预览、创建草稿和提交表单。
  • 只有cm-user-agent组的用户才能预览通信管理信件。
  • 禁用所有非基本匿名访问。

在作者实例上:

  • 对于每个人物,都有一组具有特定权限的预定义用户组。 将用户分配到组。

    • 表单用户组:

      • 可以创建、填写、发布和提交表单。
      • 无法创建基于XDP的自适应表单。
      • 没有编写自适应表单脚本的权限。
      • 无法导入XDP或包含XDP的任何包
    • 表单用户——强大的用户组创建、填写、发布和提交所有类型的表单,为自适应表单编写脚本,导入包含XDP的包。

    • 模板作者和模板用户可以预览和创建模板。

    • fdm-authors的用户可以创建和修改表单数据模型。

    • cm-user-agent组的用户可以创建、预览和发布通信管理信件。

    • 工作流编辑器组的用户可以创建收件箱应用程序和工作流模型。

处理作者时:

  • 对于远程保存和提交用例,请创建对crx-repository的content/form/fp路径具有读取、创建和修改权限的用户。
  • 将用户添加到工作流用户组,使用户能够使用AEM收件箱应用程序。

AEM Forms环境的安全内部网元素

通常,处理群集和Forms Workflow加载项(JEE上的AEM Forms)在防火墙后运行。 因此,这些都被认为是安全的。 您仍可以执行几个步骤来强化这些环境:

安全处理群集

处理群集在创作模式下运行,但不将其用于开发活动。 不允许将普通用户包括在处理群集的内容作者和表单用户组中。

使用AEM最佳做法保护AEM Forms环境

此文档提供特定于AEM Forms环境的说明。 您应确保在部署时基础AEM安装是安全的。 有关详细说明,请参阅AEM安全核对清单文档。

在此页面上