【问题标题】:Java EE integration with .NET for authenticationJava EE 与 .NET 集成以进行身份​​验证
【发布时间】:2010-10-24 11:53:30
【问题描述】:

我有一个 Java Enterprise Edition Web 应用程序,一个标准 WAR。我想将它与运行 IIS 的现有 .NET 基础结构集成。具体来说,我需要能够以某种安全的方式在两个应用程序之间共享用户会话。

有没有“标准”的方式来做到这一点?

编辑:我不需要完整的会话共享,很抱歉没有指出这一点。我需要做的是检查用户在连接到 Java EE 应用程序时是否通过 .NET 应用程序进行了身份验证。

【问题讨论】:

  • 您是否需要共享用户在他们的 J2EE Web 会话中拥有的所有数据(或者可能只是其中的一部分),或者您是否希望他们只共享一次并且能够访问两个应用程序?
  • 抱歉,错字太多了,请忽略上面的评论 :) 您是否需要与 .NET 应用程序共享用户在他们的 J2EE Web 会话中拥有的所有数据(或者可能只是一些数据) ,还是希望用户只登录一次,然后就可以访问 J2EE 和 .NET 应用程序?
  • 我只需要身份验证 - 请参阅我在问题中的编辑。很抱歉没有指出这一点!

标签: java .net iis authentication integration


【解决方案1】:

创建一个 .NET Web 服务(当然使用 WCF)来返回用户是否经过身份验证。然后从 Java EE 应用程序调用该 Web 服务。

【讨论】:

  • 有没有办法做到这一点,而无需用户写入任何凭据?我在考虑某种形式的 cookie 窃取,但如果我没记错的话,相同的来源策略适用于端口和域..
  • 我对 J2EE 的了解不够,无法回答这个问题。我认为您必须以某种方式将 .NET 会话 ID 传递给 Java,以便它可以在 Web 服务调用中提供它。
【解决方案2】:

非常怀疑。

您必须将会话状态持久化到第三个组件,例如数据库。我怀疑这两种基础设施的内置提供程序是否完全相似(就模式等而言);所以你必须创建自己的。

这听起来不像是一件有趣的事情。

【讨论】:

  • 好的,既然您已经澄清您只是对单点登录感兴趣,我的回答可能不再适用。
【解决方案3】:

如果它们将在同一台服务器上运行,您将需要一个 isapi 重定向过滤器,例如 Tomcat 附带的 isapi_redirect.dll。

【讨论】:

    【解决方案4】:

    这个开源库 http://spnego.sourceforge.net 将使您的 Java 应用程序能够进行透明/集成的 Windows 身份验证。

    它作为 servlet 过滤器安装,因此您无需编写任何代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-01
      • 2019-07-16
      • 2016-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      • 2018-02-27
      相关资源
      最近更新 更多