IACA

Version 10. Auteur A. Sayer


Outils divers > TCPComIACA


Présentation

Le mot de passe d'un utilisateur peut être changé avec IACA sur le serveur. Il peut également être changé par l'utilisateur en utilisant Mdpiaca (Voir le paragraphe "Programme Mdpiaca" dans le "Pas à pas").

Mdpiaca suppose que l'utilisateur connaît son mot de passe.

Si l'utilisateur a un mot de passe masqué alors il peut le changer sans avoir recours à Mdpiaca par exemple en faisant un "Ctrl Alt Del".

Que faire si un utilisateur a oublié son mot de passe ?

- Il peut demander à l'administrateur de lui redonner.

- Si l'administrateur a imprimé le récapitulatif et a donné la feuille au professeur alors il peut demander au professeur.

- Le but de ce document est de proposer une autre méthode. A l'aide d'un serveur Web il est possible de demander le mot de passe d'un compte IACA ou de le changer. Cela permet de laisser la possibilité à un utilisateur IACA de retrouver son mot de passe et/ou de le changer. On peut également imaginer de donner le droits à certaines personnes d'accéder aux mots de passe des utilisateurs IACA.


Sécurité

- Le serveur IACA doit être paramétré pour accepter l'adresse IP du ou éventuellement des serveurs Web. Sans ce paramétrage, aucun serveur Web n'est accepté et les demandes sont ignorées.

- Si on permet aux utilisateurs de modifier leur mot de passe, on pourra demander à l'utilisateur de répondre à quelques questions dont il est seul à connaître la réponse (quel est le prénom de votre mère ? par exemple). Cela sous-entend que l'utilisateur a répondu à un questionnaire avant d'avoir oublié son mot de passe ou avant de vouloir le changer. C'est à vous de mettre en place ce type de questionnaire si vous le souhaitez.

- Si on ne permet cet accès qu'à quelques personnes, on pourra restreindre l'accès à cette partie du serveur Web à ces personnes. Ces personnes (quelques professeurs par exemple) pourront alors redonner le mot de passe d'un élève ou lui changer son mot de passe.


Principe

La mise en place de ce principe suppose que vous avez des connaissances en PHP ou en ASP car les exemples fournis ici devront être adaptés et complétés.

Vous placez au choix une page PHP ou ASP sur un serveur Web (Windows ou Linux). Le serveur Web doit être capable d' accéder au serveur IACA.

Lorsqu'un utilisateur IACA accède à cette page, une vérification est alors nécessaire pour ne pas laisser n'importe qui accéder aux mots de passe. C'est à vous de prévoir cette vérification. Pensez que dans le cas où l'utilisateur a oublié son mot de passe, il n'a certainement pas ouvert de session sur une station avec son nom.

Le serveur Web effectue la demande vers le service IACA du serveur IACA. Le service IACA vérifie que le serveur Web est autorisé, effectue le travail et donne sa réponse au serveur Web. Le serveur Web peut alors informer l'utilisateur que la demande a été faite ou a été refusée.

Nous verrons dans la suite que la demande peut avoir deux formes résumées ici :

Quel est le mot de passe de DUPOND ?

Je veux que le mot de passe de DUPOND devienne 12345.


Mise en oeuvre

Adresse IP du ou des serveurs Web

Afin de ne pas permettre à n'importe quel serveur Web de lire les mots de passe de IACA ou de les modifier, vous devez indiquer dans la base de registre du serveur IACA l'adresse IP du ou des serveurs Web autorisés.

Si votre serveur est en 32 bits : Placez-vous dans HKEY_LOCAL_MACHINE\SOFTWARE\Sayer\IACA
Si votre serveur est en 64 bits : Placez-vous dans HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Sayer\IACA

Créez une valeur chaîne nommée IPMdpWeb et donnez comme valeur l'adresse IP du serveur Web à autoriser. Si vous avez plusieurs adresses à indiquer, séparez-les par un point-virgule. Ne mettez pas d'espace. Il est inutile de redémarrer le service IACA, la modification est prise en compte immédiatement.

Si plus tard, vous ne voulez plus autoriser des serveurs Web, supprimez les adresses IP correspondantes.

Serveur Web et PHP

