具有多个Web应用程序的CAS SSO

时间:2011-05-26 03:53:07

标签: java single-sign-on cas

我花了大约一天时间查看CAS并设法让服务器使用简单的测试应用程序。当我进入受保护区域时,我将重定向到登录页面 - 当我登录时,我将被带回到上一页。

从那里,下一步将部署两个客户端应用程序,登录到客户端A,访问客户端B保护区域并让系统为我处理身份验证(因为我已经登录到客户端A)。

然而,这实际上并没有起作用。无论我是否登录到客户端A站点,我都必须登录客户端B站点。

CAS在Tomcat上运行,客户端A和B是在单个JBoss AS 6实例上作为单独战争部署的相同项目。

任何想法如何实现建议的行为?

编辑:是的,两者都在使用CAS。问题是它似乎没有意识到用户已经登录。就好像CAS无法确定两个服务之间存在“链接”以及当一个服务已经过身份验证时,其他服务应自动进行身份验证。

我应该注意到,在这个阶段,我没有在应用程序中使用SSL。在我介绍SSL之前,我专注于获取一个简单的示例并使用HTTP。

3 个答案:

答案 0 :(得分:1)

您的两个应用程序都需要配置为使用CAS服务器进行身份验证。正常的过程是应用程序A将您重定向到CAS登录页面,让您登录并将您重定向回A.如果您然后尝试登录B,它会检查CA服务器是否已经登录并且如果是,则发回有关登录用户的信息。

同样,您的应用程序都需要支持CAS作为登录机制,我不能从您的描述中确定。

CAS协议的详细说明可以是found here

答案 1 :(得分:1)

CAS在没有SSL的情况下工作,它会带你到登录站点并正确验证你。问题是如果您尝试通过其他网站访问,它会要求您再次登录。

启用SSL并尝试后,它运行正常。登录到客户端A后,它会自动在客户端B中对您进行身份验证。我在维基上花了一些时间,虽然它谈到了使用SSL的重要性,但我不记得它明确声明SSO在没有启用SSL的情况下无法工作。也许应该在wiki中添加警告?

答案 2 :(得分:0)

如果您想专注于您的应用程序并让您的生活更轻松,请使用CAS服务器的云提供程序:http://www.casinthecloud.com(免费服务器可用于测试)。