Réinitialiser le mot de passe des utilisateurs dans Active Directory par le compte d'administrateur de domaine ou un autre compte de service

8

Dans Active Directory, vous pouvez définir et appliquer des règles selon lesquelles les utilisateurs doivent utiliser un mot de passe fort, ne peuvent pas utiliser les 5 derniers mots de passe qu'ils avaient déjà, appliquer la complexité du mot de passe. Existe-t-il un moyen d'appliquer ces paramètres de sorte que si un compte de service (service Web de réinitialisation de mot de passe) tente de définir un nouveau mot de passe pour l'utilisateur, il soit vérifié par rapport à la stratégie et soit accepté, soit refusé?

Il semble que, puisque le compte de service force le changement de mot de passe, l'utilisateur peut taper le même mot de passe via l'interface Web et continuer à utiliser le même mot de passe encore et encore. Comme c'est un compte de service qui change le mot de passe pour lui, il n'est pas vérifié par rapport aux derniers mots de passe connus, donc les règles de mot de passe ne sont pas appliquées

Bien que le programmeur puisse coder une vérification de complexité, la dernière vérification des mots de passe utilisés ne peut pas être vérifiée sur l'interface Web car le service Web n'a pas la connaissance des derniers mots de passe.

Est-il possible de le forcer pour que ce changement de mot de passe par compte de service soit également restreint comme le serait le changement de mot de passe utilisateur normal?

Garçon furieux
la source

Réponses:

9

Dans AD, il existe deux types d'opérations pour modifier le mot de passe d'un utilisateur - une modification , qui peut être exécutée de manière anonyme car elle nécessite l'ancien mot de passe dans le cadre de la demande, et une réinitialisation , qui ne nécessite pas l'ancien mot de passe et doit être effectuée par un utilisateur autorisé à réinitialiser les mots de passe du compte ciblé.

Dans ce cas, l'application logicielle effectue l'opération de réinitialisation, sans connaître l'ancien mot de passe de l'utilisateur, mais en étant authentifiée comme vraisemblablement un compte de service avec les droits nécessaires.

Du point de vue d'AD, le mot de passe est en cours de réinitialisation administrative; l'historique des mots de passe n'est jamais appliqué dans ce cas, car l'administrateur effectuant la réinitialisation ne devrait pas connaître les anciens mots de passe de l'utilisateur - s'il a l'habitude de définir la nouvelle passe sur, disons Thursday1, le fait de ne pas respecter la politique sur une opération de réinitialisation serait être assez déroutant.

Bien que l'expérience utilisateur soit médiocre, le meilleur mécanisme auquel je peux penser pour gérer cela serait de réinitialiser le mot de passe de l'application Web (peut-être à quelque chose qu'ils n'entrent pas, juste généré), puis de définir le "doit changer de mot de passe lors de la prochaine connexion "drapeau sur le compte pour forcer l'utilisateur à effectuer immédiatement une opération de changement de mot de passe, qui appliquera l'historique.

Il y a une discussion sur l'utilisation des API LDAP dans .Net pour atteindre l'objectif d'imposer l'historique sur ce type de réinitialisation ici , mais je ne sais pas si ce sera une option pour vous en fonction de l'application que vous utilisez; si vous contrôlez le code et la bibliothèque LDAP que vous utilisez prend en charge les contrôles, cela devrait être faisable.

Shane Madden
la source
Il est possible d'implémenter un changement de mot de passe, comme vous le décrivez, dans une application web. OWA le fait, et mon université a une application personnalisée qui le fait également. Il nécessite que l'utilisateur saisisse l'ancien mot de passe, puis le nouveau mot de passe deux fois, comme cela est standard. Je ne connais pas la programmation derrière, ce serait un sujet mieux adapté à SO.
Thomas
Voici une application web shareware qui remplit cette fonction. Je n'ai pas testé et n'approuve PAS cette application, je la partage uniquement pour démontrer que la fonctionnalité existe. softpedia.com/get/Internet/Servers/Server-Tools/…
Thomas
@Thomas Je suppose que l'application qu'il utilise est pour la réinitialisation du mot de passe en libre-service lorsque l'utilisateur a oublié son mot de passe (mais a une sorte d'authentification appliquée par le service Web, comme une question de sécurité), ce qui rendrait le mécanisme de "changement" impossible . Sinon, certainement, utilisez simplement l'opération de changement!
Shane Madden
Je vois - le PO n'a pas expliqué si c'était le cas, mais vous pourriez avoir raison.
Thomas