Sharepoint 的 Apache 反向代理记住凭据

Sharepoint 的 Apache 反向代理记住凭据

我在为 Sharepoint 服务器设置 Apache 反向代理时遇到了一个奇怪的问题。当我通过代理登录 Sharepoint 时,其他人也通过代理打开 Sharepoint,但他已经用我的帐户登录了。您知道可能出了什么问题吗?

这是 Apache 配置:

<VirtualHost *:443>
    SSLEngine On
    SSLProxyEngine On
    SSLCertificateFile /etc/apache2/ssl/sharepoint.pem

    ProxyPreserveHost Off
    ProxyRequests Off

    ProxyHTMLExtended On
    ProxyHTMLLogVerbose On
    LogLevel Debug
    ProxyHTMLURLMap https://sharepoint.portal.de/ /
    SetOutputFilter INFLATE;proxy-html;DEFLATE

    Header edit Location ^https(\:\/\/sharepoint.portal.de)(.*)$ https://192.168.120.19$2

    ProxyPass / https://sharepoint.portal.de:443/
    ProxyPassReverse / https://sharepoint.portal.de:443/
</VirtualHost>

答案1

以下是我在过去 4 个小时所尝试的方法:

我能想到的唯一合理解释是,sharepoint 服务器已启用 keepalive,并且多个 apache 客户端通过 apache 和 sharepoint 之间的相同“keepalived”连接进行代理。

如果是这种情况,以下两行(插入到您的 vhost 配置中)可以解决问题:

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

或者,您也可以在 SharePoint 服务器上禁用 Keepalive。在 Apache 上禁用/启用 Keepalive 应该没有什么区别。

编辑:这不适用于 NTLM 身份验证,因为 NTLM 是面向连接的,并且需要保持活动状态。实际上,问题已经在这里得到解答: 设置 mod_proxy 以将 http 身份验证传递给服务器

这篇 SF 文章提供了一个工作配置,其中启用了保持活动功能。

答案2

ntlm passthru auth我使用MSExchange RPCoHTTP/HTTPSCentOS 6为 Microsoft Exchange 完成了此操作。

我用过:

HTTPD 2.4.10
mod_proxy_msrpc

这些是我执行的步骤:

yum -y install gcc make patch pcre-devel openssl-devel libuuid-devel
cd
wget http://www.apache.org/dist/httpd/httpd-2.4.10.tar.gz
wget "httpd-2.4.10-deps.tar.gz"
tar xzvf httpd-2.4.10.tar.gz 
tar xzvf httpd-2.4.10-deps.tar.gz 
cd httpd-2.4.10
./configure --enable-so --enable-deflate --enable-expires --enable-headers --enable-rewrite --with-crypto --enable-session-crypto --with-included-apr --with-included-apr-util
make
make install

----------

yum -y install git
mkdir /root/gitrepo
cd /root/gitrepo
git clone https://github.com/bombadil/mod_proxy_msrpc
cd mod_proxy_msrpc
cd src
/usr/local/apache2/bin/apxs -c mod_proxy_msrpc.c msrpc_pdu_parser.c msrpc_sync.c

----------

Use "OutlookAnywherePassthrough On" on VirtualHost section to allow RPCoHTTP/HTTPS

尝试一下并告诉我结果如何。

相关内容