La fonction LsaLookupSids peut retourner l’ancien nom d’utilisateur au lieu du nouveau si le nom d’utilisateur a changé

Cet article décrit un délai de mise à jour du cache dans Windows.

Applicabilité : Windows 10 - toutes les éditions, Windows Server 2012 R2
Numéro de la base de connaissances d’origine : 946358

Symptômes

Prenons l’exemple du scénario suivant :

  • Sur l’ordinateur membre du domaine, une application appelle la fonction LsaLookupSids pour traduire un identificateur de sécurité (SID) en nom d’utilisateur.
  • Le nom d’utilisateur a été modifié sur un contrôleur de domaine.

Dans ce scénario, la fonction LsaLookupSids peut retourner l’ancien nom d’utilisateur au lieu du nouveau. Ce comportement peut empêcher l’application de fonctionner correctement.

Cause

L’autorité de sécurité locale (LSA) met en cache le mappage entre le SID et le nom d’utilisateur dans un cache local sur l’ordinateur membre du domaine. Le nom d’utilisateur mis en cache n’est pas synchronisé avec les contrôleurs de domaine. L’authentification LSA sur l’ordinateur membre du domaine interroge d’abord le cache SID local. Si un mappage existant se trouve déjà dans le cache SID local, LSA retourne les informations de nom d’utilisateur mis en cache au lieu d’interroger les contrôleurs de domaine. Ce comportement est destiné à améliorer les performances.

Les entrées de cache n’expirent pas, mais il est probable que les requêtes périodiques effectuées par les applications maintiennent l’entrée de cache existante active pendant la durée de vie maximale de l’entrée de cache.

Solution de contournement

Pour contourner ce problème, désactivez le cache SID local sur l’ordinateur membre du domaine. Pour cela, procédez comme suit :

  1. Ouvrez l’Éditeur du Registre.

    Pour ce faire dans Windows XP ou Windows Server 2003, cliquez sur Démarrer, sur Exécuter, tapez regedit, puis cliquez sur OK.

    Pour ce faire dans Windows Vista et versions ultérieures, cliquez sur Démarrer, tapez regedit dans la zone Démarrer la recherche , puis appuyez sur Entrée.

  2. Recherchez la sous-clé de Registre suivante et cliquez dessus avec le bouton droit :
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

  3. Pointez sur Nouveau, puis cliquez sur Valeur DWORD.

  4. Tapez LsaLookupCacheMaxSize, puis appuyez sur Entrée.

  5. Cliquez avec le bouton droit sur LsaLookupCacheMaxSize, puis cliquez sur Modifier.

  6. Dans la zone Données de la valeur , tapez 0, puis cliquez sur OK.

  7. Fermez l’Éditeur du Registre.

Remarque

L’entrée de Registre LsaLookupCacheMaxSize définit le nombre maximal de mappages mis en cache qui peuvent être enregistrés dans le cache SID local. Le nombre maximal par défaut est 128. Lorsque l’entrée de Registre LsaLookupCacheMaxSize est définie sur 0, le cache SID local est désactivé.

Statut

Le comportement est par conception.

Plus d’informations

Le LSA gère un cache SID sur les ordinateurs membres du domaine. Ce cache stocke les mappages entre les SID et les noms d’utilisateur. Si les informations DE SID existent dans le cache local, l’authentification LSA retourne les informations de nom d’utilisateur mises en cache au lieu de vérifier si le nom d’utilisateur a changé.

Le cache SID local permet de réduire la charge de travail du contrôleur de domaine et le trafic réseau. Toutefois, une incohérence peut se produire entre le cache local et les contrôleurs de domaine.

References

TechNet propose un article qui couvre les approches de résolution Sid-Name, y compris une description détaillée de ce cache :

Comment les SID et les noms de compte peuvent être mappés dans Windows

Pour plus d’informations sur la fonction LsaLookupSids , visitez le site Web Microsoft suivant :

LsaLookupSids, fonction