Điểm:0

Apache mod_auth_form gửi POST tới yêu cầu proxy ngược bị chặn

lá cờ us

Từ tài liệu:

Khi người dùng cuối đã điền chi tiết đăng nhập của họ, biểu mẫu sẽ thực hiện yêu cầu HTTP POST tới URL được bảo vệ bằng mật khẩu ban đầu. mod_auth_form sẽ chặn yêu cầu POST này và nếu tìm thấy các trường HTML cho tên người dùng và mật khẩu, thì người dùng sẽ đăng nhập và URL gốc được bảo vệ bằng mật khẩu sẽ được trả lại cho người dùng dưới dạng yêu cầu GET.

Tôi có một cuộc chạy ở cảng 45001 và apache ủy quyền ngược cho nó. Tôi sử dụng xác thực mẫu và LỗiTài Liệu để thực thi đăng nhập. Đây là cấu hình của tôi:

<VirtualHost myip:44302>
    ServerName myserver.com

    # Pass auth info
    RequestHeader set X-Remote-User %{REMOTE_USER}s

    # Login page is directly on the server - don't use reverse proxy
    ProxyPass /login/ !

    # Proxy all requests to the app running in a docker container
    ProxyPreserveHost On
    ProxyPass / http://localhost:45001/
    ProxyPassReverse / http://localhost:45001/

    # Require auth for all requests except the login page
    <LocationMatch ^/(?!login).*$>
        AuthType form
        AuthName "login"

        AuthFormProvider ldap
        AuthLDAPURL <url>
        AuthLDAPBindAuthoritative off

        # Redirecting to login page if auth is needed
        ErrorDocument 401 /login/index.html

        # If authorization fails, return 403 insead of 401
        AuthzSendForbiddenOnFailure On

        # Use session cookie
        Session On
        SessionCookieName session path=/;httponly;
        SessionCryptoPassphrase <passphrase>

        Require valid-user
    </LocationMatch>
</VirtualHost>

Biểu mẫu (đơn giản hóa các lớp và trình bao bọc div):

<form action="" method="POST">
    <input name="httpd_username" type="text">

    <input name="httpd_password" type="password">

    <button type="submit">
        Login
    </button>
</form>

Đối với các tình huống khác, khi tôi không sử dụng proxy ngược, quy trình làm việc là chính xác:

  1. truy cập URL
  2. kiểm tra cookie phiên
    1. yêu cầu đăng nhập nếu cần
    2. gửi HTTP NHẬN yêu cầu URL bị chặn ban đầu

Nhưng khi tôi sử dụng proxy ngược, thay vì gửi HTTP NHẬN đối với yêu cầu bị chặn, apache sẽ gửi BÀI ĐĂNG HTTP. Ứng dụng đằng sau proxy không hoạt động với BƯU KIỆN và in một lỗi.

Nếu người dùng làm mới trang, thì tất cả đều hoạt động bình thường vì cookie phiên đã được đặt.

Điều gì gây ra hành vi sai trái này và/hoặc làm cách nào để định cấu hình xác thực này hoạt động đúng cách?

Đă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.