Wie richte ich Joomla ein, um eine Authentifizierung basierend auf der IP-Adresse des Besuchers zu verlangen oder zu umgehen?

Wie richte ich Joomla ein, um eine Authentifizierung basierend auf der IP-Adresse des Besuchers zu verlangen oder zu umgehen?

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 allowund für alle anderen IPs das Authentifizierungs-Popup-Dialogfeld anzeigen.

verwandte Informationen