NPS에서 정규식 사용하기

적용 대상: Windows Server 2022, Windows Server 2019, Windows Server 2016

본 토픽에서는 Windows Server 환경에서 NPS 패턴 매칭을 위해 정규 표현식을 활용하는 법을 안내합니다. 해당 구문을 통해 네트워크 정책 속성 및 RADIUS 영역 조건을 설정할 수 있습니다.

참고 항목

NPS 콘솔 및 NPS MMC 스냅인에는 문자열 값을 사용하는 모든 설정에 대해 256자 제한이 있습니다. 여기에는 정규식을 사용하여 구성할 수 있는 모든 설정이 포함됩니다. 256자를 초과하는 문자열 값을 구성하시려면 NETSH NPS 명령을 사용하세요. 256자를 초과하는 구성된 문자열 값은 무효화하지 않고 NPS 콘솔 또는 NPS MMC 스냅인에서 편집할 수 없습니다.

패턴 일치 참조

패턴 매칭 구문을 사용하여 정규 표현식을 만들 때 다음 표를 참고하세요. 정규 표현식 패턴은 일반적으로 슬래시(/)로 감싸져 있음을 유념하세요.

문자 설명 예시
\ 다음에 이어지는 문자는 특수 문자이거나 글자 그대로 해석되어야 함을 알려드립니다. /n/ matches the character "n" while the sequence /\n/ matches a line feed or newline character.
^ 입력 또는 줄의 시작 부분과 일치합니다.  
$ 입력 또는 줄의 끝 부분과 일치합니다.  
* 앞의 문자와 0번 이상 일치합니다. /zo*/ matches either "z" or "zoo."
+ 앞의 문자와 1번 이상 일치합니다. /zo+/ matches "zoo" but not "z."
? 앞의 문자와 0번 혹은 1번 이상 일치합니다. /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은 8진수, 16진수 또는 10진수 이스케이프 값임).  

네트워크 정책 특성의 예

다음 예제에서는 패턴 일치 구문을 사용하여 네트워크 정책 특성을 지정하는 방법을 설명합니다.

  • 899 지역 코드 내의 모든 전화 번호를 지정하기 위한 구문은,

    899.*

  • 192.168.1로 시작하는 IP 주소 범위를 지정하기 위한 구문은

    192\.168\.1\..+

사용자 이름 특성에서 영역 이름을 조작하는 예제

참고 항목

영역 조작은 PEAP에서 작동하지 않습니다.
원하는 동작은 인증을 위해 EAP-TLS 또는 EAP-MSCHAPv2로 전환하거나 해결해야 할 각 추가 도메인 이름에 UPN 접미사를 추가 하여 달성할 수 있습니다.

다음 예제는 연결 요청 정책 속성 의 탭에 있는 사용자 이름 속성에서 영역 이름을 조작하기 위해 패턴 매칭 구문을 사용하는 방법을 보여줍니다.

사용자 이름 특성의 영역 부분을 제거하려면

인터넷 서비스 제공업체(ISP)가 조직의 NPS로 연결 요청을 라우팅하는 외주 다이얼업 시나리오에서, ISP RADIUS 프록시는 인증 요청을 라우팅하기 위해 영역 이름이 필요할 수 있습니다. 다만, NPS는 사용자 이름에 포함된 영역 이름 부분을 식별하지 못할 수 있습니다. 따라서 조직의 NPS에 전달되기 전에 ISP RADIUS 프록시에서 영역 이름을 삭제해야 합니다.

  • 찾기: @microsoft\.com.

  • 다음을

user@example.microsoft.com을(를) example.microsoft.com\user로 바꾸려면

  • 찾기:(.*)@(.*).

  • 다음을$2\$1

domain\userspecific_domain\user로 바꾸려면

  • 찾기:(.*)\\(.*)

  • 바꾸기: specific_domain\$2

사용자를 user@specific_domain로 바꾸려면

  • 찾기:$

  • 바꾸기: @specific_domain

프록시 서버에서 RADIUS 메시지 전달 예제

NPS를 RADIUS 프록시로 활용하는 경우, 지정된 영역 이름이 담긴 RADIUS 메시지를 RADIUS 서버 그룹으로 전달하는 라우팅 규칙을 설정할 수 있습니다. 아래 내용은 영역 이름을 기반으로 요청을 라우팅하는 데 권장되는 구문입니다.

  • NetBIOS 이름: WCOAST
  • 패턴: ^wcoast\\

다음 예에서는 wcoast.microsoft.com이 DNS 또는 Active Directory 도메인 wcoast.microsoft.com의 고유 사용자 주체 이름(UPN) 접미사입니다. 제공된 패턴을 기반으로 NPS 프록시는 도메인 NetBIOS 이름 또는 UPN 접미사를 사용하여 메시지 라우팅을 수행할 수 있습니다.

  • NetBIOS 이름: WCOAST
  • URL 접미사: wcoast.microsoft.com
  • 패턴: ^wcoast\\|@wcoast\.microsoft\.com$

NPS 관리에 대한 자세한 내용은, 네트워크 정책 서버 관리를 참조 하세요.

NPS에 대한 더 자세한 내용은, 네트워크 정책 서버 (NPS)를 참조하세요.