Я ищу возможность запустить внешний сервис для клиентов, чтобы они могли использовать его здесь, в моем офисе, в то время как клиенты работают удаленно в своем офисе.
Предположения: И мой офисный IP, и клиентский офисный IP статичны.
Я хочу разрешить своим клиентам доступ к службе, например к защищенному административному приложению HTTP Basic Auth.
Есть ли способ в Apache Basic Auth или иным образом создать ограничения на основе User @ IP?
Я хотел бы:
Для тестирования я попробовал этот код:
<Location />
Satisfy All
AuthType Basic
AuthName "Authorisation"
AuthUserFile /etc/apache2/passwd
Order deny,allow
Deny from all
Allow from 10.0.0.1/32
Require user me
Order deny,allow
Deny from all
Allow from 10.0.0.2/32
Require user client1
</Location>
Есть ли известный способ сделать это с помощью Apache Basic Auth?
Кроме того, вместо получения сообщения «Запрещено» для успешного пользователя / пароля с неизвестного IP-адреса, можно ли попросить Apache снова запросить данные пользователя?
Если вы используете Apache httpd 2.4, вы можете использовать для этого новый синтаксис.
<RequireAny>
<RequireAll>
Require IP 10.0.0.1/32
Require user me
</RequireAll>
<RequireAll>
Require IP 10.0.0.2/32
Require user client1
</RequireAll>
</RequireAny>
Это было бы очень сложно до версии 2.4 без специального обработчика аутентификации.