Java 使用KeyClope中的脱机cookie实现单点登录(SSO)

Java 使用KeyClope中的脱机cookie实现单点登录(SSO),java,oauth-2.0,single-sign-on,openid-connect,keycloak,Java,Oauth 2.0,Single Sign On,Openid Connect,Keycloak,我们可以在KeyClope中使用离线cookie实现单点登录(SSO)吗 我已将应用程序“A”连接到KeyClope 7.0.1(KC)服务器进行身份验证。KC在“clientA”下为用户生成活动会话和脱机会话,并将访问令牌和脱机令牌返回给用户。脱机令牌的有效期为X天。因此,当用户再次尝试连接到应用程序“A”时,它将使用脱机cookie获取访问令牌,并且用户将获得身份验证。因此,身份验证正在使用应用程序“A”的脱机cookie 现在我有另一个应用程序“B”,假设它托管在相同或不同的域上。KC可以

我们可以在KeyClope中使用离线cookie实现单点登录(SSO)吗

我已将应用程序“A”连接到KeyClope 7.0.1(KC)服务器进行身份验证。KC在“clientA”下为用户生成活动会话和脱机会话,并将访问令牌和脱机令牌返回给用户。脱机令牌的有效期为X天。因此,当用户再次尝试连接到应用程序“A”时,它将使用脱机cookie获取访问令牌,并且用户将获得身份验证。因此,身份验证正在使用应用程序“A”的脱机cookie

现在我有另一个应用程序“B”,假设它托管在相同或不同的域上。KC可以访问相同的脱机cookie,但不允许身份验证。此应用程序的客户端是“客户端B”。我得到的错误是“会话没有必需的客户端”

通过查看错误和阅读文章,我了解到两个不同的客户端无法访问相同的脱机cookie。但我仍然想知道是否有人遇到过这种情况,以及使用什么方法允许两个应用程序使用相同的脱机cookie,或者我们是否有任何缺少的KeyClope配置

编辑此问题:
我们可以使用任何领域级别的脱机令牌,而不是为领域中的每个客户端创建不同的脱机令牌吗?

KeyClope用于为不同的应用程序生成凭据,您需要在同一领域中为应用程序b创建第二个客户端(您说您已经这样做了)

我不认为您可以使用从应用程序a到应用程序b的访问令牌。如果两个应用程序共享相同的私钥,您可能可以通过生成令牌的方式来实现这一点,但如果您这样做,那么您可能不需要keydove

然后在此客户机中发出授权请求,因为您已经在KeyClope中有一个会话,这应该会自动发生,并生成应用程序b所需的凭据

为了查看这是否正确,我将尝试直接登录到应用程序b中,转到KeyClope,在那里登录,并查看提供的令牌是否可以将我登录到应用程序b中


很抱歉,您的回答很高,但您的问题本身也很高。

谢谢您的回答。我知道我的问题有点高。很抱歉。但我想知道是否可以在领域级别创建脱机令牌,而不是在客户端级别创建它们。我没有办法这样做,但如果您有任何想法的话关于这一点,请让我知道。这就是我在回答中所说的,您可以通过让应用程序共享相同的私钥来生成令牌。但是,您可能不需要keydove。