如何实现Web应用程序的单点登录?

时间:2010-08-26 17:35:48

标签: web-applications java-ee single-sign-on

在Web应用程序中实施单点登录的策略是什么?

1 个答案:

答案 0 :(得分:9)

您添加了j2ee作为标记,因此我将假设这是一个java问题。您可以通过......编写代码来实现代码中的单点登录。使用内置的j2ee身份验证或自己动手。

请参阅此答案以了解可能性:Single sign-on in Java EE

基本策略是发明一种所有网站都可以阅读的共享cookie策略。例如,如果您正在为xyz.company.com和abc.company.com开发单点登录解决方案,那么使用company.com的路径提供某种会话cookie。这两个站点都可以访问此会话并看到“​​哦,这家伙之前已经登录过。”

当您向MySiteA.com和MySiteB.com等完全不同的网站验证用户身份时,还有一些网络单点登录策略。

为防止重播攻击,您需要携带某种公共会话存储,您的网页可以在每个页面请求中验证此Cookie。您没有标记此.NET,但在.NET中,这意味着您必须将会话状态移出IIS工作进程,这在您选择File>时不是默认状态。新项目......适用于Web应用程序。

您的应用程序必须保护每个传入的Web请求,因为您现在将该cookie视为“票证”或“进入证明”。您将需要一种策略来取消对该cookie的授权(在注销或超时或其他时)。

大多数Web框架(包括J2EE,.NET或WebSphere等应用程序服务器)都有此解决方案。您将不得不研究它们并熟悉所需的技术。

您还可以购买第三方访问软件,例如CA Siteminder。在这种情况下,您不会编写身份验证和访问代码,而是让他们的Web代理在您的应用程序前面站岗。他们还为多个网站提供单点登录解决方案,这些网站可能会或可能不会共享一个共同的更高级域名。

我没有明确推荐此产品。我说你问了一个非常大的问题,你可以使用java来解决你的问题或购买试图做同样的第三方产品。

这是一个巨大的话题,我没有试图详细介绍。这不是一个充分的答案。关键是您需要先选择更多的架构,然后才能获得更具体的帮助和指导。