Điểm:0

Apache: Chỉ cho phép một số người dùng nhất định từ mạng con được chỉ định

lá cờ us

Tôi có yêu cầu thay đổi một số xác thực Apache 2.4 để phần lớn người dùng có thể truy cập trang web từ bất cứ đâu, nhưng một số người dùng nhất định (có thể được xác định theo một số cách, nhưng nhóm LDAP sẽ là cách dễ nhất) chỉ có thể được phép truy cập từ một mạng con địa chỉ IP nhất định. (Xác thực thông qua mô-đun OIDC cộng với các nhóm ldap.)

(Một phiên bản đơn giản hóa của cái gì) cấu hình Apache hiện tại là

<RequireAll>
    <RequireAny>
        Require valid-user
        Require claim aud:apache123.company.com
    </RequireAny>
    Require ldap-attribute companyMemberOf="ALL_USERS_OF_THIS_TOOL"
</RequireAll>

Tôi không chắc cách tốt nhất để triển khai mệnh đề phủ định này cho một nhóm nhất định.

Tôi đã phải sử dụng cách giải quyết thảo luận ở đây với một hình nộm Yêu cầu tất cả cấp điều khoản để tránh Chỉ thị RequireAll chỉ chứa các chỉ thị ủy quyền phủ định lỗi.

Tôi nghĩ rằng thêm điều này sẽ làm điều đó nhưng tôi đánh giá cao phản hồi. Bởi vì với những thứ như thế này, tôi có thể dễ dàng tưởng tượng ai đó đang viết "bạn nghĩ rằng nó sẽ hiệu quả nhưng không phải vì...", hoặc "vâng, nó hiệu quả, nhưng đó thực sự không phải là cách đúng đắn để làm điều đó bởi vì.. ."

    <RequireAny>
        <RequireAll>
            RequireNone ldap-attribute companyMemberOf="RESTRICTED_GROUP"
            # Just to keep Apache happy
            Require all granted
         </RequireAll>
        RequireIp 10.10.0.0/22
    </RequireAny>
Điểm:0
lá cờ es

Hãy tuân theo logic boolean của các quy tắc như chúng sẽ tồn tại:

<RequireAll>
### First, and foremost, users need to be Apache users.
    Require ldap-attribute companyMemberOf="ALL_APACHE_USERS"

### AND
    <RequireAny>
##### Users need to be either valid
        Require valid-user
##### Or have the appropiate claim.
        Require claim aud:apache123.company.com
    </RequireAny>

### AND
    <RequireAny>
##### Finally, users need to NOT have the companyMemberOf="RESTRICTED_GROUP" attribute
        Require not ldap-attribute companyMemberOf="RESTRICTED_GROUP"
##### Or be accessing from the 10.10.0.0/22 subnet.
        Require ip 10.10.0.0/22
    </RequireAny>
</RequireAll>

Logic quy định rằng khối cuối cùng sẽ đánh giá là đúng (và do đó cấp quyền truy cập) chỉ khi:

  • một). Người dùng ĐANG đến từ mạng con,
  • hoặc b). Người dùng KHÔNG bị hạn chế.

Vì vậy, tôi tin rằng các quy tắc sẽ đáp ứng nhu cầu của bạn.

Tuy nhiên, lưu ý khoảng cách giữa "Yêu cầu" và "ip" và sử dụng "không" thay vì "Không"; chỉ thị được sử dụng để kèm theo một tập hợp các chỉ thị, tương tự như hoặc .

Mort avatar
lá cờ us
Cảm ơn. Tôi vừa cập nhật sự cố của mình sau một số thử nghiệm và với một số thông tin mới từ https://serverfault.com/questions/984997/apache-2-4-require-exclude-ip-range. Có một số cú pháp buồn cười liên quan đến phủ định.
lá cờ es
Tôi đã nghĩ rằng cách tiếp cận này bằng cách nào đó là "ngược", LOL, nhưng không thể nghĩ ra cách "chuyển tiếp" để làm điều đó, để giữ cho nó sạch hơn, rõ ràng hơn và dễ bảo trì hơn.
lá cờ es
Ngoài ra, bạn đã thử với "Không yêu cầu" thay vì "Không yêu cầu" chưa?. Theo cách tôi đã viết, không nên ném AH01624 (vì "yêu cầu ip" không âm).
Mort avatar
lá cờ us
"chỉ thị Yêu cầu phủ định không có hiệu lực trong chỉ thị"

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