了解如何管理用户帐户和服务,尽管在私人开发环境中是必需的,但在AEM Forms的JEE生产环境中却不是必需的。
通常,开发人员不使用生产环境构建和测试其应用程序。 因此,您必须管理用户帐户和服务,尽管在专用开发环境中是必需的,但在生产环境中却不是必需的。
本文描述了通过JEE上的AEM Forms提供的管理选项来减少整个攻击面的方法。
在JEE上安装和配置AEM Forms后,许多服务可通过SOAP和Enterprise JavaBeans™(EJB)进行远程调用。在本例中,术语“remote”是指具有对应用程序服务器的SOAP、EJB或操作消息格式(AMF)端口的网络访问权限的任何调用者。
尽管JEE服务上的AEM Forms需要为授权呼叫者传递有效凭据,但您应仅允许远程访问需要远程访问的服务。 要实现有限的辅助功能,您应将远程访问服务集减少到功能系统的最低要求,然后启用对所需其他服务的远程调用。
AEM Forms的JEE服务始终至少需要SOAP访问。 这些服务通常是Workbench使用所必需的,但也包括Workspace Web应用程序调用的服务。
使用管理控制台中的“应用程序和服务”网页完成此过程:
在Web浏览器中键入以下URL,登录到管理控制台:
https://[host name]:[port]/adminui
单击服务>应用程序和服务>首选项。
将“首选项”设置为视图同一页面上最多200个服务和端点。
单击服务 > 应用程序和服务 > 端点管理。
从Provider列表中选择EJB,然后单击Filter。
要禁用所有EJB端点,请选中列表中每个端点旁边的复选框,然后单击禁用。
单击下一步,对所有EJB端点重复上一步。 在禁用端点之前,请确保EJB列在提供程序列中。
从Provider列表中选择SOAP,然后单击Filter。
要删除SOAP端点,请选中列表中每个端点旁边的复选框,然后单击删除。 请勿删除以下端点:
单击下一步,对于不在上述列表中的SOAP端点重复上一步。 在删除端点之前,请确保SOAP列在提供程序列中。
某些表单服务器服务允许对某些操作进行未经身份验证(匿名)的调用。 这意味着,可以作为任何经过身份验证的用户或根本没有经过身份验证的用户调用服务公开的一个或多个操作。
在Web浏览器中键入以下URL,登录到管理控制台:
https://[host name]:[port]/adminui
单击服务>应用程序和服务>服务管理。
单击要禁用的服务的名称(例如AuthenticationManagerService)。
单击安全选项卡,取消选择允许匿名访问,然后单击保存。
完成以下服务的步骤3和步骤4:
如果您打算公开这些服务中的任何一种以进行远程调用,您还应考虑禁用这些服务的匿名访问。 否则,对此服务具有网络访问权限的任何呼叫者都可能调用该服务,而不传递有效凭据。
对于任何不需要的服务,应禁用匿名访问。 许多内部服务都要求启用匿名身份验证,因为可能需要系统中的潜在任何用户调用这些身份验证,而无需预先授权。
最终用户可以通过Workbench、AEM FormsWeb应用程序或调用AEM Forms服务器服务的自定义应用程序验证到AEM Forms。 一个全局超时设置用于指定此类用户在被迫重新验证之前可以与AEM Forms(使用基于SAML的断言)进行交互的时间。 默认设置为2小时。 在生产环境,时间量需要减少到可接受的最小分钟数。
在Web浏览器中键入以下URL,登录到管理控制台:
https://[host name]:[port]/adminui
单击设置>用户管理>配置>导入和导出配置文件。
单击导出以生成具有现有AEM Forms设置的config.xml文件。
在编辑器中打开XML文件并找到以下条目:
<entry key=”assertionValidityInMinutes” value=”120”/>
将该值更改为大于5(以分钟为单位)的任意数字并保存文件。
在管理控制台中,导航到“导入和导出配置文件”页。
输入修改后的config.xml文件的路径,或单击“浏览”导航到该文件。
单击导入以上传修改后的config.xml文件,然后单击确定。