Use expressões regulares no NPS

Aplica-se a: Windows Server 2022, Windows Server 2019 e Windows Server 2016

Este tópico explica o uso das expressões regulares para correspondência de padrões no NPS do Windows Server. Use essa sintaxe para especificar as condições de atributos de política de rede e de realms do RADIUS.

Observação

O Console do NPS e o snap-in do MMC do NPS têm um limite de 256 caracteres para todas as configurações que usam um valor de cadeia de caracteres. Isso inclui todas as configurações que podem ser definidas com expressões regulares. Para configurar valores de cadeia de caracteres que excedem 256 caracteres, use comandos do NETSH do NPS. Os valores de cadeia de caracteres configurados que excedem 256 caracteres não podem ser editados no Console do NPS nem no snap-in do MMC do NPS sem invalidá-los.

Referência de correspondência de padrões

Use a tabela a seguir como uma fonte de referência ao criar expressões regulares com a sintaxe de correspondência de padrões. Observe que os padrões de expressão regular geralmente ficam entre barras (/).

Caractere Descrição Exemplo
\ Indica que o caractere a seguir é um caractere especial ou que deve ser interpretado literalmente. /n/ matches the character "n" while the sequence /\n/ matches a line feed or newline character.
^ Corresponde ao início da entrada ou da linha.  
$ Corresponde ao final da entrada ou da linha.  
* Corresponde ao caractere anterior nenhuma ou mais vezes. /zo*/ matches either "z" or "zoo."
+ Corresponde ao caractere anterior uma ou mais vezes. /zo+/ matches "zoo" but not "z."
? Corresponde ao caractere anterior nenhuma ou uma vez. /a?ve?/ matches the "ve" in "never."
. Corresponde a qualquer caractere único, exceto um caractere de nova linha.  
(pattern) Corresponde ao "padrão" e lembra a correspondência.
Para corresponder aos caracteres literais ( e ) (parênteses), use \( ou \).
 
x | y Corresponde a x ou y.
{n} Corresponde exatamente a n vezes (n é um inteiro não negativo). /o{2}/ does not match the "o" in "Bob," but matches the first two instances of the letter o in "foooood."
{n,} Corresponde a, no mínimo, n vezes (n é um inteiro não negativo). /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} Corresponde a, no mínimo, n e, no máximo, m vezes (m e n são inteiros não negativos). /o{1,3}/ matches the first three instances of the letter o in "fooooood."
[xyz] Corresponde a qualquer um dos caracteres delimitados (um conjunto de caracteres). /[abc]/ matches the "a" in "plain."
[^xyz] Corresponde a todos os caracteres que não estão entre parênteses (um conjunto de caracteres negativo). /[^abc]/ matches the "p" in "plain."
\b Corresponde a um limite de palavra (por exemplo, um espaço). /ea*r\b/ matches the "er" in "never early."
\B Corresponde a um limite que não é uma palavra. /ea*r\B/ matches the "ear" in "never early."
\d Corresponde a um caractere de dígito (equivalente a dígitos de 0 a 9).  
\D Corresponde a um caractere não dígito (equivalente a [^0-9]).  
\f Corresponde a um caractere de avanço de página.  
\n Corresponde a um caractere de alimentação de linha.  
\r Corresponde a um caractere de retorno de carro.  
\s Corresponde a qualquer caractere de espaço em branco, incluindo espaço, tabulação e feed de formulário (equivalente a [ \f\n\r\t\v]).  
\S Corresponde a qualquer caractere de espaço não branco (equivalente a [^ \f\n\r\t\v]).  
\t Corresponde a um caractere de tabulação.  
\v Corresponde a um caractere de tabulação vertical.  
\w Corresponde a qualquer caractere de palavra, incluindo sublinhado (equivalente a [A-Za-z0-9_]).  
\W Corresponde a qualquer caractere que não seja de palavra, excluindo sublinhado (equivalente a [^A-Za-z0-9_]).  
\num Refere-se às correspondências lembradas (?num, em que num é um inteiro positivo). Essa opção só pode ser usada na caixa de texto Substituir ao configurar a manipulação de atributo. \1 substitui o que é armazenado na primeira correspondência lembrada.
/n/ Permite a inserção de códigos ASCII em expressões regulares (?n, em que n é um valor octal, hexadecimal ou decimal de escape).  

Exemplos de atributos da política de rede

Os exemplos a seguir descrevem o uso da sintaxe de correspondência de padrões para especificar atributos da política de rede:

  • Para especificar todos os números de telefone dentro do código de área 899, a sintaxe a ser usada é:

    899.*

  • Para especificar um intervalo de endereços IP que começa com 192.168.1, a sintaxe a ser usada é:

    192\.168\.1\..+

Exemplos de processamento do nome do realm no atributo Nome de Usuário

Observação

O processamento de realm não funciona com o PEAP.
O comportamento desejado pode ser realizado alternando para o EAP-TLS ou o EAP-MSCHAPv2 para autenticação ou adicionando um sufixo UPN ao domínio a cada nome de domínio adicional que você precisa resolver.

Os exemplos a seguir descrevem o uso da sintaxe de correspondência de padrões para processar nomes de realm para o atributo Nome de Usuário, localizado na guia Atributo nas propriedades de uma política de solicitação de conexão.

Para remover a parte de realm do atributo de Nome de Usuário

Em um cenário de discagem terceirizada no qual um ISP (provedor de serviços de Internet) roteia as solicitações de conexão para um NPS da organização, o proxy do RADIUS do ISP pode exigir um nome de realm para rotear a solicitação de autenticação. No entanto, talvez o NPS não reconheça a parte do nome de realm do nome de usuário. Portanto, o nome do realm precisa ser removido pelo proxy do RADIUS do ISP antes de ser encaminhado para o NPS da organização.

  • Encontre: @microsoft\.com

  • Substitua:

Para substituir user@example.microsoft.com por example.microsoft.com\user

  • Encontre: (.*)@(.*)

  • Substitua: $2\$1

Para substituir domain\user por specific_domain\user

  • Encontre: (.*)\\(.*)

  • Substitua: specific_domain\$2

Para substituir user por user@specific_domain

  • Encontre: $

  • Substitua: @specific_domain

Exemplo de encaminhamento de mensagens do RADIUS por um servidor proxy

Você pode criar regras de roteamento que encaminham as mensagens do RADIUS com um nome de realm especificado para um conjunto de servidores RADIUS quando o NPS é usado como um proxy do RADIUS. Veja a seguir uma sintaxe recomendada para as solicitações de roteamento com base no nome do realm.

  • Nome NetBIOS: WCOAST
  • Padrão: ^wcoast\\

No exemplo a seguir, wcoast.microsoft.com é um sufixo UPN exclusivo para o domínio do DNS ou do Active Directory wcoast.microsoft.com. Usando o padrão fornecido, o proxy do NPS pode rotear mensagens com base no nome NetBIOS do domínio ou no sufixo UPN.

  • Nome NetBIOS: WCOAST
  • Sufixo UPN: wcoast.microsoft.com
  • Padrão: ^wcoast\\|@wcoast\.microsoft\.com$

Para obter mais informações sobre como gerenciar o NPS, confira Gerenciar o Servidor de Políticas de Rede.

Para obter mais informações sobre o NPS, confira NPS (Servidor de Políticas de Rede).