Apache2 Basic Auth: user @ ip, user2 @ ip2 – Est-ce possible?

Je cherche à gérer un service externe pour que les clients utilisent ici dans mon bureau alors que les clients travaillent à distance à leur bureau.

Hypothèses: L'adresse IP de mon bureau IP et de votre bureau est statique.

Je souhaite autoriser l'access à un service, par exemple une application d'administration HTTP Basic Auth sécurisée, à mes clients.

Existe-t-il un moyen dans Apache Basic Auth ou autrement pour créer des ressortingctions basées sur l'user @ IP?

J'aimerais:

  • moi @ my_office
  • moi @ my_home
  • client1 @ their_office1
  • client2 @ their_office2

Pour tes tests, j'ai tenté ce code:

<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> 
  • Test avec [me@10.0.0.1] access autorisé, succès.
  • Test avec [client1@10.0.0.1] access autorisé, échec.
  • Test avec [client2@10.0.0.1] access interdit, succès (client2 est dans le file htpasswd, mais pas spécifié dans Exiger un user).

Existe-t-il une façon connue de faire cela en utilisant Apache Basic Auth?

De plus, au lieu de recevoir un "Forbidden" pour un user / mot de passe réussi à partir d'une adresse IP inconnue, est-il possible de requestr à Apache de requestr de nouveau les détails de l'user?

Si vous utilisez Apache httpd 2.4, vous pouvez utiliser la nouvelle syntaxe pour y parvenir.

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

Ce genre de chose serait très difficile avant 2.4 sans un gestionnaire d'authentification personnalisé.