繁体   English   中英

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

[英]CAS SSO with multiple web applications

我花了最后一天左右的时间研究 CAS,并设法让服务器与一个简单的测试应用程序一起工作。 当我进入受保护区域时,我被重定向到登录页面 - 当我登录时,我被带回到我之前的页面。

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

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

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

有什么想法可以实现建议的行为吗?

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

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

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

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

CAS 协议的详细描述可以在这里找到

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM