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 sales
könnte auf die Dinge darunter zugreifen /secure/
(mit 2.2 sind es nur die Mitglieder der secure
Gruppe, 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