Installation d'un module Apache d'authorisation NIS sous Mac OS X

Joël Brogniart

Historique des versions
Version 1.0.029 mai 2002
Un peu de XML et de texte autour des notes.
Version 0.123 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

Introduction
Étapes
Récupérer le code du module
Compilation et installation du module
Modifier la configuration du serveur Apache
Utilisation

Introduction

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.

Important

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.

Étapes

Trois étapes sont nécessaires pour utiliser le module mod_auth_yp.c.

  1. Récupérer le code source du module.

  2. Compiler et installer le module.

  3. Modifier la configuration du serveur Apache.

Récupérer le code du module

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>

Compilation et installation du module

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

Modifier la configuration du serveur Apache

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.

Utilisation

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"	1
Satisfy any			2
Order deny,allow
deny from all
allow from jojo.ma-boite.org	3
AuthType Basic
AuthYP On			4
Require valid-user		5
1

La première ligne indique un nom associé au dossier à protéger.

2

Cette directive indique que sont autorisées d'accès les personnes satisfaisant une des conditions qui suivent.

3

La machine jojo.ma-boite.org est autorisée à accéder (quelle que soit la personne travaillant dessus).

4

L'authentification est effectuée avec les outils NIS.

5

Il faut être un utilisateur correctement identifié (par l'identifiant et le mot de passe) auprès du NIS pour pouvoir entrer.