
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 allow
e ter a caixa de diálogo pop-up de autenticação para todos os outros IPs.