> Tech > Utilisation de l’interface IADsUser

Utilisation de l’interface IADsUser

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

ADSI propose un ensemble d'interfaces de services d'annuaire pour gérer les ressources réseau. L'interface IADsUser et le script ADSI permettent également de modifier le mot de passe d'un utilisateur. J'ai créé deux pages ASP (Active Server Page) démontrant cette procédure. La figure 1 montre la première page, ChangePasswordEntry.asp et le

Listing 1 le script de cette page.































ChangePasswordEntry.asp est un fichier HTML comportant trois informations cruciales
pour changer le mot de passe d’un utilisateur : le nom d’utilisateur, le mot de
passe précédent et le nouveau mot de passe. Une fois que l’utilisateur a entré
les informations et cliqué sur Soumettre, le script passe la main à  ChangePassword1asp.
Ce fichier contient le code du Listing 2, qui change réellement le mot de passe
de l’utilisateur.



Le code du listing 2 fonctionne dans Windows 2000 et Windows NT 4.0 pour les noms
d’utilisateurs stockés localement et ne faisant pas partie d’un domaine ou d’Active
Directory. Le libellé A du listing 2 dimensionne (c’est-à -dire crée) plusieurs
variables utilisées par ChangePassword1.asp. Le dimensionnement rend le code plus
lisible pour les développeurs. Il faut utiliser l’option Explicit dans le code
pour imposer le dimensionnement de toutes les variables.



Le code de la partie B du listing 2 utilise les valeurs 122122nom et mot de passe
de ChangePasswordEntry.asp et les place dans les variables correspondantes créées
par la légende A. L’instruction If de la légende B vérifie si la variable sUser
est en blanc. Si c’est le cas, le code repasse la main à  ChangePasswordEntry.asp.



Le code de la partie C du listing démarre véritablement l’activité de ChangePassword1asp.
Lorsque l’on utilise ADSI, il faut communiquer avec un fournisseur ADSI gérant
la ressource à  laquelle on se connecte. ChangePassword1.asp utilise le fournisseur
WinNT, lorsque le serveur Web utilise des comptes d’utilisateurs locaux. La première
ligne du libellé C crée la chaîne de connexion et la stocke dans la variable sConnectString
pour commencer le processus de connexion au fournisseur WinNT. La chaîne de connexion
se compose du nom du fournisseur (WinNT), des séparateurs (://), du nom de l’ordinateur
(bigboat) et d’un séparateur final (/). Le libellé C annexe le nom d’utilisateur
et la mention  » ,utilisateur  » à  la chaîne. Le nom d’utilisateur représente l’objet
utilisateur du fournisseur WinNT, qui représente lui-même un compte d’utilisateur.



Une fois la chaîne de connexion créée par l’instruction sConnectString du bloc
de ligne de code C, l’instruction Response.Write la présente en la faisant parvenir
à  la suite HTTP. Les instructions de type Response.Write sont superbes pour le
débogage. Après avoir testé le code, vous pouvez les faire précéder d’un guillemet
(?) pour qu’elles ne soient pas exécutées. L’instruction Set oUser du bloc de
lignes de code C lie la variable SetoUser à  une instance de l’objet utilisateur
qui représente l’utilisateur spécifié dans la chaîne de connexion.



Les deux instructions Response.Write qui suivent le groupe de lignes de code C
aident à  déboguer le code de test, parce qu’elles permettent d’inspecter le nom
d’utilisateur et le mot de passe fournis au cours de l’authentification de base
au serveur. Elles utilisent la collection ServerVariables de l’objet ASP Request.
La première ligne utilise la variable LOGON_USER, qui représente l’utilisateur
couramment connecté. On peut également utiliser la variable REMOTE_USER pour fournir
le compte d’utilisateur. La deuxième ligne fournit le mot de passe de l’utilisateur
à  partir de la variable AUTH_PASSWORD, si l’utilisateur est connecté avec l’authentification
De base.

La ligne qui change le mot de passe est



oUser.ChangePassword sPassword, sNewPassword



du libellé D. Le premier paramètre de ChangePassword est le mot de passe courant
de l’utilisateur (sPassword). Le second est son nouveau mot de passe (sNewPassword).
Une fois l’exécution du script terminée, le nouveau mot de passe entre en vigueur.



La figure 2 montre le formulaire ChangePasswordEntry.asp en action : j’ai saisi
un nom d’utilisateur, le mot de passe courant ainsi que le nouveau mot de passe.
Lorsque je clique sur Soumettre, ChangePassword1.asp s’exécute. La figure 3 montre
les résultats renvoyés par les instructions Response.Write. Si j’entre un mot
de passe existant incorrect, ADSI me signale que le mot de passe n’est pas correct,
comme le montre la figure 4. ADSI ne permettra pas aux utilisateurs, ne disposant
pas des références adéquates, de changer leurs mots de passe.





















Lorsqu’on utilise ADSI ou toute autre technique pour changer le mot de passe d’un
utilisateur par le biais d’une interface Web, il faut configurer les pages pour
qu’elles s’exécutent sous HTTPS (HTTP over Secure Sockets Layer), qui crypte les
informations des comptes d’utilisateurs pour qu’elles ne soient pas transmises
en texte clair.

Téléchargez cette ressource

Comment sécuriser une PME avec l’approche par les risques ?

Comment sécuriser une PME avec l’approche par les risques ?

Disposant de moyens financiers et humains contraints, les PME éprouvent des difficultés à mettre en place une véritable stratégie de cybersécurité. Opérateur de services et d’infrastructures, Naitways leur propose une approche pragmatique de sécurité « by design » en priorisant les risques auxquelles elles sont confrontées.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010