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

1

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

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

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

Eu estaria hospedando o site do Joomla na minha rede local e expondo-o através do meu roteador com encaminhamento de porta.

    
por Corey 20.06.2010 / 17:02

5 respostas

2

I would like to setup a Joomla website that requires visitors to login, unless they are visiting from a specific IP address or subnet.

Crie um host virtual para o Joomla como 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>

Also, I would like the login to be LDAP based.

Você pode fazer isso usando mod_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>

Is HTTPS auth using LDAP (MS-AD) an option?

Sim.

    
por 08.09.2011 / 05:46
1

Não tenho certeza se é isso que você quer depois, 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 com vírgula.

100.100.100.101, 100.100.100.102 
    
por 08.09.2011 / 03:41
1

A documentação do Apache é Access Control (a seção 'por host') , Autenticação, Autorização e Controle de Acesso (a diretiva 'satisfied'), mod_auth_basic e mod_authnz_ldap . Uma configuração de amostra para fazer o que você quer é

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
    
por 08.09.2011 / 05:05
1

Você pode querer considerar o uso do .htaccess para simplesmente colocar um nome de usuário / senha lá, a menos que eles tenham a senha de front-end, eles não poderão acessar o site.

    
por 05.07.2013 / 21:44
0

Você deve configurar o nginx como um frontend 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 de IPs listados explicitamente em allow e ter a caixa de diálogo de autenticação para todos os outros IPs.

    
por 01.09.2011 / 21:53

Tags