Historique des versions | |
---|---|
Version 1.0.0 | 29 mai 2002 |
Un peu de XML et de texte autour des notes. | |
Version 0.1 | 23 mai 2002 |
Notes d'installation. |
Résumé
Cet article décrit pas à pas les étapes nécessaires à l'installation du module Apache mod_auth_yp.c sous Mac OS X. Ce module permet l'authentification d'utilisateurs répertoriés dans une base NIS (Network Information System).
Table des matières
Normalement, avec Mac OS X, il suffit de paramètrer correctement le Service de Répertoire (Directory Service) ou NetInfo pour que les outils d'authentification recherchent automatiquement, si nécessaire, les informations dans des bases NIS (Network Information System) ou LDAP (Lightweight Directory Acces Protocol). Ayant obtenu des résultats peu satisfaisants (temps de réponse parfois un peu long), pour limiter l'accès à certaines parties d'un serveur web Apache j'ai cherché à installer un module Apache s'adressant directement à un serveur NIS. En parcourant le site des modules Apache j'ai trouvé la description du module mod_auth_yp.c à l'url <http://modules.apache.org/search?id=160>. Je vais donc décrire l'installation de ce module sous Mac OS X.
Pour pouvoir utiliser le module mod_auth_yp.c il faut que les services NIS soit activés (voir le document mosx-nis-install.html).
L'installation d'un module Apache et la modification de la configuration du serveur Apache nécessitent les droits d'administration sur l'ordinateur. Les commandes administrateur sont lancées par la commande sudo.
Pour compiler le module mod_auth_yp.c, il faut que les outils dévelopeurs Apple soient installés sur la machine.
La procédure décrite ici est constituée d'une série de commandes Unix saisies dans une fenêtre de l'application Terminal de Mac OS X.
Trois étapes sont nécessaires pour utiliser le module mod_auth_yp.c.
Récupérer le code source du module.
Compiler et installer le module.
Modifier la configuration du serveur Apache.
Le site des modules Apache indique un lien pour récupérer le module qui n'est plus valide. J'ai trouvé une copie du code source en C du module à l'url <http://ftp.rsu.ru/pub/net/www/server/apache/mods/mod_auth_yp.c>.
[villon:~/src] brogniar% curl -O "http://ftp.rsu.ru/pub/net/www/server/apache/mods/mod_auth_yp.c"
Une copie de ce fichier est disponible à mod_auth_yp.c.
Pour que le module se compile correctement sur Mac OS X, il faut rajouter une ligne au fichier mod_auth_yp.c original. Le fichier original contient les lignes suivantes.
#include <rpcsvc/ypclnt.h> #include <rpcsvc/yp_prot.h>
Avec un éditeur de texte, modifiez le fichier mod_auth_yp.c pour avoir la ligne manquante.
#include <rpc/rpc.h> #include <rpcsvc/ypclnt.h> #include <rpcsvc/yp_prot.h>
Compilez le module avec la commande apxs -c mod_auth_yp.c.
[villon:~/src] brogniar% apxs -c mod_auth_yp.c
La compilation va produire un fichier mod_auth_yp.so. Ajoutez le module à Apache avec la commande apxs -i mod_auth_yp.so.
[villon:~/src] brogniar% sudo apxs -i mod_auth_yp.so cp mod_auth_yp.so /usr/libexec/httpd/mod_auth_yp.so chmod 755 /usr/libexec/httpd/mod_auth_yp.so
Vous allez éditer le fichier /etc/httpd/httpd.conf pour modifier la configuration du serveur Apache.
[villon:~/src] brogniar% sudo pico /etc/httpd/httpd.conf
Ajoutez les lighes suivantes dans le fichier httpd.conf.
LoadModule auth_yp_module /usr/libexec/httpd/mod_auth_yp.so AddModule mod_auth_yp.c
Vérifiez ensuite que la configuration est correcte.
[villon:~/src] brogniar% sudo apachectl configtest [Fri May 24 14:07:56 2002] [warn] module mod_ssl.c is already added, skipping [Fri May 24 14:07:56 2002] [warn] module mod_dav.c is already added, skipping [Fri May 24 14:07:56 2002] [warn] module mod_hfs_apple.c is already added, skipping [Fri May 24 14:07:56 2002] [warn] module mod_redirectacgi_apple.c is already added, skipping [Fri May 24 14:07:56 2002] [warn] module mod_perl.c is already added, skipping [Fri May 24 14:07:56 2002] [warn] module mod_php4.c is already added, skipping Syntax OK
Si le résultat de la commande précédente finit par Syntax OK, vous pouvez redémarrer le serveur Apache.
[villon:~/src] brogniar% sudo apachectl graceful /usr/sbin/apachectl graceful: httpd gracefully restarted
Sinon, il vous faudra trouver la source des erreurs et les corriger.
Une fois les services NIS activés et le module mod_auth_yp.c installé et activé dans Apache vous allez pouvoir demander une authentification NIS pour protéger certaines parties de votre serveur web. Vous pouvez les protéger soit directement à partir du fichier de configuration Apache soit à l'aide d'un fichier .htaccess dans les dossiers où cela est permis. Voici un exemple de fichier .htaccess.
AuthName "Jojo et nis reserved"Satisfy any
Order deny,allow deny from all allow from jojo.ma-boite.org
AuthType Basic AuthYP On
Require valid-user
![]()