Puncte:1

Proxy-ul invers Apache către site folosind autentificarea NTLM eșuează cu mod_rewrite, dar nu cu mod_proxy

drapel ke

Avem un server proxy invers în fața unui server Exchange și am dori să blocăm mai multe căi. Exemple minimizate:

Eșuează (dar funcționează pentru toate paginile care nu necesită autentificare):

<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>

Lucrări:

<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>

Solicitarea se desfășoară atunci când se utilizează regula de rescriere și răspunde cu un 401 și oferă opțiuni pentru WWW-Authenticate, așa cum era de așteptat. Cu ProxyPass, autentificarea utilizatorului funcționează, în timp ce cu RewriteRUle, utilizatorului i se solicită în mod continuu autentificare, ceea ce presupun că este legat de NTLM.

Există mai multe întrebări în StackExchange care spun că mod_proxy nu poate gestiona autentificarea prin trecere NTLM, dar funcționează în acest caz.

Problema rescrierea modului poate fi rezolvată prin gestionarea căilor care nu necesită autentificare, apoi negând căile care ar trebui blocate și apoi făcând un ProxyPass global.

Soluție:

<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>

A cometariu pe altul întrebare a sugerat utilizarea mpm_prefork_module în loc de mpm_worker_module. Am verificat 00_mpm.conf și folosim worker și funcționează cu proxypass, așa că pare că ne lipsește ceva pentru opțiunea proxy mod_rewrite.

Cele mai multe întrebări pe care le-am găsit sunt despre autentificarea proxy inversă prin NTLM. Această întrebare este despre transmiterea autentificării către server și menținerea sesiunii intactă, nu autentificarea de la Apache (presupunând că nu este necesar pentru ca acest lucru să funcționeze).

Există setări care trebuie activate pentru a permite proxy-ul în timpul utilizării mod_rewrite?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.