Использование регулярных выражений в NPS

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016

В этом разделе объясняется использование регулярных выражений для сопоставления шаблонов в NPS в Windows Server. Этот синтаксис можно использовать для указания условий атрибутов политики сети и областей RADIUS.

Примечание.

Консоль NPS и оснастка MMC NPS имеют ограничение на 256 символов для всех параметров, которые принимают строковое значение. Это включает все параметры, которые можно настроить с помощью регулярных выражений. Чтобы настроить строковые значения, превышающие 256 символов, используйте команды NPS NETSH. Настроенные строковые значения, превышающие 256 символов, не могут быть изменены в консоли NPS или оснастке MMC NPS, не изменяя их.

Справочник по сопоставлению шаблонов

При создании регулярных выражений с синтаксисом сопоставления шаблонов можно использовать следующую таблицу в качестве источника ссылок. Обратите внимание, что шаблоны регулярных выражений часто окружены косой чертой (/).

Символ Description Пример
\ Указывает, что следующий символ является специальным символом или должен быть интерпретирован буквально. /n/ matches the character "n" while the sequence /\n/ matches a line feed or newline character.
^ Соответствует началу входных или строк.  
$ Соответствует концу входной или строки.  
* Соответствует предыдущему символу ноль или более раз. /zo*/ matches either "z" or "zoo."
+ Соответствует предыдущему символу один или несколько раз. /zo+/ matches "zoo" but not "z."
? Соответствует предыдущему символу ноль или один раз. /a?ve?/ matches the "ve" in "never."
. Соответствует любому одному символу, кроме нового символа.  
(pattern) Соответствует "шаблону" и запоминает совпадение.
Чтобы соответствовать литеральным символам ( и ) (скобкам), используйте \( или \).
 
x | y Соответствует х или y.
{n} Соответствует ровно n раз (n — неотрицательное целое число). /o{2}/ does not match the "o" in "Bob," but matches the first two instances of the letter o in "foooood."
{n,} Соответствует по крайней мере n раз (n — неотрицательное целое число). /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} Совпадения по крайней мере n и в большинстве раз (m и n являются неотрицательных целых чисел). /o{1,3}/ matches the first three instances of the letter o in "fooooood."
[xyz] Соответствует любому из вложенных символов (набор символов). /[abc]/ matches the "a" in "plain."
[^xyz] Соответствует любым символам, которые не заключены (отрицательный набор символов). /[^abc]/ matches the "p" in "plain."
\b Соответствует границе слова (например, пробелу). /ea*r\b/ matches the "er" in "never early."
\B Соответствует неключевой границе. /ea*r\B/ matches the "ear" in "never early."
\d Соответствует цифре (эквивалентно цифрам от 0 до 9).  
\D Соответствует символу, отличному отdigit (эквивалентно [^0-9]).  
\f Соответствует символу веб-канала формы.  
\n Соответствует символу веб-канала строки.  
\r Соответствует символу возврата каретки.  
\s Соответствует любому символу пробела, включая пробел, вкладку и веб-канал формы (эквивалентно [ \f\n\r\t\v]).  
\S Соответствует любому символу, отличному от пробела (эквивалентно [^ \f\n\r\t\v]).  
\t Соответствует символу табуляции.  
\v Соответствует символу вертикальной вкладки.  
\w Соответствует любому символу слова, включая символ подчеркивания (эквивалентно [A-Za-z0-9_]).  
\W Соответствует любому символу, отличному от слова, за исключением символа подчеркивания (эквивалентно символу [^A-Za-z0-9_]).  
\num Ссылается на запоминаемые совпадения (?numгде число является положительным целым числом). Этот параметр можно использовать только в текстовом поле "Заменить " при настройке манипуляции атрибутами. \1 заменяет то, что хранится в первом запоминаемом совпадении.
/n/ Позволяет вставлять коды ASCII в регулярные выражения (?nгде n — восьмеричное, шестнадцатеричное или десятичное escape-значение).  

Примеры атрибутов политики сети

В следующих примерах описывается использование синтаксиса сопоставления шаблонов для указания атрибутов политики сети:

  • Чтобы указать все номера телефонов в коде области 899, синтаксис:

    899.*

  • Чтобы указать диапазон IP-адресов, начинающихся с 192.168.1, используется следующий синтаксис:

    192\.168\.1\..+

Примеры для манипуляции с именем области в атрибуте Имени пользователя

Примечание.

Манипуляция с областью не работает с PEAP.
Необходимое поведение можно выполнить путем переключения на EAP-TLS или EAP-MSCHAPv2 для проверки подлинности или добавления суффикса имени участника-пользователя в домен для каждого дополнительного доменного имени, необходимого для разрешения.

В следующих примерах описывается использование синтаксиса сопоставления шаблонов для управления именами областей для атрибута имени пользователя, расположенного на вкладке "Атрибут " в свойствах политики запроса подключения.

Удаление части области атрибута Имени пользователя

В сценарии с внешним телефонным подключением, в котором поставщик услуг Интернета (ISP) направляет запросы на подключение к NPS организации, прокси-сервер ISP RADIUS может требовать имя области для маршрутизации запроса проверки подлинности. Однако NPS может не распознать часть имени области пользователя. Таким образом, имя области должно быть удалено прокси-сервером ISP RADIUS, прежде чем он перенаправлялся в NPS организации.

  • Найти: @microsoft\.com

  • Замена:

Замена user@example.microsoft.com на example.microsoft.com\user

  • Найти:(.*)@(.*)

  • Заменить:$2\$1

Замена домена\пользователя specific_domain\user

  • Найти:(.*)\\(.*)

  • Замена: specific_domain\$2

Замена пользователя user@specific_domain

  • Найти:$

  • Замена: @specific_domain

Пример перенаправления сообщений RADIUS прокси-сервером

Вы можете создать правила маршрутизации, которые пересылают сообщения RADIUS с указанным именем области в набор серверов RADIUS, когда NPS используется в качестве прокси-сервера RADIUS. Ниже приведен рекомендуемый синтаксис для запросов маршрутизации на основе имени области.

  • Имя NetBIOS: WCOAST
  • Шаблон: ^wcoast\\

В следующем примере wcoast.microsoft.com — это уникальный суффикс имени участника-пользователя (UPN) для wcoast.microsoft.com домена DNS или Active Directory. Используя предоставленный шаблон, прокси-сервер NPS может направлять сообщения на основе имени домена NetBIOS или суффикса имени участника-пользователя.

  • Имя NetBIOS: WCOAST
  • Суффикс имени участника-участника: wcoast.microsoft.com
  • Шаблон: ^wcoast\\|@wcoast\.microsoft\.com$

Дополнительные сведения об управлении NPS см. в разделе "Управление сервером политики сети".

Дополнительные сведения о NPS см. в разделе "Сервер политики сети" (NPS).