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

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

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

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

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

Символ Описание Пример
\ Указывает, что символ, следующий за, является специальным символом или должен интерпретироваться буквально. /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 Соответствует либо x, либо 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 раз (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 Соответствует нецифровому символу (эквивалентно [^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 , где num — положительное целое число). Этот параметр можно использовать только в текстовом поле заменить при настройке манипуляций с атрибутами. \1 заменяет содержимое, хранящееся в первом сохраненном совпадении.
/n/ Позволяет вставлять ASCII-коды в регулярные выражения ( ?n где n — это восьмеричное, шестнадцатеричное или десятичное escape-значение).  

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

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

  • Для указания всех номеров телефонов в коде области 899 используется следующий синтаксис:

    899.*

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

    192\.168\.1\..+

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

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

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

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

  • Поиск: @microsoft \.ком

  • Замените

Для замены на example. Microsoft. ком\усер

  • Найдено(.*)@(.*)

  • Восстановить$2\$1

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

  • Найдено(.*)\\(.*)

  • Заменить: specific_domain

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

  • Найдено$

  • Заменить: @specific_domain

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

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

  • NetBIOS-имя:
  • Шаблон:

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

  • NetBIOS-имя:
  • Суффикс имени участника-пользователя:
  • Шаблон:

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

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