Utiliser des expressions régulières dans NPS

S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016

Cette rubrique explique l’utilisation d’expressions régulières aux fins de la correspondance de modèles dans NPS, dans Windows Server. Vous pouvez utiliser cette syntaxe pour spécifier les conditions des attributs de stratégie réseau et des domaines RADIUS.

Notes

La console NPS et le composant logiciel enfichable MMC NPS ont une limite de 256 caractères pour tous les paramètres qui prennent une valeur de chaîne. Cela inclut tous les paramètres qui peuvent être configurés à l’aide d’expressions régulières. Pour configurer des valeurs de chaîne supérieures à 256 caractères, utilisez les commandes NPS NETSH. Les valeurs de chaîne configurées supérieures à 256 caractères ne peuvent pas être modifiées dans la console NPS ni dans le composant logiciel enfichable MMC NPS sans qu’elles soient invalidées.

Référence de correspondance de modèles

Vous pouvez vous référer au tableau suivant lors de la création d’expressions régulières selon une syntaxe de correspondance de modèles. Notez que les modèles d’expression régulière sont souvent entourés de barres obliques (/).

Caractère Description Exemple
\ Indique que le caractère qui suit est un caractère spécial ou doit être interprété littéralement. /n/ matches the character "n" while the sequence /\n/ matches a line feed or newline character.
^ Correspond au début de l’entrée ou de la ligne.  
$ Correspond à la fin de l’entrée ou de la ligne.  
* Correspond au caractère précédant à zéro ou plusieurs reprises. /zo*/ matches either "z" or "zoo."
+ Correspond au caractère précédant à une ou plusieurs reprises. /zo+/ matches "zoo" but not "z."
? Correspond au caractère précédant à zéro ou une reprise. /a?ve?/ matches the "ve" in "never."
. Correspond à n’importe quel caractère unique à l’exception d’un caractère de ligne nouvelle.  
(pattern) Correspond à un « modèle » et mémorise la correspondance.
Pour faire correspondre les caractères ( littéraux et ) (parenthèses), utilisez \( ou \).
 
x | y Correspond à x ou y.
{n} Correspond exactement à n reprises (n est un nombre entier non négatif). /o{2}/ does not match the "o" in "Bob," but matches the first two instances of the letter o in "foooood."
{n,} Correspond au moins à n reprises (n est un nombre entier non négatif). /o{2,}/ does not match the "o" in "Bob" but matches all of the instances of the letter o in "foooood." /o{1,}/ is equivalent to /o+/.
{n,m} Correspond à au moins n et à au plus m reprises (m et n sont des nombres entiers non négatifs). /o{1,3}/ matches the first three instances of the letter o in "fooooood."
[xyz] Correspond à l’un des caractères entourés (jeu de caractères). /[abc]/ matches the "a" in "plain."
[^xyz] Correspond à tous les caractères qui ne sont pas entourés (jeu de caractères négatif). /[^abc]/ matches the "p" in "plain."
\b Correspond à une délimitation de mot (par exemple, une espace). /ea*r\b/ matches the "er" in "never early."
\B Correspond à une délimitation de non-mot. /ea*r\B/ matches the "ear" in "never early."
\d Correspond à un caractère numérique (équivalent aux chiffres compris entre 0 et 9).  
\D Correspond à un caractère non numérique (équivalent à [^0-9]).  
\f Correspond au caractère de présentation de page suivante.  
\n Correspond au caractère de présentation de ligne suivante.  
\r Correspond à un caractère de retour chariot.  
\s Correspond à n’importe quel caractère d’espace blanche, notamment l’espace, la tabulation et la présentation de page suivante (équivalent à [ \f\n\r\t\v]).  
\S Correspond à n’importe quel caractère d’espace non blanche (équivalent à [^ \f\n\r\t\v]).  
\t Correspond à un caractère de tabulation.  
\v Correspond à un caractère de tabulation verticale.  
\w Correspond à n’importe quel caractère de mot, notamment le trait de soulignement (équivalent à [A-Za-z0-9_]).  
\W Correspond à n’importe quel caractère de non-mot, à l’exclusion du trait de soulignement (équivalent à [^A-Za-z0-9_]).  
\num Fait référence aux correspondances mémorisées (?num, num état un nombre entier positif). Cette option peut être utilisée uniquement dans la zone de texte Remplacer, lors de la configuration de la manipulation d’attributs. \1 remplace les données stockées dans la première correspondance mémorisée.
/n/ Permet l’insertion de codes ASCII dans des expressions régulières (?n, n étant une valeur d’échappement octale, hexadécimale ou décimale).  

