2014-11-06 72 views
0

我们已经在具有两个节点的JBoss EAP 6.3群集中成功配置了SSO。JBoss单点登录缓存

事情是,我不明白我们必须创建的名为“sso”的复制缓存与我们安全域中的缓存类型(设置为默认值)之间的关系(该域使用ldap连接)。

安全域使用该复制缓存吗?哪个缓存使用?因为我们想为缓存配置一个超时,所以如果在ldap上发生了变化,缓存将刷新。

这种情况的一个常见示例是,当用户获得新权限时,他希望立即或在短时间内访问新的功能。实际上,我们必须重新启动整个JBoss,这并不是很好。

谢谢, 关心。

回答

0
<security-domain flushOnSessionInvalidation="true" >OUR_DOMAIN</security-domain> 

随着对的jboss-web.xml中那行,我们得到了我们所期待的行为。

1

在集群模式下,使用SSO缓存对一个节点上的用户(身份验证发生在安全域中)进行身份验证,身份验证会自动传递到集群中的其他节点。

安全域缓存它加速了身份验证检查,这可以在具有复制缓存的节点之间共享。但是,缓存中凭据的存在并不保证在应用程序中进行身份验证。

例如,如果您将sso的属性reauthenticate设置为true,则此属性是一个标志,用于确定是否需要将每个请求重新认证至securityRealm。设置为true可允许具有不同安全域配置的Web应用程序共享SSO

我希望这个帮助。

+0

我们已经将reauthenticate属性设置为true。问题是,当用户登录时,它不会刷新ldap中的角色。而不是从某种缓存中获取角色。为了测试该场景,我们更改了为指定用户分配的角色,并使用该用户注销,然后登录,但没有任何更改。 – Mateo 2014-11-10 18:32:20

+1

@Mateo尝试启用“org.jboss.security.auth.spi”和“org.jboss.as.web.sso”类别的跟踪级别,并通过再次执行用户登录来验证这一点,而不是从JAAS获取高速缓存 – 2014-11-10 19:13:53