mdpphp.zip contient mdp.php qui est un fichier exemple. Ce fichier est documenté et devra être adapté suivant vos besoins.

Serveur Web et ASP

Afin d'établir la communication TCP entre la page ASP et le service IACA du serveur IACA, vous devez installer une DLL.

TCPComIACA.zip contient TCPComIACA.dll

Le fichier TCPComIACA.dll est à placer sur le serveur Web et à référencer avec le programme regsvr32.exe. Voici comment procéder :

Si votre serveur IIS est un Windows 32 bits

Copiez le fichier TCPComIACA.dll dans le répertoire C:\Windows\System32

Référencez ce fichier en tapant

    regsvr32  C:\Windows\System32\TCPComIACA.dll

Vous devez obtenir un message indiquant "DllRegisterServer... réussi"

Si vous aviez déjà référencé ce fichier, vous devez commencer par supprimer le référencement. Pour cela, redémarrer IIS (en effet la dll risque d'être utilisée par IIS, en redémarrant IIS la dll ne sera plus utilisée). Puis, tapez :
    regsvr32  C:\Windows\System32\TCPComIACA.dll   /u
Vous pouvez alors utiliser la procédure décrite précédemment.

Si votre serveur IIS est un Windows 64 bits

Copiez le fichier TCPComIACA.dll dans le répertoire C:\Windows\SysWow64

Référencez ce fichier en tapant

    regsvr32  C:\Windows\SysWow64\TCPComIACA.dll

Vous devez obtenir un message indiquant "DllRegisterServer... réussi"

Si vous aviez déjà référencé ce fichier, vous devez commencer par supprimer le référencement. Pour cela, redémarrer IIS (en effet la dll risque d'être utilisée par IIS, en redémarrant IIS la dll ne sera plus utilisée). Puis, tapez :
    regsvr32  C:\Windows\
SysWow64\TCPComIACA.dll   /u
Vous pouvez alors utiliser la procédure décrite précédemment.

Par défaut IIS 7 en 64 bits ne communique qu'avec des DLL en 64 bits. TCPComIACA.dll étant en 32 bits, vous devez autoriser IIS à communiquer aussi avec les DLL en 32 bits. voici comment procéder :

Dans "Gestionnaire des services Internet IIS", placez-vous sur "Pools d'applications" et "DefaultAppPool". Allez dans les "Paramètres avancés..." et choisissez "True" pour "Activer les applications 32 bits".

mdpasp.zip contient mdp.asp qui est un fichier exemple. Ce fichier est documenté et devra être adapté suivant vos besoins.


Qui a le droit de voir et modifier les mots de passe de qui ?

Il va être possible par exemple de permettre à une ou quelques personnes (des professeurs par exemple) de voir et de modifier les mots de passe des élèves.

Le paragraphe "Limiter l'accès à la page Web" ci-après, montre comment donner le droit de voir et de modifier les mot de passe à quelques personnes.

Le paragraphe "Limiter à certaines OU" montre comment limiter l'accès aux mots de passe de certains utilisateurs, par exemple limiter aux élèves

Limiter l'accès à la page Web

Voici quelques idées vous permettant de limiter l'accès à certaines personnes. Cette partie, un peu technique, va vous permettre de limiter le droit d'accéder aux mots de passe de IACA à quelques personnes.

Avec IIS

Je suppose que IIS est installé sur le serveur IACA ou sur un serveur du même domaine que celui de IACA. Il va alors être possible d'utiliser l'authentification de Windows pour limiter l'accès.

Dans IIS, faites un clic droit sur "Default Web Site" et "Ajouter un répertoire virtuel".

J'ai nommé le répertoire virtuel mdp (alias) qui correspond au dossier mdp que j'ai créé dans C:\inetpub\wwwroot mais il n'est pas nécessaire d'utiliser le même nom.

 

Placez-vous maintenant sur mdp qui se trouve dans "Default Web Site" et utilisez "Authentification".
Désactivez l'authentification anonyme et activez l'authentification Windows.
 

Il reste alors à modifier les autorisations de sécurité du dossier mdp. Ouvrez le dossier C:\inetpub\wwwroot et faites un clic droit sur le dossier mdp pour accéder aux propriétés et utilisez le volet "Sécurité.

Utilisez le bouton "Avancé" et dans la fenêtre suivante Utilisez le bouton "Modifier".

Enlevez la coche devant "Inclure les autorisations pouvant être hérités du parent de ce objet" puis choisissez "Copier".

Vous pouvez alors supprimer IIS_IUSRS.

Validez jusqu'à revenir à la fenêtre "Propriétés de mdp"

Utilisez le bouton "Modifier", puis "Ajouter". Indiquez le nom du ou des personnes ou du ou des groupes que vous voulez autoriser.

Validez.

Les coches proposées (Lecture et exécution, Affichage du contenu du dossier et Lecture) conviennent.

Avec Appache

Dans le dossier web, créez un dossier mdp. Placez dans mdp le fichier mdp.php (que l'on peut éventuellement renommer en index.php)
En dehors du dossier web créez un dossier que vous pouvez par exemple nommer prive.

Dans le dossier mdp créez un fichier nommé .htacess et contenant les lignes suivantes :

AuthName MotsDePasseIACA
AuthUserFile /xxx/yyy/prive/.htpasswd
AuthGroupFile /dev/null
AuthType Basic
<limit GET POST>
require valid-user
</Limit>

Après AuthName vous pouvez indiquer le mot que vous voulez (pas d'espace), il sera affiché dans la fenêtre demandant le mot de passe à l'utilisateur.

Vous remplacerez /xxx/yyy par le chemin absolu réel pour accéder au dossier prive.

Dans le dossier prive créez un fichier nommé .htpasswd contenant une ligne par personne autorisée. Chaque ligne est de la forme NOM:PASS_CODE. Pour calculer cette ligne vous pouvez utiliser des sites que vous trouverez facilement en faisant une recherche de "générateur htpasswd pour fichier htaccess".

Par exemple pour l'utilisateur nommé "DUPOND" avec comme mot de passe "123" on obtient la ligne avec un codage en MD5

DUPOND:$apr1$08.g4g5m$S7XonXSy9z41eYEGcONpi/


Limiter à certaines OU

Par défaut, le service IACA accepte de montrer ou de modifier le mot de passe de tout utilisateur IACA. Si vous souhaitez limiter à une partie des utilisateurs IACA vous devez indiquer le chemin LDAP de l'OU ou des OU contenant ces utilisateurs.

Ce chemin ou ces chemins devront être indiqués dans la base de registre.

Trouver le ou les chemins qu'il faudra indiquer

Seule la partie du chemin LDAP à partir de l'OU IACA est à indiquer.

Si par exemple vous voulez limiter à l'OU ELEVES comme représenté ci-contre, le chemin complet serait :

OU=ELEVES,OU=Users,OU=Site par défaut,OU=IACA,DC=domiaca,DC=priv

Mais vous devez n'indiquer que la partie gauche de ce chemin (la partie avant OU=IACA) c'est à dire :

OU=ELEVES,OU=Users,OU=Site par défaut

Remarquez les virgules et l'absence d'espace de chaque côté des virgules. "Site par défaut" contient deux espaces.

Autre exemple : Si l'OU ELEVES contient les OU 6A, 6B, 6C, 5A, 5B, 5C et que vous voulez limiter aux trois classes de sixième  alors vous devez indiquer ces trois lignes :

OU=6A,OU=ELEVES,OU=Users,OU=Site par défaut
OU=6B,OU=ELEVES,OU=Users,OU=Site par défaut
OU=6B,OU=ELEVES,OU=Users,OU=Site par défaut

Mettre ce ou ces chemins dans la base de registre

Ouvrez Regedit.

Si votre serveur est en 32 bits : Placez-vous dans HKEY_LOCAL_MACHINE\SOFTWARE\Sayer\IACA
Si votre serveur est en 64 bits : Placez-vous dans HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Sayer\IACA

Faites "Édition", "Nouveau" et "Valeur de chaînes multiples". Nommez cette valeur ListeOuMdpWeb et validez.

Faites ensuite un double clic sur cette valeur et mettez un chemin par ligne.

Ci-joints les deux cas décrits précédemment

Les personnes autorisées pourront voir et modifier le mot de passe de tous les élèves

Les personnes autorisées pourront voir et modifier le mot de passe de tous les élèves de 6A, 6B et 6C