J'ai une configuration de serveur LAMP utilisant Apache2, mod_php et mod_authnz_ldap pour l'authentification à Active Directory. Ce serveur héberge une application php légère où les utilisateurs entrent et manipulent des données. L'accès est basé sur les directives 'require ldap-group ...', et un certain nombre de groupes sont valides.
Nous devons maintenant ajouter l'accès d'un groupe supplémentaire, mais son accès doit être en "lecture seule". Dans ce cas, nous devons déterminer au niveau de l'application le groupe auquel appartient un utilisateur et désactiver certaines fonctions en fonction de l'appartenance à ce groupe. L'application est en php, donc quelque chose auquel php peut accéder facilement est idéal.
La solution idéale :
Le nom de groupe AD qu'apache a utilisé pour accorder l'accès peut facilement être exposé à l'application, de la même façon que $_SERVER['AUTHENTICATE_SAMACCOUNTNAME']
est.
Des solutions que j'aimerais éviter :
1. Accéder à ldap par un module php
Nous nous authentifions déjà via Apache, ce qui crée une duplication inutile, un travail supplémentaire à mettre en œuvre et des frais de maintenance supplémentaires (une URL de liaison de plus à modifier). C'est faisable, mais c'est pénible.
2. Modifier l'AuthLDAPURL
Encore une fois, il faut s'écarter de nos normes juste pour cet hôte, et maintenir cela à l'avenir. C'est faisable, mais un peu moins douloureux. L'ajout d'autres directives ldap ou les changements de serveur virtuel seraient cependant triviaux à faire.
3. Ajout d'un Vhost dupliqué avec un accès plus limité
Cela semble être la meilleure idée, mais il faudrait publier une nouvelle URL pour le nouveau groupe, ce qui serait une mauvaise expérience pour l'utilisateur et pourrait être rejeté.
4. Authentification basée sur SQL
Il y a tellement de frais généraux supplémentaires que ce n'est absolument pas viable dans ce cas. (Et techniquement, cela ne répondrait pas à la question de toute façon).