Configurer la protection de verrouillage extranet AD FS

Dans AD FS sur Windows Server 2012 R2, nous avons introduit une fonctionnalité de sécurité appelée Verrouillage extranet. Avec cette fonctionnalité, AD FS « arrête » l’authentification d’un compte d’utilisateur « malveillant » de l’extérieur, pendant un certain temps. Ceci empêche le verrouillage de vos comptes d’utilisateur dans Active Directory. Outre le fait que vos utilisateurs sont protégés contre un verrouillage de compte dans AD, le verrouillage extranet AD FS protège également contre les attaques tentant de deviner le mot de passe par force brute.

Notes

Cette fonctionnalité fonctionne uniquement pour le scénario extranet où les demandes d’authentification passent par le proxy d’application Web et elle ne s’applique qu’à l’authentification par nom d’utilisateur et mot de passe.

Avantages du verrouillage extranet

Le verrouillage extranet offre les avantages principaux suivants :

  • Il protège vos comptes d’utilisateur contre les attaques par force brute lorsqu’un attaquant tente de deviner le mot de passe d’un utilisateur en envoyant en continu des demandes d’authentification. Dans ce cas, AD FS verrouille l’accès extranet du compte d’utilisateur malveillant
  • Il protège vos comptes d’utilisateur contre le verrouillage de compte malveillant lorsqu’un attaquant veut verrouiller un compte d’utilisateur en envoyant des demandes d’authentification avec des mots de passe incorrects. Dans ce cas, bien que l’accès extranet du compte d’utilisateur soit verrouillé par AD FS, le compte d’utilisateur réel dans AD n’est pas verrouillé et l’utilisateur peut toujours accéder aux ressources de l’entreprise au sein de l’organisation. C’est ce qu’on appelle un verrouillage réversible.

Fonctionnement

Vous devez configurer trois paramètres dans AD FS pour activer cette fonctionnalité :

  • L’opérateur booléen EnableExtranetLockout <> définit cette valeur booléenne sur True, si vous souhaitez activer le verrouillage extranet.
  • L’entier ExtranetLockoutThreshold <> détermine le nombre maximal de tentatives de mot de passe incorrect. Une fois le seuil atteint, AD FS rejette immédiatement les demandes provenant de l’extranet sans tenter de contacter le contrôleur de domaine pour l’authentification, que le mot de passe soit correct ou incorrect, jusqu’à ce que la fenêtre d’observation extranet se soit écoulée. Cela signifie que la valeur de l’attribut badPwdCount d’un compte AD n’augmente pas tant que le compte est verrouillé de manière réversible.
  • L’intervalle de temps ExtranetObservationWindow <> détermine pendant combien de temps le compte d’utilisateur sera verrouillé de manière réversible. AD FS recommence à effectuer l’authentification par nom d’utilisateur et mot de passe lorsque la fenêtre s’est écoulée. AD FS utilise l’attribut AD badPasswordTime comme référence pour déterminer si la fenêtre d’observation extranet est passée ou non. La fenêtre est passée si l’heure actuelle >est badPasswordTime + ExtranetObservationWindow.

Notes

Le verrouillage extranet AD FS fonctionne indépendamment des stratégies de verrouillage AD. Toutefois, nous vous recommandons vivement de définir la valeur du paramètre ExtranetLockoutThreshold sur une valeur inférieure au seuil de verrouillage du compte AD. Dans le cas contraire, AD FS ne peut pas protéger les comptes contre le verrouillage dans Active Directory.

Voici un exemple d’activation de la fonctionnalité de verrouillage extranet avec un maximum de 15 tentatives de mot de passe incorrect et une durée de verrouillage réversible de 30 minutes :

Set-AdfsProperties -EnableExtranetLockout $true -ExtranetLockoutThreshold 15 -ExtranetObservationWindow (new-timespan -Minutes 30)

Ces paramètres s’appliquent à tous les domaines que le service AD FS peut authentifier. Voici son fonctionnement : quand le service AD FS reçoit une demande d’authentification, il accède au contrôleur de domaine principal (PDC) par le biais d’un appel LDAP et effectue une recherche pour l’attribut badPwdCount pour l’utilisateur sur le contrôleur de domaine principal. Si AD FS trouve la valeur du paramètre badPwdCount>= ExtranetLockoutThreshold et que le temps défini dans la fenêtre d’observation extranet ne s’est pas encore écoulé, AD FS rejette immédiatement la demande, ce qui signifie que peu importe que l’utilisateur entre un mot de passe correct ou incorrect à partir de l’extranet, l’ouverture de session échoue, car AD FS n’envoie pas les identifiants à AD. AD FS ne conserve aucun état en ce qui concerne les comptes d’utilisateur badPwdCount ou verrouillés. AD FS utilise AD pour tous les suivis d’état.

Avertissement

Lorsque le verrouillage extranet AD FS sur le serveur 2012 R2 est activé, toutes les demandes d’authentification par le biais du WAP sont validées par AD FS sur le contrôleur de domaine principal. Lorsque le contrôleur de domaine principal de domaine est indisponible, les utilisateurs ne peuvent pas s’authentifier à partir de l’extranet.

Le serveur 2016 propose un paramètre supplémentaire qui permet à AD FS de se replier vers un autre contrôleur de domaine lorsque le contrôleur de domaine principal est indisponible :

  • Type booléen ExtranetLockoutRequirePDC <> - Lorsqu’il est activé : le verrouillage extranet nécessite un contrôleur de domaine principal (PDC). Lorsqu’il est désactivé : le verrouillage extranet se replie vers un autre contrôleur de domaine au cas où le contrôleur de domaine principal est indisponible.

Vous pouvez utiliser la commande Windows PowerShell suivante pour configurer le verrouillage extranet AD FS sur le serveur 2016 :

