1 votes

Cascade de la directive Apache Auth vers les répertoires alias

Je dispose d'un bloc assez long de directives de configuration d'autorisation dans un fichier de configuration Apache. <Directory> dans le fichier de configuration d'un hôte virtuel.
Il possède des identifiants LDAP et un filtre complexe qu'il sera fastidieux de reproduire dans le fichier de configuration du serveur virtuel.

Voici un exemple simplifié :

ServerName server.domain.com
DocumentRoot /var/www/server.domain.com

<Directory /var/www/server.domain.com/>
    AllowOverride FileInfo
    Options +ExecCGI

    # PASSWORD PROTECT
    AuthType Basic
    AuthBasicProvider ldap file
    AuthName "INTERNAL"
    AuthLDAPURL ldap://xxx
    AuthLDAPBindDN uid=xxx,cn=xxx
    AuthLDAPBindPassword xxx
    AuthzLDAPAuthoritative on
    AuthUserFile /var/www/server.domain.com/.htpasswd
    Require valid-user
</Directory>

Alias /alias1 /var/www/alias1.domain.com
<Directory /var/www/alias1.domain.com>
    # ?
</Directory>

Alias /alias2 /var/www/alias2.domain.com
<Directory /var/www/alias2.domain.com>
    # ?
</Directory>

Alias /alias3 /var/www/alias3.domain.com
<Directory /var/www/alias3.domain.com>
    # ?
</Directory>

</VirtualHost>

Maintenant, parce que la plupart des Auth* doivent être utilisées à l'intérieur d'un Directory o .htaccess contexte, je suis obligé de répéter l'ensemble de l'opération. AuthType ... Require valid-user pour chaque Alias que j'ajoute.

Le seul moyen auquel je pense pour éviter cela est de diviser la section authentification dans un fichier séparé et d'y faire référence en utilisant l'option Include .

Comme solution, le Include fonctionnerait bien et serait facile à entretenir.

Existe-t-il une autre façon de procéder qui donne un fichier de configuration de serveur virtuel plus propre et moins répétitif ?
Juste au cas où il y aurait un moyen de faire ce genre de choses dans Apache que je n'aurais pas appris au cours des 15 dernières années !

EDIT : Je dois préciser que la raison pour laquelle j'utilise Alias est pour faciliter le déploiement, je ne veux pas avoir à recréer des liens symboliques à chaque fois que je reconstruis ce système. DocumentRoot répertoire. Je me rends compte cependant que l'utilisation de liens symboliques et de l'option Location fournirait la cascade que je recherche pour éviter la répétition.
Le problème que j'ai, je suppose, est plus lié au fait que Alias nécessite une correspondance Directory pour pouvoir restreindre l'accès.

0voto

Andrew Schulman Points 8341

Vous pourriez utiliser mod_authn_alias pour regrouper et réutiliser certaines des directives, mais je ne pense pas que cela soit très utile. Vous auriez toujours à répéter un grand nombre de directives.

D'après mon expérience, le Include La solution fonctionne bien et est facile à entretenir.

Pourriez-vous appliquer vos directives authnz à l'ensemble de /var/www ? Cela éliminerait la nécessité de les spécifier séparément pour chaque sous-répertoire. Sinon, vous pourriez peut-être déplacer les sites qui ont besoin de l'authnz dans un sous-répertoire, disons /var/www/authnz, et appliquer les paramètres une seule fois à ce répertoire.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X