【问题标题】:Windows services authentication using Kerberos from Java program on linux使用 Linux 上 Java 程序中的 Kerberos 进行 Windows 服务身份验证
【发布时间】:2014-02-03 21:40:14
【问题描述】:

大家好,我这几天一直在为身份验证问题苦苦挣扎。我在 tomcat7/java7/linux 上开发一个 Web 应用程序,我需要从这个应用程序访问 Windows SSRS 服务器。

当我在我的 Windows 机器上运行代码时,一切正常,身份验证由 Windows 完成,我只使用:

InputStream pdfInStream = new BufferedInputStream(pdfUrl.openStream(), bufferSize);

在 linux 服务器上,我通过 GSS-API javax.security.auth.login.LoginContext 使用 Kerberos,并且能够针对 Kerberos 服务器进行身份验证:LoginContext .login() 工作正常。

现在我被困在这里,Windows authentication in Java 建议使用已弃用的工具,Oracle 文档让我几天都没有找到重点,SPNEGO (http://spnego.sourceforge.net/) 似乎无法解决我的问题。

提前致谢!

参考: 甲骨文文档: docs.oracle.com/javase/7/docs/technotes/guides/security/jgss/tutorials/BasicClientServer.html docs.oracle.com/javase/7/docs/technotes/guides/security/jgss/tutorials/ClientServer.html docs.oracle.com/javase/7/docs/technotes/guides/security/jgss/tutorials/AcnAndAzn.html

来自 apache 的 HTTP 工具:http://hc.apache.org/

【问题讨论】:

  • 在 ssrs 中有一个自定义身份验证方案,只有在您控制 ssrs 服务器的情况下,才能为您的项目提供更大的灵活性。如果没有,您可能需要查看 3rd 方库。
  • 感谢您的回答,我可以对 SSRS 服务器进行一些控制,我会对其进行调查。但是,如果可能的话,我想使用我公司提供的 kerberos windows 身份验证来代替 NTLM。

标签: java linux reporting-services kerberos


【解决方案1】:

大家好!

我用不同的方法解决了我的问题。即使我在 linux 机器上运行,我也使用 NTLM 从我的客户端进行了身份验证(但这个库也可以使用 Kerberos)。这一切都归功于 Apache HTTPComponents 库。

如果你有同样的问题,我建议你停下来:

http://hc.apache.org/httpcomponents-client-4.3.x/tutorial/html/authentication.html#ntlm.

再见!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多