gpt4 book ai didi

.net - JAX-WS IBM 客户端使用带有 Active Directory 身份验证 (NTLM) 的 .Net WS

转载 作者:行者123 更新时间:2023-12-04 20:16:00 27 4
gpt4 key购买 nike

我想使用 IBM WebSphere 的 .Net WS。

我使用 JAX-WS IBM 实现创建了一个 WS 客户端,它在 IIS 上使用 .Net WS。客户端在 SUSE 上,并且通过 NTLM 和 Windows Server 2003 Active Directory 进行身份验证。

  • 如果客户端在命令行中执行,则实现调用 java.net.Authenticator 以获取凭据并且请求成功。
  • 如果客户端在 RAD 中执行,则不会调用 Authenticator,它会失败并返回 401。
  • 如果客户端在 WebSphere 中执行,则不会调用 Authenticator,它会失败并返回 401。
  • 如果我直接创建一个指向 .Net WS URL 的 HttpConnection,则会调用 Authenticator 并且请求成功。
  • 如果我使用 Axis2(直接,而不是 IBM Axis2 JAX-WS 实现)而不是 JAX-WS IBM 实现,我可以将 Authenticator 对象传递给 Axis2 客户端并且请求成功。这仅适用于 Windows Server 2003 的 NTLM 协议(protocol)。当我们迁移到 Windows Server 2008 时,身份验证协议(protocol)是 NTLMv2(由于 NTLM 的安全问题,每个人都在迁移到 NTLMv2)并且请求失败,因为 HTTP 客户端 3 不支持 NTLMv2。 X 是 Axis2 的依赖项。在一段时间内,他们不会迁移。

  • 如果我使用除 IBM 之外的其他 JAX-WS 实现,我会失去控制台管理和自动注释读取,以及失去来自 IBM 的支持。

    问题

    我不明白为什么在 RAD 内部它不起作用,是从命令行运行的同一个程序。

    您如何使用特定凭据通过 NTLMv2 协议(protocol)支持使 JAX-WS IBM 实现进行身份验证? (java.net.Authenticator 为您提供了这个,它应该被称为......它没有)

    有什么方法可以让 IBM JAX-WS 实现使用另一个 HTTP 客户端而不是标准客户端?

    甚至 IBM JVM 实现也提供 NTLM 身份验证(这就是命令行和直接 HttpConnection 执行工作的原因),所以我不明白他们为什么不将它用于 IBM WS 堆栈。

    加分

    有没有什么好的方法可以提供双向能力来使用 ActiveDirectory 身份验证来消费 WS?

    评论

    Spring WS 使用支持 NTLMv2 身份验证的 HttpClient 4.X,但我需要一个 JAX-WS 实现和它 应该 成为 IBM 的那个。 IBM JAX-WS 似乎只支持 Basic AUTH。我不明白 Microsoft WS 互操作对 IBM 来说是多么不重要。

    引用文献

    身份验证器配置:

    http://docs.oracle.com/javase/6/docs/api/java/net/Authenticator.html#setDefault%28java.net.Authenticator%29

    https://stackoverflow.com/a/5994706/14811

    提前致谢!

    最佳答案

    您正在从 NTLM (1994?) 迁移到 NTLMv2 (1999) 而不是基于 Kerberos 的技术(在 Windows 2000 中引入),因为 NTLMv2 更安全???

    在与 Microsoft 的互操作方面,现代系统将在 JAX-WS 客户端和 .NET 服务之间使用 WS-Security Kerberos。这已经过测试。

    您正在尝试做的事情(替换进程使用的 Authenticator)适用于独立的 Java 应用程序,但不适合 Java Enterprise 模型,其中 Java 进程托管多个“应用程序”,每个“应用程序”都有自己的“身份验证”要求,不要介意 WebSphere Server 进程相互通信所施加的内部要求(App Server 到 App Server,Node Agent 到 App Server,App Server 到 LDAP,等等......)

    关于.net - JAX-WS IBM 客户端使用带有 Active Directory 身份验证 (NTLM) 的 .Net WS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12267218/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com