Flexible Security for Your Peace of Mind

Dépannage de Specops Authentication Client RulesUI  

Le Specops Authentication Client (version 7.15 et suivantes) fournit un feedback en temps réel aux utilisateurs finaux lors de leur changement de mots de passe grâce à CTRL+ALT+SUPP Changer le mot de passe… 

Le client s’exécute dans le contexte du compte système de la machine et utilise le compte de l’ordinateur dans Active Directory pour résoudre les informations sur l’utilisateur final et les politiques de mot de passe appliquées. 

Dans la plupart des environnements, ce comportement fonctionnera sans modification supplémentaire dans Active Directory. Dans certains cas impliquant des questions de haute sécurité, le client pourra ne pas être en mesure de fournir un retour d’information sur les règles en place. Voici quelques problèmes connus pouvant survenir : 

Nom d’utilisateur introuvable 

Cette erreur peut se produire si le compte de l’ordinateur ne trouve pas l’utilisateur dans AD. Les autorisations suivantes sont nécessaires pour rechercher les utilisateurs : 

Could not show password rules

Exception, 'Could not find a user with the samAccountName or upn 'username' in the domain 'domain.com'

OUs contenant des utilisateurs : 

  • Lister le contenu 
  • Lire toutes les propriétés 

Comptes d’utilisateurs 

  • Lire les informations générales 
  • Lire les informations publiques 
  • Lire userAccountControl 

Pour accorder ces autorisations aux ordinateurs de domaine, utilisez le PowerShell suivant en tant qu’administrateur de domaine à partir d’une invite de commande sur un contrôleur de domaine. Modifiez le chemin d’accès à l’OU dans le script pour qu’il corresponde à votre environnement. 

$userOU = "OU=Users,OU=Specops,DC=specopsdemo1,DC=com"
$domainNetBIOSName = $(get-addomain).netBIOSName

# Grant read access to root OU
dsacls $userOU /G "$domainNetBIOSName\Domain Computers:RP" "$domainNetBIOSName\Domain Computers:LC" | out-null

# Grant read access to sub-OUs
dsacls $userOU /I:S /G "$domainNetBIOSName\Domain Computers:RP;;organizationalUnit" "$domainNetBIOSName\Domain Computers:LC;;organizationalUnit" | out-null

# Grant read access to user objects
dsacls $userOU /I:S /G "$domainNetBIOSName\Domain Computers:RP;userAccountControl;user" "$domainNetBIOSName\Domain Computers:RP;general information;user" "$domainNetBIOSName\Domain Computers:RP;public information;user" | out-null

Les règles de Specops Password Policy ne sont pas affichées 

Dans ce cas, le client charge les règles de la politique, mais seules les règles de la politique Active Directory sont affichées. Cela se produit généralement lorsque votre politique Specops Password Policy est filtrée sur un groupe de sécurité et que le client ne peut pas déterminer l’appartenance de l’utilisateur à un groupe. Pour résoudre ce problème, accordez aux ordinateurs du domaine l’accès à la lecture de l’attribut tokenGroups sur les comptes d’utilisateurs. Mettez à jour le chemin d’accès à l’OU dans le script pour qu’il corresponde à votre environnement : 

$userOU = "OU=Users,OU=Specops,DC=specopsdemo1,DC=com"
$domainNetBIOSName = $(get-addomain).netBIOSName

dsacls "OU=Users,OU=Specops,DC=specopsdemo1,DC=com" /I:S /G "$domainNetBIOSName\Domain Computers:RP;tokenGroups;user" | out-null

Impossibilité de lire la politique de mot de passe à granularité fine 

Dans ce cas, l’utilisateur est concerné par une politique de mot de passe à granularité fine d’Active Directory et soit les règles de cette politique ne sont pas affichées du tout, soit le client signale que la politique à granularité fine n’a pas pu être lue : 

Could not show password rules

Exception, 'The account username is affected by a fine grained password policy, but the current context does not have permission to read it.'

Dans ce cas, nous devons nous assurer que les ordinateurs de domaine disposent de droits explicites pour lire les stratégies à granularité fine dans Active Directory en accordant un accès de lecture à l’objet System\Password Settings Container dans Active Directory et à tous les objets qui en découlent. 

$domain = get-addomain
$domainNetBIOSName = $domain.netbiosname
$psoContainer = "CN=Password Settings Container,$($domain.systemscontainer)"

dsacls $psoContainer /I:T /G "$domainNetBIOSName\Domain Computers:RP" | out-null

Des filtres de mots de passe tiers 

Si tout s’affiche en vert, vérifiez si des filtres de mots de passe tiers rejettent le mot de passe (y compris, mais sans s’y limiter, Azure Password Protection). 

(Dernière mise à jour le 28/03/2024)

Revenir sur le blog