Compartir a través de


Usar expresiones regulares de NPS

En este tema se explica el uso de expresiones regulares para la coincidencia de patrones en NPS en Windows Server. Puede usar esta sintaxis para especificar las condiciones de los atributos de directiva de red y dominios kerberos de RADIUS.

Nota

La consola NPS y el complemento MMC de NPS tienen un límite de 256 caracteres para todas las configuraciones que toman un valor de cadena. Esto incluye todas las opciones que se pueden configurar mediante expresiones regulares. Para configurar valores de cadena que superen los 256 caracteres, use comandos NPS de NETSH. Los valores de cadena configurados que superen los 256 caracteres no se pueden editar en la consola NPS ni en el complemento MMC de NPS sin invalidarlos.

Referencia para la coincidencia de patrón

Use la tabla siguiente como referencia cuando vaya a crear expresiones regulares con sintaxis de coincidencia de patrón. Tenga en cuenta que los patrones de expresiones regulares suelen estar rodeados por barras diagonales (/).

Carácter Descripción Ejemplo
\ Indica que el carácter siguiente es un carácter especial o que se debe interpretar literalmente. /n/ matches the character "n" while the sequence /\n/ matches a line feed or newline character.
^ Coincide con el principio de entrada o línea.  
$ Coincide con el final de entrada o línea.  
* Coincide con el carácter anterior ninguna o más veces. /zo*/ matches either "z" or "zoo."
+ Coincide con el carácter anterior una o más veces. /zo+/ matches "zoo" but not "z."
? Coincide con el carácter anterior una vez o ninguna. /a?ve?/ matches the "ve" in "never."
. Coincide con cualquier carácter sencillo, excepto con un carácter de línea nueva.  
(pattern) Coincide con el "patrón" y recuerda la coincidencia.
Para hacer coincidir los caracteres literales ( y ) (paréntesis), use \( o \).
 
x | y Coincide con x o y.
{n} Coincide exactamente n veces (n es un número entero no negativo). /o{2}/ does not match the "o" in "Bob," but matches the first two instances of the letter o in "foooood."
{n,} Coincide como mínimo n veces (n es un número entero no 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} Coincide como mínimo n veces y como máximo m veces (m y n son números enteros no negativos). /o{1,3}/ matches the first three instances of the letter o in "fooooood."
[xyz] Coincide con cualquiera de los caracteres incluidos (un juego de caracteres). /[abc]/ matches the "a" in "plain."
[^xyz] Coincide con cualquiera de los caracteres no incluidos (un juego de caracteres negativos). /[^abc]/ matches the "p" in "plain."
\b Coincide con un límite de palabra (por ejemplo, un espacio). /ea*r\b/ matches the "er" in "never early."
\B Coincide si no es un límite de palabra. /ea*r\B/ matches the "ear" in "never early."
\d Coincide con un carácter de dígito (equivalente a dígitos de 0 a 9).  
\D Coincide con un carácter que no es un dígito (equivalente a [^0-9]).  
\f Coincide con un carácter de avance de página.  
\n Coincide con un carácter de salto de línea.  
\r Coincide con un carácter de retorno de carro.  
\s Coincide con cualquier carácter de espacio en blanco, como un espacio, una tabulación y un avance de página (equivalente a [ \f\n\r\t\v]).  
\S Coincide con cualquier carácter que no sea un espacio en blanco (equivalente a [^ \f\n\r\t\v]).  
\t Coincide con un carácter de tabulación.  
\v Coincide con un carácter de tabulación vertical.  
\w Coincide con cualquier carácter de palabra, incluido el subrayado (equivalente a [A-Za-z0-9_]).  
\W Coincide con cualquier carácter que no sea de palabra, excluyendo el subrayado (equivalente a [^A-Za-z0-9_]).  
\num Hace referencia a las coincidencias memorizadas (?num, donde num es un número entero positivo). Esta opción sólo se puede usar en el cuadro de texto Reemplazar cuando se configura el tratamiento de atributos. \1 reemplaza a lo que se haya almacenado en la primera coincidencia memorizada.
/n/ Permite la inserción de códigos ASCII en expresiones regulares (?n, donde n es un valor octal, hexadecimal o de escape decimal).  

Ejemplos de atributos de directiva de red

Los ejemplos siguientes describen el uso de la sintaxis de coincidencia de patrón para especificar atributos de directiva de red:

  • Para especificar todos los números de teléfono del código de área 899, la sintaxis es:

    899.*

  • Para especificar un intervalo de las direcciones IP que comienzan por 192.168.1, la sintaxis es:

    192\.168\.1\..+

Ejemplos de tratamiento del nombre de territorio en el atributo User Name

Nota

La manipulación del dominio kerberos no funciona con PEAP.
El comportamiento deseado puede realizarse cambiando a EAP-TLS o EAP-MSCHAPv2 para la autenticación o agregando un sufijo UPN al dominio para cada nombre de dominio adicional que necesite resolver.

Los siguientes ejemplos describen el uso de la sintaxis de coincidencia de patrones para tratar nombres de territorio para el atributo User Name, que se encuentra en la pestaña Atributo de las propiedades de una directiva de solicitud de conexión.

Para quitar la parte de dominio kerberos del atributo User Name

En un escenario de acceso telefónico exterior donde un proveedor de servicios Internet (ISP) enruta solicitudes de conexión a un servidor NPS de la organización, es posible que el proxy RADIUS del ISP requiera un nombre de dominio kerberos para enrutar la solicitud de autenticación. Sin embargo, puede que el servidor NPS no reconozca la parte del nombre de dominio kerberos del nombre de usuario. Por tanto, el nombre de dominio kerberos debe quitarse antes de que el proxy RADIUS del ISP lo reenvíe al servidor NPS de la organización.

  • Busque: @microsoft\.com

  • Sustituya:

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

  • Busque: (.*)@(.*)

  • Reemplace por: $2\$1

Para reemplazar domain\user por specific_domain\user

  • Busque: (.*)\\(.*)

  • Reemplace por: specific_domain\$2

Para reemplazar user por user@specific_domain

  • Busque: $

  • Reemplace por: @specific_domain

Ejemplo de reenvío de mensajes RADIUS por parte de un servidor proxy

Puede crear reglas de enrutamiento que reenvíen mensajes RADIUS con un nombre de territorio específico a un conjunto determinado de servidores RADIUS cuando NPS se use como un proxy RADIUS. A continuación, se indica la sintaxis recomendada para el enrutamiento de solicitudes en función del nombre de territorio.

  • Nombre NetBIOS: WCOAST
  • Patrón: ^wcoast\\

En el siguiente ejemplo, wcoast.microsoft.com es un sufijo de nombre principal de usuario (UPN) único para el dominio DNS o el dominio de Active Directory. Mediante el patrón suministrado, el proxy NPS puede enrutar mensajes basados en el nombre NetBIOS del dominio o el sufijo UPN.

  • Nombre NetBIOS: WCOAST
  • Sufijo UPN: wcoast.microsoft.com
  • Patrón: ^wcoast\\|@wcoast\.microsoft\.com$

Para más información sobre la administración de NPS, consulte Administrar el servidor de directivas de redes.

Para más información sobre NPS, consulte Servidor de directivas de redes (NPS).