Java 是否可以使用CAS server对多个域或IP地址上的应用程序的用户进行身份验证?

Java 是否可以使用CAS server对多个域或IP地址上的应用程序的用户进行身份验证?,java,spring-security,single-sign-on,cas,jasig,Java,Spring Security,Single Sign On,Cas,Jasig,我的环境是Spring4,也使用SpringSecurity 例如,有两台服务器包含相同类型的Java应用程序,由Jetty application server提供动力。但是,它们不共享JSESSIONID或任何会话 serverA:IP地址192.168.1.1 因此,我们可以使用 serverB:IP地址192.168.1.2 因此,我们可以使用 问题 如果我们在192.168.1.3上有一个CAS服务器,并且有一个用户曾经使用CAS服务器登录serverA应用程序,是否可以在

我的环境是Spring4,也使用SpringSecurity

例如,有两台服务器包含相同类型的Java应用程序,由Jetty application server提供动力。但是,它们不共享JSESSIONID或任何会话

  • serverA:IP地址192.168.1.1
    • 因此,我们可以使用
  • serverB:IP地址192.168.1.2
    • 因此,我们可以使用
问题

  • 如果我们在192.168.1.3上有一个CAS服务器,并且有一个用户曾经使用CAS服务器登录serverA应用程序,是否可以在不输入用户id/通过的情况下登录serverB应用程序?

  • 你能简单地建议一下建筑吗

  • 编辑

    • 根据文档,我使用Spring4+Spring security+Spring cas测试了这个环境
    • 但是,会话cookie提供程序是Spring而不是CAS,因此为每个服务器的IP地址创建了会话。如果我们在登录后有serverA的会话,就不可能获得serverB的会话。我未能减少登录尝试。我的意思是,无论如何,有必要输入ID/Pass,以便彼此登录serverA和serverB
    • 花了很长时间之后,我意识到我真正的需求是,可以通过一次性登录尝试登录多个资源(通过服务器资源)。然而,我认为这是“单点登录”的扩展含义
    在经过时

    • Spring会话项目提供了共享多个资源会话的体系结构。Spring会话将其会话存储在Redis后端
    • 然而,使用Spring会话也很困难,因为它需要,比如a.example.comb.example.com,而不是IP地址
    是否可以使用CAS server对多个域或IP地址上的应用程序的用户进行身份验证

    当然可以!这正是CAS为我们所做的!当用户在CAS服务器上进行身份验证时,他将获得一个
    TGT
    (票证授予票证),该票证将存储在浏览器的cookie中
    TGT
    意味着用户已通过身份验证,并且不再需要再次进行身份验证(直到注销或会话过期)。使用
    TGT
    用户可以访问与CAS集成的任何IP或域中的任何服务,并获得单个服务的
    ST
    (服务票证)。因此,下次他将使用特殊的
    ST
    呼叫服务,因此他不需要再次联系CAS。
    有关更多信息,请访问。

    您的问题到底是什么?当两个应用程序都指向192.168.1.3作为CAS服务器时,单点登录应该可以正常工作。@JohannesMüller我认为如果我将CAS引入这个环境,我可以减少登录尝试。但事实并非如此。这就是问题所在。这意味着,“用户曾经使用CAS服务器登录serverA应用程序,之后当用户尝试登录serverB时,CAS服务器将再次要求他/她输入id/pass(对于此环境)”,仍然不确定您的问题。。。serverA和serverB不需要共享会话,CAS才能工作。一旦您通过CAS登录到serverA,这将在CAS服务器上创建一个会话。当serverB询问CAS是否有用户登录时,CAS服务器不应请求身份验证,因为存在现有会话。