Score:0

Apache: อนุญาตผู้ใช้บางรายจากซับเน็ตที่ระบุเท่านั้น

ธง us

ฉันมีความต้องการที่จะเปลี่ยนการรับรองความถูกต้องของ Apache 2.4 บางอย่าง ที่สุด ผู้ใช้สามารถเข้าถึงเว็บไซต์ได้จากทุกที่ แต่ผู้ใช้บางราย (ซึ่งสามารถระบุได้หลายวิธี แต่กลุ่ม LDAP จะเป็นวิธีที่ง่ายที่สุด) จะได้รับอนุญาตให้เข้าถึงได้จากเครือข่ายย่อยที่อยู่ IP บางแห่งเท่านั้น (การตรวจสอบสิทธิ์ผ่านโมดูล OIDC บวกกับกลุ่ม ldap)

(เวอร์ชันที่เรียบง่ายของอะไร) การกำหนดค่า Apache ปัจจุบันคืออะไร

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

ฉันไม่แน่ใจว่าจะใช้ประโยคเชิงลบนี้กับกลุ่มใดกลุ่มหนึ่งได้ดีที่สุด

ฉันต้องใช้วิธีแก้ปัญหา กล่าวถึงที่นี่ ด้วยหุ่นจำลอง ต้องได้รับอนุญาตทั้งหมด ข้อเพื่อหลีกเลี่ยง คำสั่ง RequireAll มีเฉพาะคำสั่งการให้สิทธิ์เชิงลบเท่านั้น ข้อผิดพลาด.

ฉันคิดว่าการเพิ่มสิ่งนี้จะทำได้ แต่ฉันขอขอบคุณข้อเสนอแนะ เพราะด้วยสิ่งนี้ ฉันจินตนาการได้ง่ายๆ ว่ามีคนเขียนว่า "คุณคิดว่ามันน่าจะได้ผล แต่มันไม่ใช่เพราะว่า..." หรือ "ใช่ มันได้ผล แต่มันไม่ใช่วิธีที่ถูกต้องจริงๆ เพราะ.. "

    <RequireAny>
        <RequireAll>
            RequireNone ldap-attribute companyMemberOf="RESTRICTED_GROUP"
            # Just to keep Apache happy
            Require all granted
         </RequireAll>
        RequireIp 10.10.0.0/22
    </RequireAny>
Score:0
ธง es

ลองทำตามตรรกะบูลีนของกฎตามที่ควรจะเป็น:

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

ลอจิกบอกว่าบล็อกสุดท้ายจะประเมินเป็นจริง (และดังนั้นจึงให้สิทธิ์การเข้าถึง) ก็ต่อเมื่อ:

  • ก). ผู้ใช้มาจากเครือข่ายย่อย
  • หรือ ข). ผู้ใช้ไม่ถูกจำกัด

ดังนั้น ฉันเชื่อว่ากฎควรตอบสนองความต้องการของคุณ

อย่างไรก็ตาม โปรดสังเกตช่องว่างระหว่าง "Require" และ "ip" และใช้ "not" แทน "None" ไดเร็กทีฟใช้เพื่อล้อมรอบชุดไดเร็กทีฟ โดยเทียบเคียงกับ หรือ

Mort avatar
us flag
ขอบคุณ. ฉันเพิ่งอัปเดตปัญหาของฉันหลังจากการทดสอบและข้อมูลใหม่จาก https://serverfault.com/questions/984997/apache-2-4-require-exclude-ip-range มีไวยากรณ์ตลก ๆ ที่เกี่ยวข้องกับคำปฏิเสธ
es flag
ฉันคิดว่าวิธีการนี้ "ย้อนกลับ" อย่างใด LOL แต่คิดวิธี "ไปข้างหน้า" ไม่ออก เพื่อให้มันสะอาด ชัดเจนขึ้น และบำรุงรักษาง่ายขึ้น
es flag
นอกจากนี้ คุณเคยลองใช้ "Require not" แทน "RequireNone" หรือไม่ วิธีที่ฉันเขียนไม่ควรโยน AH01624 (เนื่องจาก "require ip" ไม่ใช่ค่าลบ)
Mort avatar
us flag
"คำสั่ง Negative Require ไม่มีผลใน คำสั่ง"

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา