Использование регулярных выражений в NPS
В этом разделе объясняется использование регулярных выражений для сопоставления шаблонов в 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).