Set-AdfsProperties -EnableExtranetLockout $true -ExtranetLockoutThreshold 15 -ExtranetObservationWindow (new-timespan -Minutes 30) -ExtranetLockoutRequirePDC $false

Utilisation de la stratégie de verrouillage Active Directory

La fonctionnalité de verrouillage extranet dans AD FS fonctionne indépendamment de la stratégie de verrouillage AD. Toutefois, vous devez veiller à ce que les paramètres du verrouillage extranet soient correctement configurés, afin que la fonctionnalité puisse atteindre son objectif de sécurité avec la stratégie de verrouillage AD.

Examinons d’abord la stratégie de verrouillage AD. Il existe trois paramètres concernant la stratégie de verrouillage dans AD :

  • Seuil de verrouillage de compte : ce paramètre est similaire au paramètre ExtranetLockoutThreshold dans AD FS. Il détermine le nombre de tentatives d’ouverture de session ayant échoué qui entraînent le verrouillage d’un compte d’utilisateur. Afin de protéger vos comptes d’utilisateur contre une attaque de verrouillage de compte malveillante, il convient de définir la valeur ExtranetLockoutThreshold dans AD FS < la valeur seuil de verrouillage de compte dans AD
  • Durée du verrouillage de compte : ce paramètre détermine pendant combien de temps un compte d’utilisateur est verrouillé. Ce paramètre n’a pas beaucoup d’importance dans cette conversation, car si la configuration est réalisée correctement, le verrouillage extranet devrait toujours se produire avant le verrouillage AD
  • Réinitialiser le compteur de verrouillage de compte ensuite : ce paramètre détermine le temps qui doit s’écouler à partir du dernier échec d’ouverture de session de l’utilisateur avant que badPwdCount ne soit réinitialisé à 0. Pour que la fonctionnalité de verrouillage extranet dans AD FS fonctionne correctement avec la stratégie de verrouillage AD, vous devez veiller à ce que la valeur ExtranetObservationWindow dans AD FS soit correcte > la valeur Réinitialiser le compteur de verrouillage de compte après dans AD. Les exemples ci-dessous expliquent pourquoi.

Examinons deux exemples et voyons comment badPwdCount change au fil du temps en fonction des différents paramètres et états. Supposons que dans les deux exemples Seuil de verrouillage de compte = 4 et ExtranetLockoutThreshold = 2. La flèche rouge représente une tentative de mot de passe incorrecte, la flèche verte représente une tentative de mot de passe correcte. Dans l’exemple n°1, ExtranetObservationWindow>Réinitialiser le compteur de verrouillage de compte après. Dans l’exemple n°2, ExtranetObservationWindow<Réinitialiser le compteur de verrouillage de compte après.

Exemple 1

Diagram that shows how badPwdCount changes over time based on different settings and states.

Exemple 2

Example1

Comme vous pouvez le voir ci-dessus, il y a deux conditions pour que badPwdCount soit réinitialisé à 0. Une ouverture de session réussie est l’une de ces conditions. L’autre condition a lieu quand il est temps de réinitialiser ce compteur comme défini dans le paramètre Réinitialiser le compteur de verrouillage de compte après. Dans le cas de Réinitialiser le compteur de verrouillage de compte après<ExtranetObservationWindow, un compte ne risque pas d’être verrouillé par AD. Cependant, dans le cas de Réinitialiser le compteur de verrouillage de compte après>ExtranetObservationWindow, il est possible qu’un compte soit verrouillé par AD, mais de « manière différée ». Un certain temps peut être nécessaire pour qu’un compte soit verrouillé par AD en fonction de votre configuration, car AD FS n’autorise qu’une seule tentative de mot de passe incorrect pendant sa fenêtre d’observation jusqu’à ce que badPwdCount atteigne le seuil de verrouillage du compte.

Pour plus d'informations, consultez Configuration de verrouillage de compte.

Problèmes connus

Il existe un problème connu où le compte d’utilisateur AD ne peut pas s’authentifier avec AD FS, car l’attribut badPwdCount n’est pas répliqué sur le contrôleur de domaine qu’ADFS interroge. Consultez 2971171 pour plus d’informations. Vous trouverez tous les QFE d’AD FS qui ont été publiés jusqu’à présent ici.

Points importants à retenir

  • La fonctionnalité de verrouillage extranet fonctionne uniquement pour le scénario extranet où les demandes d’authentification passent par le proxy d’application Web
  • La fonctionnalité de verrouillage extranet s’applique uniquement à l’authentification par mot de passe du nom d’utilisateur
  • AD FS ne surveille pas l’attribut badPwdCount ou les utilisateurs qui sont verrouillés de façon réversible. AD FS se sert d’AD pour tous les suivis d’état
  • AD FS effectue une recherche pour l’attribut badPwdCount via un appel LDAP pour l’utilisateur sur le contrôleur de domaine principal pour chaque tentative d’authentification
  • Un AD FS plus ancien que 2016 échouera s’il ne peut pas accéder au contrôleur de domaine principal. AD FS 2016 a introduit des améliorations qui permettront à AD FS de revenir à d’autres contrôleurs de domaine au cas où le contrôleur de domaine principal est indisponible.
  • AD FS autorise les demandes d’authentification de l’extranet avec badPwdCount < ExtranetLockoutThreshold
  • Si badPwdCount>= ExtranetLockoutThreshold ET badPasswordTime + ExtranetObservationWindow< Heure actuelle, AD FS rejette les demandes d’authentification de l’extranet
  • Pour éviter le verrouillage de compte malveillant, vous devez vous assurer qu’il y a ExtranetLockoutThreshold<Seuil de verrouillage de compte ET ExtranetObservationWindow>Réinitialiser le compteur de verrouillage de compte