Puncte:0

Apache: permiteți anumitor utilizatori numai din subrețeaua specificată

drapel us

Am o cerință de a schimba unele autentificare Apache 2.4, astfel încât cel mai utilizatorii pot accesa site-ul web de oriunde, dar anumitor utilizatori (care pot fi identificați în mai multe moduri, dar un grup LDAP ar fi cel mai ușor) li se poate permite accesul doar de la o anumită subrețea de adresă IP. (Autentificarea se face prin modulul OIDC plus grupuri ldap.)

(O versiune simplificată a ceea ce) este configurația curentă Apache

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

Nu sunt sigur cum să implementez cel mai bine această clauză negativă pentru un anumit grup.

A trebuit să folosesc soluția discutat aici cu manechin Solicitați toate acordate clauza pentru a evita Directiva RequireAll conține doar directive negative de autorizare eroare.

Cred că adăugarea acestui lucru ar face, dar aș aprecia feedback-ul. Pentru că cu așa ceva îmi pot imagina cu ușurință pe cineva care scrie „ai crede că ar funcționa, dar nu pentru că...”, sau „da, funcționează, dar nu este într-adevăr modul corect de a face asta pentru că... ."

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

Să urmăm logica booleană a regulilor așa cum ar fi ele:

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

Logica impune ca ultimul bloc să fie evaluat la adevărat (și, prin urmare, acordând acces) numai dacă:

  • A). Utilizatorii vin din subrețea,
  • sau b). Utilizatorii NU SUNT restricționați.

Deci, cred că regulile ar trebui să vă satisfacă nevoile.

Rețineți, totuși, spațiul dintre „Require” și „ip” și folosirea „not” în loc de „None”; directiva este folosită pentru a include un set de directive, analog cu sau .

Mort avatar
drapel us
Mulțumiri. Tocmai mi-am actualizat problema după câteva teste și cu câteva informații noi de la https://serverfault.com/questions/984997/apache-2-4-require-exclude-ip-range . Există o sintaxă amuzantă asociată cu negativele.
drapel es
Am crezut că această abordare era cumva „în sens invers”, LOL, dar nu puteam să mă gândesc la o modalitate „înainte” de a o face, pentru a o menține mai curată, mai clară și mai ușor de întreținut.
drapel es
De asemenea, ați încercat cu „Require not” în loc de „RequireNone”?. Modul în care am scris-o, nu ar trebui să arunce AH01624 (deoarece „require ip” nu este negativ).
Mort avatar
drapel us
„directiva negativă Require nu are efect în directivă"

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.