我在域1中安装了OpenAM,我的应用程序在域代理2中受J2EE代理保护,我的问题是,一旦我在身份验证后访问我的应用程序,代理通过网络联系openam(用于授权),对于我在我的应用程序上进行的每次点击,如果答案是肯定的,那么如果我的代理人和openam位于地理上分开的两个域中,那么性能会产生什么影响,如果答案是否定的,那么代理如何使我的访问无效应用程序,当admin从openAm主页中使用户会话无效时。
答案 0 :(得分:1)
代理需要与OpenAM进行通信以进行授权决策,但它会缓存由此产生的决策,以便后续评估将是本地的。
OpenAM可以回调容器中的代理(这就是agentapp.war所针对的)。这可用于通知代理用户会话不再有效。例如,如果他们退出OpenAM,或者他们的会话已过期。
性能影响非常小。 OpenAM支持拥有数千万用户的安装 - 因此除非您的网站非常大,否则这不会成为问题。
您通常希望尽可能将代理程序本地化为同一数据中心的OpenAM流量。如果您有多个区域,则需要在这些区域中安装OpenAM实例。如果需要,可以将它们配置为相互故障转移。
答案 1 :(得分:1)
默认情况下,OpenAM和J2EE Policy Agent以通知模式进行通信,因此OpenAM会通知(检查配置属性中的notificationUrl字段)任何Logout事件的代理。现在,正如@ warren-strange所提到的,J2EE Policy Agent定期向OpenAM服务器发送请求,这样就可以知道令牌是否存在且是否有效。