gpt4 book ai didi

java - 来自 Java Web 应用程序的 SharePoint Web 服务使用 CXF 和 Kerberos/NTLM 身份验证

转载 作者:行者123 更新时间:2023-11-30 04:53:22 25 4
gpt4 key购买 nike

我有一个来自 Web 应用程序的 Java EE Web 应用程序,我必须使用需要 Kerberos/NTLM 身份验证的 SharePoint Web 服务,我该如何实现。我使用 CXF 来使用 Web 服务,并且它本身的 Web 应用程序使用 Windows 集成身份验证进行身份验证。

最佳答案

看一下 SPNEGO 协议(protocol),这是 Sharepoint(技术上是 IIS)用于单点登录身份验证的协议(protocol)。我不熟悉 CXF,但通常大多数 Web 服务平台都允许您根据请求提供附加 header 。基本上你需要的是:

1.  Get authentication token for the sharepoint from user session  

2. Use JAAS to generate tokens.

看这里http://appliedcrypto.com/spnego/spnego_jaasclient.html在这里 http://docs.oracle.com/javase/6/docs/technotes/guides/security/jgss/lab/part6.html了解更多详情。

适用于您想要对共享点的浏览器用户进行身份验证的情况。您必须在您的网络应用程序中实现 SPNEGO 协议(protocol),例如您可以使用 this包你做吧。大多数现代应用程序服务器都支持 SPNEGO 协议(protocol) [JBoss、WebSphere]。实现 SPNEGO 协议(protocol)后,您可以从“Authorization” header 中获取 kerberos token 。

那么你有两个选择:

  1. 如果您使用与 SharePoint 前端相同的身份运行网络应用程序,您只需将相同的 token 重新发送到共享点即可。

  2. 如果您以不同的身份运行,则必须使用用户的 token 前往 Active Directory 并代表您的用户请求共享点服务的票证。您的网络应用程序所使用的帐户必须受到信任才能在 Active Directory 中进行委派

此外,我不确定 SharePoint 是否接受 SOAP header 中的 kerberos token ,我相信您必须使用 HTTP header 进行身份验证。

This这个问题可能对你有帮助

如果您想使用单点登录功能(即使用当前用户身份),请查看 here

关于java - 来自 Java Web 应用程序的 SharePoint Web 服务使用 CXF 和 Kerberos/NTLM 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9361840/

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