Dans le billet Apache : authentification intégrée sauf pour certains clients dont on ne connait pas la provenance réseau, je pensais arriver au résultat de ne pouvoir déclarer que les IP des filiales en SSO pour que le reste du monde puisse se connecter en anonyme. Grave erreur et elle était même inscite dès le départ dans ma configuration.
Cette méthode, même si elle a le mérite de montrer comme utiliser mod_setenvif, ne répond pas à mon besoin dans la mesure où elle me force en fait à déclarer tout le monde. Déclarer le réseau de chaque filiale dans un groupe qui est présent dans 54 pays et ensuite maintenir ces déclarations à chaque évolution du réseau est clairement rédibitoire pour l'exploitabilité de la solution.
La solution, certes moins élégante, mais qui marche a été de mettre en place deux virtual hosts au niveau d'apache qui consulte la même instance eZ Publish. Le premier sur le port 80 n'est paramétré que pour accéder avec une authentification SSO et le second en anonyme. Pour faire la répartition des filiales suivant si elles doivent attaquer une instance SSO ou anonyme se fait au niveau des routeurs internes vu que des règles similaires étaient déjà en place pour une autre application.
Dès lors, l'exploitabilité est simplifiée et en plus centralisée au niveau des routeurs. Cela évitera/limitera des oublis à l'avenir...
Pour revenir à ce que je voulais faire dans Apache, je pense que cela n'est pas possible à peu de choses près en l'état actuel. Peut être que l'évolution de la directive Require et de mod_authz_host dans Apache 2.3 aurait pu me fournir ce qu'il me manquait pour tout gérer au niveau d'apache et n'avoir qu'un seul virtual host en place.