如何在多调度程序设置中同步用户令牌

how do I sync user token in multi dispatcher setting

寻求您对以下两个用例的最佳实践的建议: 第一个用例: 我已经使用 TarMK 设置了两个 Dispatchers(D1 和 D2)和两个发布者(P1 和 P2)。 D1 始终向 P1 发送请求,D2 始终向 P2 发送请求。负载均衡器向 D1 或 D2 发送请求。

第二个用户案例: 我有另一个设置,其中 D1 可以发送请求 P1 或 P2,D2 可以发送请求 P1 或 P2。负载均衡器向 D1 或 D2 发送请求。

在此应用程序中,用户令牌是在用户身份验证成功时创建的。此令牌是基于位于 /etc/key 的密钥创建的。 /etc/key 下的密钥对于 P1 和 P2 是不同的。

鉴于此设置,用户登录到 P1,如果 P1 关闭,则 1)如何在不要求用户登录的情况下将用户重定向到 P2。 2) 如何将用户令牌复制到 P2?

我不想使用反向复制。这种设计的最佳实践是什么?我需要在 P1 和 P2 中保留相同的密钥 /etc/key 吗?

Do I need to keep same key /etc/key in both P1 and P2?

简答:

详情

AEM 使用 Encapsulated Tokens 支持跨发布者场的经过身份验证的用户。

如果您遵循在集群中的所有发布者之间同步 HMAC 密钥的建议,那么在失败的情况下,您的每个发布者使用一个发布者或跨每个发布者集群发布者的两种情况都应该有效。

这可以按照说明来实现here

AEM 是围绕无状态身份验证设计的,但需要使用存储在 /etc/key 路径下的相同 HMAC 密钥对令牌进行加密和解密。除非您同步这些密钥,否则一个实例无法理解来自另一个实例的令牌。这是一个design/feature的AEM认证。