由ACL配置导致的AEM工作流访问和可见性问题
在AEM中,用户可能会失去对工作流模型的访问权限、查看他们不应看到的工作流,或者在访问控制应用不正确时无法启动工作流。 这些问题通常是由于/var/workflow/models下的工作流运行时节点上的ACL、过于宽泛的拒绝规则、缺少rep:glob限制或仍然引用旧版/etc/workflow/models路径的请求造成的。 组成员资格也会影响用户是只能看到自己的工作流,还是只能看到所有工作流。 更正ACL范围,验证工作流模型路径,并审查有效权限,使工作流可见性和执行与预期访问相匹配。
描述 description
环境
- Adobe Experience Manager as a Cloud Service
- AEM Managed Services
- Adobe Experience Manager内部部署软件
问题/症状
- 用户在工作流控制台中看不到工作流模型,即使它们属于
workflow-users或workflow-administrators。 - 在应用拒绝规则后,用户仍会看到默认工作流模型,例如
InboxRequest。 - 用户可以触发他们不打算使用的工作流。
- API请求失败,
400 Bad Request和Unknown workflow model with id /etc/workflow/models/...。 - 当管理员尝试在访问控制条目中定位工作流模型时,工作流模型未出现在权限选取器中。
原因
工作流可见性和访问由/var/workflow/models下的工作流模型运行时节点上的ACL控制。 在以下情况下出现问题:将ACL应用于错误的位置,缺少rep:glob限制或限制太宽,拒绝规则覆盖了预期的允许规则,或者工作流请求仍然引用/etc/workflow/models而不是运行时路径。 在某些情况下,管理员还希望为每个模型应用工作流权限,而无需添加基于路径的限制。
解决方法 resolution
要解决ACL配置导致的工作流访问和可见性问题,请执行以下操作:
- 确定应用了哪些工作流访问问题:缺少可见性、意外可见性、意外执行访问、API失败或ACL应用程序失败。
- 验证工作流模型存在于
/var/workflow/models下而不仅存在于/etc下。 - 查看受影响用户的组成员资格,并确认已将该用户分配给相应的工作流组以获得所需的访问级别。
- 检查是否拒绝
/var/workflow/models或父路径上的jcr:read条目,并删除或缩小任何无意中阻止所需工作流模型的规则。 - 要对组隐藏特定工作流模型,请在
/var/workflow/models上添加拒绝jcr:readACE,该限制具有rep:glob以定向该工作流模型的限制,例如/InboxRequest。 - 要仅允许选定的工作流模型,请应用具有适当
rep:glob限制的特定允许规则,而不是使用广泛的权限。 - 如果API请求失败,出现未知工作流模型错误,请更新该请求,使其指向
/var/workflow/models下的正确模型路径。 - 如果通过代码应用ACL,请在应用ACL之前确保目标文件夹存在,以便在不存在的路径上部署不会失败。
- 以受影响用户身份再次测试,并确认预期的工作流模型是可见、隐藏或可执行的。
- 如果工作流模型存在于
/var/workflow/models下,并且已放置正确的组和ACL,但用户仍然无法按预期查看、启动或限制预期的工作流模型,请将案例提交给Adobe支持,并包含受影响的工作流模型路径、用户组、预期行为和任何错误,如Unknown workflow model with id /etc/workflow/models/...。
相关阅读
recommendation-more-help
experience-cloud-kcs-help-kbarticles