Apache 反向代理服务器和 SSL NTLM SharePoint

Apache 反向代理服务器和 SSL NTLM SharePoint

我正在尝试将 Apache 设置为内部 SharePoint 服务器的代理服务器。

我之前已经将 Apache 配置为代理服务器运行,以导出内部网页和 Web 应用程序。

但是,Sharepoint 使用 SSL 和 NTLM 身份验证,这对我来说是新鲜事 :(

我尝试了很多选项,当我收到身份验证弹出窗口时,流量似乎被转发了,但是当我插入用户/密码时,我又回到了同一个弹出窗口。

有人配置过 Apache 来这样做吗?

这是我的httpd.conf的一部分:

<VirtualHost *:443>
    ServerName repository.out.com

    SSLProxyEngine On
    RequestHeader set Front-End-Https "On"

    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass / https://sharepoint.in.com
    ProxyPassReverse / https://sharepoint.in.com

    CacheDisable *

    SetEnv force-proxy-request-1.0 1 
    SetEnv proxy-nokeepalive 1

    ErrorLog logs/jlanza_log
    CustomLog logs/jlanza_log common
</VirtualHost>

答案1

NTLM 不是设计用于通过代理(或者在您的情况下是反向代理)来工作的。

与单个代理一样,插入反向代理将导致客户端浏览器和 Web 服务器之间的 NTLM 身份验证停止运行

(看http://support.microsoft.com/kb/198116/en-us

但是,也有解决方法:

  • 在您的情况下(使用 SSL),模块 mod_proxy_connect 可能提供解决方案,因为它似乎不会终止反向代理上的 http 会话。
  • 我知道 squid 的最新版本使用名为“连接固定”的功能来代理 NTLM。我不确定 apache 是否有类似的功能。您可以使用 squid 代替 apache...
  • 您可能还需要考虑更改 Firefox 中的某些默认值以使 NTLM 正常工作(请参阅 about:config -> apply Filter "NTLM")
  • 除此之外,将身份验证从 NTLM 更改为 BASIC 可能会解决您的所有问题。由于您使用的是 SSL,因此在使用 Basic_Auth 时您甚至不必担心有人会嗅探您的密码。

答案2

您可以考虑安装 mod_ntlm 并使用 NTLMv2 身份验证将其直接配置到您的 AD。然后,代理将向 Active Directory 验证会话,并设置与 SharePoint 的连接。将有一个双重身份验证请求,因此您需要检查代理是否授权您。cookie 将为 SharePoint 服务器验证您的身份。对此我不确定,因为我从未测试过它。

祝你好运

无线网络

答案3

我遇到了同样的 NTLM Apache/2.4.6(CentOS),即使输入了正确的用户详细信息后,仍然会频繁弹出 NTLm 窗口。

通过加载模块 LoadModule mpm_prefork_module modules/mod_mpm_prefork.so 而不是 LoadModule mpm_worker_module modules/mod_mpm_worker.so 解决了该问题

答案4

我在 Centos5 中的 2.2.3 版本上也遇到了同样的问题

我认为这是这个错误 https://issues.apache.org/bugzilla/show_bug.cgi?id=39673

我没有找到解决方案,也没有找到解决方法:我决定使用可以运行的旧版 apache(1.3.something?)。

相关内容