¿Cómo configuraría Joomla para requerir o evitar la autenticación según la dirección IP de los visitantes?

¿Cómo configuraría Joomla para requerir o evitar la autenticación según la dirección IP de los visitantes?

¿Cómo configuraría Joomla para requerir o evitar la autenticación según la dirección IP de los visitantes?

Me gustaría configurar un sitio web Joomla que requiera que los visitantes inicien sesión, a menos que visiten desde una dirección IP o subred específica.

Además, me gustaría que el inicio de sesión se base en LDAP.

Estaría alojando el sitio Joomla en mi red local y exponiéndolo a través de mi enrutador con reenvío de puertos.

Respuesta1

Me gustaría configurar un sitio web Joomla que requiera que los visitantes inicien sesión, a menos que visiten desde una dirección IP o subred específica.

Cree un host virtual para Joomla como se muestra a continuación:

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

Además, me gustaría que el inicio de sesión se base en LDAP.

Puedes hacerlo usandomod_authz_ldap, algo como esto:

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>

¿La autenticación HTTPS mediante LDAP (MS-AD) es una opción?

Sí.

Respuesta2

No estoy seguro de si esto es lo que buscas, pero...

Otra opción es cambiar el archivo .htaccess para permitir el acceso por IP

<Limit GET>
    Order Deny,Allow
    Deny from all
    Allow from 100.100.100.100
</Limit>

Opcional: puede agregar varias direcciones separándolas con comas.

100.100.100.101, 100.100.100.102 

Respuesta3

La documentación de Apache para mirar esControl de acceso(la sección 'por anfitrión'), Autenticación, Autorización y Control de Acceso(la directiva "satisfacer"),mod_auth_basic, ymod_authnz_ldap. Una configuración de muestra para hacer lo que quieres es

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

Respuesta4

Debes configurar nginx como interfaz de proxy. Nginx puede hacer esto usando las siguientes directivas de configuración:

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;

De esta manera, puede omitir la autenticación para las IP enumeradas explícitamente allowy tener el cuadro de diálogo emergente de autenticación para todas las demás IP.

información relacionada