我该如何设置 Joomla 来要求或绕过基于访问者 IP 地址的身份验证?

我该如何设置 Joomla 来要求或绕过基于访问者 IP 地址的身份验证?

我该如何设置 Joomla 来要求或绕过基于访问者 IP 地址的身份验证?

我想建立一个 Joomla 网站,要求访问者登录,除非他们从特定的 IP 地址或子网访问。

另外,我希望登录基于 LDAP。

我将在我的本地网络上托管 Joomla 网站,并通过带有端口转发功能的路由器公开它。

答案1

我想建立一个 Joomla 网站,要求访问者登录,除非他们从特定的 IP 地址或子网访问。

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

另外,我希望登录基于 LDAP。

您可以使用修改 ldap 配置文件,类似这样:

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>

使用 LDAP(MS-AD)进行 HTTPS 身份验证是一种选择吗?

是的。

答案2

我不确定这是否是你想要的但是......

另一个选择是更改 .htaccess 文件以允许通过 IP 访问

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

可选:您可以添加多个地址,用逗号分隔。

100.100.100.101, 100.100.100.102 

答案3

需要查看的 Apache 文档是访问控制(“按主办方”部分), 身份验证、授权和访问控制(‘满足’指令),mod_auth_basic, 和修改 LDAP 服务器。执行所需操作的示例配置是

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

答案4

您应该将 nginx 设置为代理前端。Nginx 可以使用以下配置指令执行此操作:

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;

这样,您可以绕过明确列出的 IP 的身份验证allow,并让所有其他 IP 的身份验证弹出对话框。

相关内容