LDAP-Authentifizierung und Unterverzeichnisse

LDAP-Authentifizierung und Unterverzeichnisse

Mein Apache-Server verwendet LDAP, um Benutzer zu authentifizieren, wenn sie auf das Stammverzeichnis des Servers zugreifen möchten.

Ich möchte eine weitere Authentifizierung (ohne Eingabeaufforderung) hinzufügen, um Benutzergruppen (definiert in einer Datei auf dem Server), die bereits auf der Website authentifiziert sind, den Zugriff auf Seiten in bestimmten Verzeichnissen zu erlauben/verbieten.

Wie kann ich dies in meiner Apache-Konfigurationsdatei tun?

Aktuell sieht es so aus:

NameVirtualHost *:443

<VirtualHost *:443>
    ServerName some.ip.address

    SSLEngine on
    SSLCertificateFile    /etc/ssl/certs/ssl-cert.pem
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert.key

    <Directory /var/www/mywebsite>
        AllowOverride All
        Order deny,allow
        Deny from All

        AuthType Basic
        AuthName "LDAP Access - Mywebsite"
        AuthBasicProvider ldap
        AuthzLDAPAuthoritative on
        AuthLDAPURL "ldap://myldapserver:389/ou=mygroup,dc=mydc,dc=com?uid?sub?(objectClass=*)"

        AuthLDAPBindDN "uid=someuser,ou=apache,dc=mydc,dc=com"
        AuthLDAPBindPassword "mysuperpassword"
        Require valid-user
        Satisfy all
    </Directory>

    <Directory /var/www/mywebsite/directory>
        #What do I put in here ?
    </Directory>

</VirtualHost>

Antwort1

Angenommen, Sie möchten allen gültigen Benutzern (aber keinen nicht authentifizierten Benutzern) den Zugriff auf den Großteil Ihrer Website gestatten, den Zugriff auf bestimmte Bereiche jedoch nur einer Handvoll Benutzern oder Gruppen erlauben, müssen Sie etwa Folgendes tun:

<Directory /var/www/mywebsite>
   # Ldap authentication bits here as now
</Directory>
<Location /secure/>
   <RequireAll>
      Require group secure
      Require not group sales
   </RequireAll>
</Location>
<Location /secure/jim/>
   <RequireAll>
      Require user jim
   </RequireAll>
</Location>

Wenn Sie immer noch bei Apache 2.2 festhängen, können Sie alternativ auch Folgendes verwenden:

<Directory /var/www/mywebsite>
   # Ldap authentication bits here as now
</Directory>
<Location /secure/>
   Require ldap-group cn=secure
   # Negative matching not possible with 2.2
</Location>
<Location /secure/jim/>
   Require ldap-user jim
</Location>

Mit diesem Setup konnten alle gültigen Benutzer /wie bisher auf den Großteil der Site zugreifen. Dann, mit 2.4, konnten nur noch Leute, die in der LDAP-Gruppe waren secure, abernichtin der LDAP-Gruppe saleskönnte auf die Dinge darunter zugreifen /secure/(mit 2.2 sind es nur die Mitglieder der secureGruppe, die das können). Benutzer würden nicht aufgefordert, sich erneut zu authentifizieren, ihre vorhandene Authentifizierung würde wiederverwendet und Benutzernamen/Gruppen überprüft. Schließlich /secure/jim/wären die Dinge darunter nur für Jim sichtbar.

Die Dokumentation zu den verschiedenen erforderlichen Optionen finden Siein den Apache HTTPD 2.4-Dokumenten unter mod_authz_core / RequireFür Apache 2.2 benötigen Sie dieApache HTTPD 2.2-Dokumente für mod_authnz_ldap

verwandte Informationen