Điểm:0

xác thực tomcat9 shibboleth + mod_jk bị cấm

lá cờ in

Tôi có một ứng dụng Khởi động mùa xuân hiện đang chạy trong Tomcat 8.5 có tích hợp SSO dựa trên shibboleth. Shibboleth và tomcat được kết nối bằng apache2 mod_shib và mod_jk, sử dụng các gói Debian 9 mặc định.

Tôi hiện đang cố nâng cấp môi trường của ứng dụng lên Debian 10 (và do đó là Tomcat 9) và hầu hết mọi thứ đều hoạt động với những thay đổi nhỏ về cấu hình, ngoại trừ xác thực dựa trên Shibboleth.

Nếu kêu gọi /đăng nhập/shibboleth (được định cấu hình trong apache để xác thực bằng shibboleth, sau đó đăng nhập bên trong ứng dụng bằng các biến chia sẻ shibboleth được cung cấp), giao thức xác thực shibboleth SAML2 được thực hiện chính xác (và phiên shibboleth có thể được truy vấn sau trong apache), nhưng phương thức xử lý vì /đăng nhập/shibboleth không được gọi (tôi đã kiểm tra điều này bằng cách sử dụng gỡ lỗi từ xa), nhưng bị chính Tomcat từ chối:

Trạng thái HTTP 403 â Bị cấm
Nhập báo cáo trạng thái

Mô tả Máy chủ đã hiểu yêu cầu nhưng từ chối cấp quyền cho nó.

Apache Tomcat/9.0.31 (Debian)

Tôi đã cố gắng xem xét vấn đề này và một giải pháp khả thi dường như là sử dụng bí mật trong trình kết nối AJP. Xác định một (trong server.xml của tomcat9) dường như không thay đổi bất kỳ hành vi nào (đồng thời, mod_jk dường như không có tùy chọn tương ứng, vì vậy tôi tự hỏi làm thế nào không tí nào hoạt động khi một bí mật được cấu hình).

Có ai có ý tưởng về:

  • Điều gì có thể gây ra vấn đề này.
  • Các giải pháp có thể là gì.
Điểm:0
lá cờ th

Trình kết nối AJP đã ngừng cho phép bất kỳ thuộc tính yêu cầu nào đi qua trong các phiên bản Tomcat gần đây. Các thuộc tính được chuyển qua theo mặc định được mô tả ở đây: https://tomcat.apache.org/tomcat-9.0-doc/config/ajp.html#Standard_Implementations

Bạn có thể kiểm tra xem điều này có gây ra lỗi 403 hay không bằng cách tạm thời cho phép tất cả các thuộc tính trong định nghĩa trình kết nối AJP của bạn (có thể tìm thấy trong server.xml).

<Connector protocol="AJP/1.3" 
           port="8009" 
           secret="your_ajp_secret" 
           allowedRequestAttributesPattern=".*" />

Nếu điều đó hiệu quả, bạn có thể giới hạn các thuộc tính được phép ở những thuộc tính bạn thực sự cần. Nó sẽ thay đổi theo cách triển khai, nhưng điều này hiệu quả với tôi: allowRequestAttributesPattern="^(Shib-.*|eppn)$â

Nếu vấn đề của bạn thực sự liên quan đến bí mật AJP, hãy lưu ý rằng mod_proxy_ajp của Apache không hỗ trợ bí mật cho đến gần đây. Tuy nhiên, bạn sẽ thấy nó được ghi lại trong các phiên bản gần đây. Nhìn thấy https://httpd.apache.org/docs/2.4/mod/mod_proxy_ajp.html.

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