Điểm:1

Apache đảo ngược proxy tới trang web bằng cách sử dụng xác thực NTLM không thành công với mod_rewrite chứ không phải mod_proxy

lá cờ ke

Chúng tôi có một máy chủ proxy ngược phía trước máy chủ Exchange và muốn khóa nhiều đường dẫn hơn. Ví dụ tối thiểu:

Không thành công (nhưng hoạt động với tất cả các trang không yêu cầu xác thực):

<VirtualHost 192.168.1.81:443>
    ServerName autodiscover.example.com
    SSLEngine On
    SSLProxyEngine On
    Include conf/sslcert.conf
    RewriteEngine On

    RewriteRule (.*) https://exchangecluster.example.com$1 [P,L]
    ProxyPassReverse / https://exchangecluster.example.com/
</VirtualHost>

Làm:

<VirtualHost 192.168.1.81:443>
    ServerName autodiscover.example.com
    SSLEngine On
    SSLProxyEngine On
    Include conf/sslcert.conf
    RewriteEngine On

    ProxyPass / https://exchangecluster.example.com/
    ProxyPassReverse / https://exchangecluster.example.com/
</VirtualHost>

Yêu cầu được thực hiện khi sử dụng quy tắc viết lại và phản hồi bằng 401 và cung cấp các tùy chọn cho WWW-Authenticate như mong đợi. Với ProxyPass, xác thực của người dùng hoạt động, trong khi với RewriteRUle, người dùng liên tục được nhắc xác thực, điều mà tôi cho rằng có liên quan đến NTLM.

Có một số câu hỏi trong StackExchange nói rằng mod_proxy không thể xử lý xác thực chuyển qua NTLM, nhưng nó hoạt động trong trường hợp này.

Vấn đề viết lại mod có thể được khắc phục bằng cách xử lý các đường dẫn không yêu cầu xác thực, sau đó từ chối các đường dẫn cần bị chặn, sau đó thực hiện ProxyPass toàn cầu.

Cách giải quyết:

<VirtualHost 192.168.1.81:443>
    ServerName autodiscover.example.com
    SSLEngine On
    SSLProxyEngine On
    Include conf/sslcert.conf
    RewriteEngine On

    # Block all requests except the autodiscover URLs
    RewriteCond "%{REQUEST_URI}" "!^/autodiscover/autodiscover\.(?:xml|json|svc)$" [NC]
    RewriteRule ^ - [F]

    ProxyPass / https://exchangecluster.example.com/
    ProxyPassReverse / https://exchangecluster.example.com/
</VirtualHost>

Một bình luận trên khác câu hỏi đề xuất sử dụng mpm_prefork_module thay vì mpm_worker_module. Tôi đã kiểm tra 00_mpm.conf của chúng tôi và chúng tôi đang sử dụng worker và nó hoạt động với proxypass, vì vậy có vẻ như chúng tôi đang thiếu thứ gì đó cho tùy chọn proxy mod_rewrite.

Hầu hết các câu hỏi tôi tìm thấy là về việc xác thực proxy ngược qua NTLM. Câu hỏi này là về việc chuyển xác thực đến máy chủ và giữ nguyên phiên, không xác thực từ Apache (giả sử điều đó không bắt buộc để thực hiện công việc này).

Có bất kỳ cài đặt nào cần được bật để cho phép ủy quyền trong khi sử dụng mod_rewrite không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.