Como eu configuraria o Joomla para exigir ou ignorar a autenticação com base no endereço IP dos visitantes?

Como eu configuraria o Joomla para exigir ou ignorar a autenticação com base no endereço IP dos visitantes?

Como eu configuraria o Joomla para exigir ou ignorar a autenticação com base no endereço IP dos visitantes?

Gostaria de configurar um site Joomla que exija login dos visitantes, a menos que estejam visitando um endereço IP ou sub-rede específico.

Além disso, gostaria que o login fosse baseado em LDAP.

Eu hospedaria o site Joomla na minha rede local e o exporia através do meu roteador com encaminhamento de porta.

Responder1

Gostaria de configurar um site Joomla que exija que os visitantes façam login, a menos que estejam visitando um endereço IP ou sub-rede específico.

Crie um host virtual para Joomla conforme abaixo:

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

Além disso, gostaria que o login fosse baseado em LDAP.

Você pode fazer isso usandomod_authz_ldap, algo assim:

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>

A autenticação HTTPS usando LDAP (MS-AD) é uma opção?

Sim.

Responder2

Não tenho certeza se é isso que você procura, mas ..

Outra opção é alterar o arquivo .htaccess para permitir acesso por IP

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

Opcional: você pode adicionar vários endereços separando-os por vírgulas.

100.100.100.101, 100.100.100.102 

Responder3

A documentação do Apache a ser examinada éControle de acesso(a seção 'por host'), Autenticação, Autorização e Controle de Acesso(a directiva «satisfazer»),mod_auth_basic, emod_authnz_ldap. Um exemplo de configuração para fazer o que você deseja é

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

Responder4

Você deve configurar o nginx como um frontend de proxy. O Nginx pode fazer isso usando as seguintes diretivas de configuração:

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;

Dessa forma, você pode ignorar a autenticação para IPs listados explicitamente allowe ter a caixa de diálogo pop-up de autenticação para todos os outros IPs.

informação relacionada