
Wie richte ich Joomla ein, um eine Authentifizierung basierend auf der IP-Adresse des Besuchers zu verlangen oder zu umgehen?
Ich möchte eine Joomla-Website einrichten, bei der sich Besucher anmelden müssen, es sei denn, sie besuchen die Website von einer bestimmten IP-Adresse oder einem bestimmten Subnetz.
Außerdem möchte ich, dass die Anmeldung LDAP-basiert ist.
Ich würde die Joomla-Site in meinem lokalen Netzwerk hosten und sie über meinen Router mit Portweiterleitung verfügbar machen.
Antwort1
Ich möchte eine Joomla-Website einrichten, bei der sich Besucher anmelden müssen, es sei denn, sie besuchen die Website von einer bestimmten IP-Adresse oder einem bestimmten Subnetz.
Erstellen Sie wie folgt einen virtuellen Host für Joomla:
<VirtualHost *:80>
ServerName joomla.yourdomain.com
ServerAdmin ...
DocumentRoot /var/www/html/joomla
ErrorLog logs/joomla.error_log
<Directory "/var/www/html/joomla">
Options ...
Order allow,deny
Allow from 192.168.1.0/24
Satisfy Any
</Directory>
</VirtualHost>
Außerdem möchte ich, dass die Anmeldung LDAP-basiert ist.
Sie können dies tun, indem Siemod_authz_ldap, etwas wie das:
LoadModule authz_ldap_module modules/mod_authz_ldap.so
<IfModule mod_authz_ldap.c>
<Location /var/www/html/joomla>
AuthBasicProvider ldap
AuthzLDAPAuthoritative Off
AuthLDAPURL ldap://IP:3268/dc=domain,dc=com?sAMAccountName
AuthLDAPBindDN cn=binduser,dc=domain,dc=com
AuthLDAPBindPassword secret
AuthType Basic
AuthName "Authorization required"
require valid-user
AuthzLDAPLogLevel debug
</Location>
</IfModule>
Ist HTTPS-Authentifizierung mit LDAP (MS-AD) eine Option?
Ja.
Antwort2
Ich bin nicht sicher, ob es das ist, wonach Sie suchen, aber …
Eine weitere Möglichkeit besteht darin, die .htaccess-Datei zu ändern, um den Zugriff per IP zu ermöglichen
<Limit GET>
Order Deny,Allow
Deny from all
Allow from 100.100.100.100
</Limit>
Optional: Sie können mehrere Adressen hinzufügen, indem Sie sie durch Kommas trennen.
100.100.100.101, 100.100.100.102
Antwort3
Die zu beachtende Apache-Dokumentation istZugangskontrolle(der Abschnitt „nach Host“) Authentifizierung, Autorisierung und Zugriffskontrolle(die 'satisfy'-Direktive),mod_auth_basic, Undmod_authnz_ldap. Eine Beispielkonfiguration, um das zu tun, was Sie wollen, ist
AuthType Basic
AuthBasicProvider ldap
AuthName "Joomla"
# change the ldap attributes to what matches your environment
AuthLDAPBindDN "uid=example,ou=example,dc=example,dc=com"
AuthLDAPBindPassword example
AuthLDAPURL "ldap://example.com:port/basedn?attribute?scope?filter"
Order allow,deny
# change the ip to match your network that should not have to authenticate
Allow from 10.0.0.0/24
Satisfy any
Antwort4
Sie sollten nginx als Proxy-Frontend einrichten. Nginx kann dies mit den folgenden Konfigurationsanweisungen tun:
auth_basic "Restricted";
auth_basic_user_file htpasswd;
satisfy any;
allow 10.0.0.0/24;
allow 10.1.0.0/24;
allow 10.2.1.1;
deny all;
Auf diese Weise können Sie die Authentifizierung für die explizit aufgeführten IPs umgehen allow
und für alle anderen IPs das Authentifizierungs-Popup-Dialogfeld anzeigen.