Manuel:Remise à zéro du mot de passe

From mediawiki.org
This page is a translated version of the page Manual:Resetting passwords and the translation is 100% complete.

Il y a plusieurs situation dans lesquelles un utilisateur doit remettre à zéro son mot de passe. Souvent, les gens oublient leur mot de passe ou subissent une faille de sécurité peut avoir révélé leur mot de passe. Dans la plupart des cas, ils peuvent remettre à zéro leur propre mot de passe en utilisant Special:PasswordReset

Dans les cas où l'utilisateur oublie son nom de compte ou perd l'accès à son adresse email, des mesures supplémentaires doivent peut-être être prises par un administrateur ou un administrateur système.

Méthodes

Utiliser Special:UserLogin

Si vous connaissez le nom d'utilisateur pour un compte, vous pouvez utiliser l'option "Envoyer un nouveau mot de passe" sur la page Spécial:ConnexionUtilisateur. Pour utiliser cette fonctionnalité, visitez la page Spécial:ConnexionUtilisateur pour le wiki pertinent, remplissez le champ Utilisateur du formulaire et cliquez sur le bouton "Envoyer un nouveau mot de passe". Un mot de passe temporaire, avec des instructions sur comment réinitialiser le mot de passe du compte, sera envoyé à l'adresse email associée ou nom d'utilisateur. Ceci arrivera même si l'adresse e-mail n'a pas été confirmée.

Trouver le nom d'utilisateur à partir d'une adresse courriel donnée

Si vous connaissez l'adresse email d'un utilisateur, mais pas leur nom, faites une requête au tableau user de la base de données MédiaWiki pour trouver le nom associé. Par exemple, pour trouver le nom d'utilisateur de user@example.com, lancez la requête suivante:

SELECT user_name FROM user WHERE user_email = 'user@example.com';

Utiliser le script de maintenance changePassword.php

Le script de maintenance changePassword.php permet aux administrateurs système de changer le mot de passe pour un compte. Pour les instructions complètes voir changePassword.php . Si vous êtes déjà familier avec les scripts de maintenance, exécuter la commande suivante depuis le répertoire maintenance:

# set the password for username 'example' to 'newpassword'
php run.php changePassword.php --user=example --password=newpassword

Attention: Les administrateurs système devraient ne pas connaître des mots de passe utilisateur non cryptés. Un utilisateur pourrait utiliser le même mot de passe sur de nombreux autres sites. Si un de leurs comptes utilisant ce mot de passe est compromis, on peut soupçonner l'administrateur. Il vaut mieux utiliser "Envoyer un nouveau mot de passe" pour forcer les utilisateurs à réinitialiser leur mot de passe ou à définir un mot de passe temporaire qu'ils changeront plus tard.


Utiliser Special:PasswordReset

Special:PasswordReset permet aux comptes avec la permission 'editmyprivateinfo' de réinitialiser des mots de passe utilisateur sur le MédiaWiki local.

A utiliser :

  • Tapez le nom de l'utilisateur dont vous voulez réinitialiser le mot de passe dans la case fournie et cliquez "réinitialiser le mot de passe"
  • Un mot de passe automatiquement généré sera envoyé à l'utilisateur

Pour insérer automatiquement le nom d'utilisateur dans les liens, utilisez Special:PasswordReset?wpUsername=Foo.

Différences entre Special:PasswordReset et Special:ChangePassword

MediaWiki differentiates between "resetting" and "changing" a password. In password reset request (via Special:PasswordReset or from the login page), you will be asked to provide either an email and/or username (this is configurable) and then an email is automatically sent to you with a generated password. No login is required to access this page, but might be restricted with internal permission checks.

In password change request (via Special:ChangePassword), you'll be able to directly change the password on the spot (give the old one, and choose new one), but login is required to access the page. So if you cannot access Special:ChangePassword, use Special:PasswordReset to first get a temporary password to log in. But if you can access the former page, use it directly to change the password, this eliminates the need for the email stage. Special:PasswordReset can be disabled with Manuel:$wgPasswordResetRoutes setting, if that's the case, and you cannot access Special:ChangePassword, then you need to ask your system administrator for help.


Utiliser l'API resetpassword

L'API resetpassword fournit la même fonctionnalité que Special:PasswordReset.

Modification directe de la base de données

Pour réinitialiser un mot de passe vous pouvez changer le champ user_password du tableau user dans votre base de données. Toutefois, il est en général plus facile et sécurisé d'utiliser "Envoyer un nouveau mot de passe" ou d'utiliser me script changePassword.php. Vous devriez ne vous rabattre sur la modification directe de la BD qu'en dernier recours, vu qu'il est très facile de bousiller votre wiki. Toujours sauvegarder la base de données avant de la modifier manuellement. La méthode ci-dessous ne fonctionne que si vous utilisez le fournisseur d'authentification par défaut de MédiaWiki. Si vous utilisez une extension qui modifie le processus d'authentification (comme LDAPAuth), elle pourrait ne pas fonctionner.

Le format que vous voyez dans le tableau utilisateur dépendra de $wgPasswordDefault dans LocalSettings.php . Toutefois, si vous utilisez un format différend, il sera automatiquement changé au format correct la prochaine fois que l'utilisateur se connecte. Donc pour ce guide, nous montrons comment manuellement préparer le format "B". Ce format est très facile à préparer depuis une requête SQL. Il n'est pas le forma par défaut comme il est moins fiable que pbkdf2, toutefois cela importe peu puisque le champ user_password sera amélioré au format normal à la prochaine connexion de l'utilisateur.

MySQL salé (1234 est le sel. Vous pouvez le remplacer par n'importe quel nombre tant que vous utilisez le même les deux fois)
UPDATE `user` SET user_password = CONCAT(':B:1234:', MD5(CONCAT('1234-', MD5('somepass')))) WHERE user_name = 'someuser';
PostgreSQL salé
update mwuser SET user_password = text(':B:1234:') || MD5(text('1234-') || MD5('somepass')) WHERE user_name = 'someuser';

Notes

Relancer Apache et vider le cache de votre navigateur pourrait aussi aider.

Vous pouvez copier le mot de passe connu d'un compte à un autre:

SELECT user_id, user_name, user_password FROM user;
+---------+-----------+----------------------------------------------+
| user_id | user_name | user_password                                |
+---------+-----------+----------------------------------------------+
|       1 | User1     | :B:1d8f41af:1ba8866d9c43d30b7bc037db03a067de |
|       2 | User2     | :B:ee53710f:4291b056175513a5602d48eaeb79705c |
+---------+-----------+----------------------------------------------+

UPDATE user SET user_password = ':B:ee53710f:4291b056175513a5602d48eaeb79705c' WHERE user_id = 1;