Exemples d’attributs de stratégie réseau

Les exemples suivants décrivent l’utilisation de la syntaxe de correspondance de modèles pour spécifier des attributs de stratégie réseau :

  • Pour spécifier l’ensemble des numéros de téléphone de l’indicatif régional 899, la syntaxe est la suivante :

    899.*

  • Pour spécifier une plage d’adresses IP commençant par 192.168.1, la syntaxe est la suivante :

    192\.168\.1\..+

Exemples de manipulation du nom de domaine dans l’attribut Nom d’utilisateur

Notes

La manipulation de domaine ne fonctionne pas avec le protocole PEAP.
Le comportement souhaité peut être obtenu en effectuant une commutation vers EAP-TLS ou EAP-MSCHAPv2 aux fins de l’authentification, ou en ajoutant un suffixe UPN au domaine pour chaque nom de domaine supplémentaire à résoudre.

Les exemples suivants décrivent l’utilisation de la syntaxe de correspondance de modèles pour manipuler les noms de domaine pour l’attribut Nom d’utilisateur, sous l’onglet Attribut dans les propriétés d’une stratégie de demande de connexion.

Pour supprimer la partie de domaine de l’attribut Nom d’utilisateur

Dans un scénario d’accès par ligne commutée externalisé dans lequel un fournisseur de services Internet (ISP) achemine les demandes de connexion vers un serveur NPS de l’organisation, le proxy RADIUS du fournisseur de services Internet peut nécessiter un nom de domaine pour acheminer la demande d’authentification. Toutefois, le serveur NPS peut ne pas reconnaître la partie de nom de domaine du nom d’utilisateur. Par conséquent, le nom de domaine doit être supprimé par le proxy RADIUS du fournisseur de services Internet avant d’être transféré au serveur NPS de l’organisation.

  • Trouver : @microsoft\.com

  • Remplacez :

Pour remplacer user@example.microsoft.com par example.microsoft.com\user

  • Trouver : (.*)@(.*)

  • Remplacer : $2\$1

Pour remplacer domain\user par specific_domain\user

  • Trouver : (.*)\\(.*)

  • Remplacer : specific_domain\$2

Pour remplacer user par user@specific_domain

  • Trouver : $

  • Remplacer : @specific_domain

Exemple de transfert de message RADIUS par un serveur proxy

Vous pouvez créer des règles de routage qui transfèrent des messages RADIUS présentant un nom de domaine spécifié à un jeu de serveurs RADIUS lorsque le serveur NPS est utilisé en tant que proxy RADIUS. La syntaxe suivante est recommandée pour le routage des demandes selon le nom de domaine.

  • Nom NetBIOS : WCOAST
  • Modèle : ^wcoast\\

Dans l’exemple suivant, wcoast.microsoft.com est un suffixe de nom principal d’utilisateur unique (UPN) pour le domaine DNS ou Active Directory wcoast.microsoft.com. À l’aide du modèle fourni, le proxy NPS peut acheminer les messages en fonction du nom netBIOS de domaine ou du suffixe UPN.

  • Nom NetBIOS : WCOAST
  • Suffixe UPN : wcoast.microsoft.com
  • Modèle : ^wcoast\\|@wcoast\.microsoft\.com$

Pour plus d’informations sur la gestion du serveur NPS, consultez Gérer le serveur NPS (Network Policy Server).

Pour plus d’informations sur le serveur NPS (Network Policy Server), consultez Serveur NPS (Network Policy Server).