조건부 액세스: 디바이스에 대한 필터
관리자가 조건부 액세스 정책을 만들 때, 환경에서 특정 디바이스를 대상으로 지정하거나 제외하는 기능은 흔히 수행하게 되는 작업입니다. 관리자는 디바이스에 대한 조건 필터를 통해 특정 디바이스를 대상으로 지정할 수 있습니다. 관리자는 조건부 액세스 정책에서 디바이스 필터에 대해 지원되는 연산자 및 속성과 사용 가능한 기타 할당 조건을 지정할 수 있습니다.
일반적인 시나리오
이제 조직에서 디바이스에 대한 필터 조건을 사용하여 여러 시나리오를 사용하도록 설정할 수 있습니다. 다음 시나리오에서는 이 새 조건을 사용하는 방법의 예를 제공합니다.
- 권한 있는 리소스에 대한 액세스 제한. 이 예제에서는 다음과 같은 사용자에게 Windows Azure 서비스 관리 API에 대한 액세스를 허용하려는 경우를 가정해 보겠습니다.
- 권한 있는 역할이 할당되어 있습니다.
- 다단계 인증을 완료했습니다.
- 권한이 있거나 안전한 관리자 워크스테이션이고 규정을 준수하는 것으로 증명된 디바이스를 사용하고 있습니다.
- 이 시나리오에서 조직은 두 가지 조건부 액세스 정책을 만듭니다.
- 정책 1: 관리자 역할이 있는 모든 사용자, Windows Azure 서비스 관리 API 클라우드 앱에 액세스 및 액세스 제어의 경우 액세스 권한을 부여하지만 다단계 인증이 필요하고 디바이스를 규격으로 표시해야 합니다.
- 정책 2: 규칙 식 device.extensionAttribute1을 사용하는 디바이스에 대한 필터를 제외하고 Windows Azure 서비스 관리 API 클라우드 앱에 액세스하는 관리자가 있는 모든 사용자는 SAW 및 액세스 제어의 경우 차단입니다. Microsoft Entra 디바이스 개체에서 ExtensionAttributes를 업데이트하는 방법을 알아봅니다.
- 지원되지 않는 운영 체제 버전을 실행하는 디바이스에서 조직 리소스에 대한 액세스를 차단합니다. 이 예제에서는 Windows 10 이전의 Windows OS 버전에서 리소스에 대한 액세스를 차단한다고 가정해 보겠습니다. 이 시나리오에서 조직은 다음과 같은 조건부 액세스 정책을 만듭니다.
- 규칙 식 device.operatingSystem을 사용하는 디바이스에 대한 필터를 제외하고 모든 리소스에 액세스하는 모든 사용자는 Windows 및 device.operatingSystemVersion startsWith "10.0" 및 액세스 제어의 경우 차단과 같습니다.
- 특정 디바이스에서 측정 계정에 대한 다단계 인증을 요구하지 않습니다. 이 예제에서는 Teams 전화 또는 Surface Hub 디바이스와 같은 특정 디바이스에서 서비스 계정을 사용할 때 다단계 인증을 요구하지 않도록 할 수 있습니다. 이 시나리오에서 조직은 다음과 같은 두 가지 조건부 액세스 정책을 만듭니다.
- 정책 1: 서비스 계정을 제외한 모든 사용자, 모든 리소스 액세스 및 액세스 제어의 경우 액세스 권한을 부여하지만 다단계 인증이 필요합니다.
- 정책 2: 사용자 및 그룹을 선택하고 서비스 계정만 포함하는 그룹을 포함하고, 규칙 식 디바이스를 사용하는 디바이스에 대한 필터를 제외한 모든 리소스에 액세스합니다.extensionAttribute2는 TeamsPhoneDevice 및 액세스 제어의 경우 차단이 아닙니다.
참고 항목
Microsoft Entra ID는 디바이스 인증을 사용하여 디바이스 필터 규칙을 평가합니다. Microsoft Entra ID에 등록되지 않은 디바이스의 경우 모든 디바이스 속성은 null 값으로 간주되며 해당 디바이스가 디렉터리에 존재하지 않으므로 디바이스 특성을 확인할 수 없습니다. 등록되지 않은 디바이스에 대한 정책을 대상으로 지정하는 가장 좋은 방법은 구성된 필터 규칙이 적용되므로 음수 연산자를 사용하는 것입니다. 양수 연산자를 사용하는 경우 필터 규칙은 디바이스가 디렉터리에 있고 구성된 규칙이 디바이스의 특성과 일치하는 경우에만 적용됩니다.
조건부 액세스 정책 만들기
디바이스용 필터는 조건부 액세스 정책을 만들 때 선택적으로 사용할 수 있는 컨트롤입니다.
다음 단계는 일반적인 시나리오에서 첫 번째 시나리오를 지원하는 두 가지 조건부 액세스 정책을 만드는 데 도움이 됩니다.
정책 1: 관리자 역할이 있는 모든 사용자, Windows Azure 서비스 관리 API 클라우드 앱에 액세스 및 액세스 제어의 경우 액세스 권한을 부여하지만 다단계 인증이 필요하고 디바이스를 규격으로 표시해야 합니다.
- 최소한 조건부 액세스 관리자로 Microsoft Entra 관리 센터에 로그인합니다.
- 보호>조건부 액세스>정책으로 이동합니다.
- 새 정책을 선택합니다.
- 정책에 이름을 지정합니다. 조직에서 정책 이름에 의미 있는 표준을 만드는 것이 좋습니다.
- 할당 아래에서 사용자 또는 워크로드 ID를 선택합니다.
포함아래에서 디렉터리 역할을 선택한 다음, 이름에 관리자가 있는 모든 역할을 선택합니다.
제외에서 사용자 및 그룹을 선택하고 조직의 응급 액세스 또는 비상 계정을 선택합니다.
완료를 선택합니다.
- 대상 리소스>리소스(이전의 클라우드 앱)>>에서 리소스 선택, Windows Azure 서비스 관리 API 선택, 선택 선택 등을 선택합니다.
- 액세스 제어>권한 부여에서 액세스 권한 부여, 다단계 인증 필요, 디바이스를 규정 준수 상태로 표시해야 함을 선택한 다음, 선택을 선택합니다.
- 설정을 확인하고 정책 사용을 켜기로 설정합니다.
- 만들기를 선택하여 정책을 만들어 사용하도록 설정합니다.
정책 2: Windows Azure 서비스 관리 API 클라우드 앱에 액세스하는 관리자 역할이 있는 모든 사용자에 대하여, 규칙 식 device.extensionAttribute1 equals SAW를 사용하여 디바이스에 대한 필터를 제외하고, 액세스 제어를 차단으로 설정합니다.
- 새 정책을 선택합니다.
- 정책에 이름을 지정합니다. 조직에서 정책 이름에 의미 있는 표준을 만드는 것이 좋습니다.
- 할당 아래에서 사용자 또는 워크로드 ID를 선택합니다.
포함아래에서 디렉터리 역할을 선택한 다음, 이름에 관리자가 있는 모든 역할을 선택합니다.
제외에서 사용자 및 그룹을 선택하고 조직의 응급 액세스 또는 비상 계정을 선택합니다.
완료를 선택합니다.
- 대상 리소스>리소스(이전의 클라우드 앱)>>에서 리소스 선택, Windows Azure 서비스 관리 API 선택, 선택 선택 등을 선택합니다.
- 조건, 디바이스에 대한 필터.
- 구성을 예로 전환합니다.
- 규칙과 일치하는 디바이스를 정책에서 필터링된 디바이스 제외로 설정합니다.
- 속성을
ExtensionAttribute1
, 연산자를Equals
, 값을SAW
로 설정합니다. - 완료를 선택합니다.
- 액세스 제어>권한 부여에서 액세스 차단을 선택하고 선택을 선택합니다.
- 설정을 확인하고 정책 사용을 켜기로 설정합니다.
- 만들기를 선택하여 정책을 만들어 사용하도록 설정합니다.
Warning
규정 준수 디바이스를 필요로 하는 정책은 디바이스 규정 준수가 적용되지 않는 경우에도 정책 평가 중에 사용자에게 Mac, iOS, Android에서 디바이스 인증서를 선택하라는 메시지를 표시할 수 있습니다. 해당 메시지는 디바이스가 규정을 준수할 때까지 반복적으로 표시될 수도 있습니다.
특성 값 설정
확장 특성은 Microsoft Graph API를 통해 설정할 수 있습니다. 디바이스 특성을 설정하는 방법에 대한 자세한 내용은 디바이스 업데이트 문서를 참조하세요.
디바이스에 대한 필터 Graph API
디바이스에 대한 필터 API는 Microsoft Graph v1.0 엔드포인트에서 사용할 수 있으며 엔드포인트 https://graph.microsoft.com/v1.0/identity/conditionalaccess/policies/
를 사용하여 액세스할 수 있습니다. 새 조건부 액세스 정책을 만들 때 디바이스에 대한 필터를 구성하거나 기존 정책을 업데이트하여 디바이스에 대한 필터 조건을 구성할 수 있습니다. 기존 정책을 업데이트하려면 기존 정책의 정책 ID를 추가하고 다음 요청 본문을 실행하여 Microsoft Graph v1.0 엔드포인트에 대한 패치 호출을 수행할 수 있습니다. 이 예에서는 SAW 디바이스로 표시되지 않은 디바이스를 제외하는 디바이스에 대한 필터 조건 구성을 보여 줍니다. 규칙 구문은 둘 이상의 단일 식으로 구성될 수 있습니다. 구문에 대해 자세히 알아보려면 Microsoft Entra ID의 그룹에 대한 동적 멤버십 그룹 규칙을 참조하세요.
{
"conditions": {
"devices": {
"deviceFilter": {
"mode": "exclude",
"rule": "device.extensionAttribute1 -ne \"SAW\""
}
}
}
}
필터에 대한 지원되는 연산자 및 디바이스 속성
조건부 액세스에서 디바이스에 대한 필터 조건에 다음과 같은 디바이스 특성을 사용할 수 있습니다.
참고 항목
Microsoft Entra ID는 디바이스 인증을 사용하여 디바이스 필터 규칙을 평가합니다. Microsoft Entra ID에 등록되지 않은 디바이스의 경우 모든 디바이스 속성은 null 값으로 간주되며 해당 디바이스가 디렉터리에 존재하지 않으므로 디바이스 특성을 확인할 수 없습니다. 등록되지 않은 디바이스에 대한 정책을 대상으로 지정하는 가장 좋은 방법은 구성된 필터 규칙이 적용되므로 음수 연산자를 사용하는 것입니다. 양수 연산자를 사용하는 경우 필터 규칙은 디바이스가 디렉터리에 있고 구성된 규칙이 디바이스의 특성과 일치하는 경우에만 적용됩니다.
지원되는 디바이스 특성 | 지원되는 연산자 | 지원되는 값 | 예시 |
---|---|---|---|
deviceId | Equals, NotEquals, In, NotIn | GUID인 유효한 deviceId | (device.deviceid -eq "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb") |
displayName | Equals, NotEquals, StartsWith, NotStartsWith, EndsWith, NotEndsWith, Contains, NotContains, In, NotIn | 모든 문자열 | (device.displayName -contains "ABC") |
deviceOwnership | Equals, NotEquals | 지원되는 값은 개인 디바이스 가져오기의 경우 "개인"이고 회사 소유 디바이스의 경우 "회사"입니다. | (device.deviceOwnership -eq "Company") |
isCompliant | Equals, NotEquals | 지원되는 값은 호환 디바이스의 경우 "True"이고 비호환 디바이스의 경우 "False"입니다. | (device.isCompliant -eq "True") |
제조업체 | Equals, NotEquals, StartsWith, NotStartsWith, EndsWith, NotEndsWith, Contains, NotContains, In, NotIn | 모든 문자열 | (device.manufacturer -startsWith “Microsoft”) |
mdmAppId | Equals, NotEquals, In, NotIn | 유효한 MDM 애플리케이션 ID | (device.mdmAppId -in ["00001111-aaaa-2222-bbbb-3333cccc4444"]) |
model | Equals, NotEquals, StartsWith, NotStartsWith, EndsWith, NotEndsWith, Contains, NotContains, In, NotIn | 모든 문자열 | (device.model -notContains "Surface") |
operatingSystem | Equals, NotEquals, StartsWith, NotStartsWith, EndsWith, NotEndsWith, Contains, NotContains, In, NotIn | 유효한 운영 체제(예: Windows, iOS 또는 Android) | (device.operatingSystem -eq "Windows") |
operatingSystemVersion | Equals, NotEquals, StartsWith, NotStartsWith, EndsWith, NotEndsWith, Contains, NotContains, In, NotIn | 유효한 운영 체제 버전(예: Windows 7의 경우 6.1, Windows 8의 경우 6.2 또는 Windows 10 및 Windows 11의 경우 10.0) | (device.operatingSystemVersion -in ["10.0.18363", "10.0.19041", "10.0.19042", "10.0.22000"]) |
physicalIds | Contains, NotContains | 예를 들어 모든 Windows Autopilot 디바이스는 디바이스 physicalIds 속성에 ZTDId(가져온 모든 Windows Autopilot 디바이스에 할당된 고유 값)를 저장합니다. | (device.physicalIds -contains "[ZTDId]:value") |
profileType | Equals, NotEquals | 디바이스에 대해 설정된 유효한 프로필 형식 집합입니다. 지원되는 값은 RegisteredDevice(기본값), SecureVM(Microsoft Entra 로그인으로 활성화된 Windows VM에 사용), Printer(프린터에 사용), Shared(공유 디바이스에 사용), IoT(IoT 디바이스에 사용)입니다. | (device.profileType -eq "Printer") |
systemLabels | Contains, NotContains | 시스템에서 디바이스에 적용한 레이블 목록입니다. 지원되는 값 중 일부는 AzureResource(Microsoft Entra 로그인으로 활성화된 Windows VM에 사용), M365Managed(Microsoft Managed Desktop을 사용하여 관리되는 디바이스에 사용), MultiUser(공유 디바이스에 사용)입니다. | (device.systemLabels -contains "M365Managed") |
trustType | Equals, NotEquals | 디바이스에 대해 유효한 등록된 상태입니다. 지원되는 값은 AzureAD(Microsoft Entra 조인 디바이스에 사용), ServerAD(Microsoft Entra 하이브리드 조인 디바이스에 사용), Workplace(Microsoft Entra 등록 디바이스에 사용)입니다. | (device.trustType -eq "ServerAD") |
extensionAttribute1-15 | Equals, NotEquals, StartsWith, NotStartsWith, EndsWith, NotEndsWith, Contains, NotContains, In, NotIn | extensionAttributes1-15는 고객이 디바이스 개체에 사용할 수 있는 특성입니다. 고객은 사용자 지정 값을 사용하여 extensionAttributes1부터 15 중에서 업데이트하고 이를 조건부 액세스의 디바이스에 대한 필터 조건에 사용할 수 있습니다. 모든 문자열 값을 사용할 수 있습니다. | (device.extensionAttribute1 -eq "SAW") |
참고 항목
복잡한 규칙을 빌드하거나 디바이스 ID에 deviceid와 같은 너무 많은 개별 식별자를 사용하는 경우 "필터 규칙의 최대 길이는 3072자"라는 점에 유의하세요.
참고 항목
Contains
및 NotContains
연산자는 특성 유형에 따라 다르게 작동합니다. operatingSystem
및 model
와 같은 문자열 특성의 경우 Contains
연산자는 지정된 substring이 특성 내에서 발생하는지 여부를 나타냅니다. physicalIds
및 systemLabels
와 같은 문자열 컬렉션 특성의 경우 Contains
연산자는 지정된 문자열이 컬렉션의 전체 문자열 중 하나와 일치하는지 여부를 나타냅니다.
Warning
조건부 액세스 정책 평가 시 extensionAttributes1-15에서 값을 사용할 수 있도록 하려면 디바이스는 Microsoft Intune 관리가 적용되거나, 규정을 준수하거나, Microsoft Entra 하이브리드 조인 상태여야 합니다.
디바이스에 대한 필터를 사용하는 정책 동작
조건부 액세스의 디바이스에 대한 필터 조건은 Microsoft Entra ID에 등록된 디바이스의 디바이스 특성에 따라 정책을 평가하므로 정책이 적용되거나 적용되지 않는 상황을 이해하는 것이 중요합니다. 다음 표에서는 디바이스에 대한 필터 조건을 구성할 때의 동작을 보여 줍니다.
디바이스에 대한 필터 조건 | 디바이스 등록 상태 | 적용된 디바이스 필터 |
---|---|---|
양수 연산자(Equals, StartsWith, EndsWith, Contains, In)와 모든 특성 사용을 포함하는 포함/제외 모드 | 등록되지 않은 디바이스 | 아니요 |
양수 연산자(Equals, StartsWith, EndsWith, Contains, In)와 extensionAttributes1-15를 제외한 특성 사용을 포함하는 포함/제외 모드 | 등록된 디바이스 | 예, 조건이 충족되는 경우 |
양수 연산자(Equals, StartsWith, EndsWith, Contains, In)와 extensionAttributes1-15를 포함한 특성 사용을 포함하는 포함/제외 모드 | Intune에서 관리하는 등록된 디바이스 | 예, 조건이 충족되는 경우 |
양수 연산자(Equals, StartsWith, EndsWith, Contains, In)와 extensionAttributes1-15를 포함한 특성 사용을 포함하는 포함/제외 모드 | Intune에서 관리하지 않는 등록된 디바이스 | 예, 조건이 충족되는 경우. extensionAttributes1-15를 사용할 때는 디바이스가 규정을 준수하거나 Microsoft Entra 하이브리드에 조인된 경우 정책이 적용됩니다. |
음수 연산자(NotEquals, NotStartsWith, NotEndsWith, NotContains, NotIn)와 모든 특성 사용을 포함하는 포함/제외 모드 | 등록되지 않은 디바이스 | 예 |
음수 연산자(NotEquals, NotStartsWith, NotEndsWith, NotContains, NotIn)와 extensionAttributes1-15를 제외한 모든 특성 사용을 포함하는 포함/제외 모드 | 등록된 디바이스 | 예, 조건이 충족되는 경우 |
음수 연산자(NotEquals, NotStartsWith, NotEndsWith, NotContains, NotIn)와 extensionAttributes1-15를 포함한 모든 특성 사용을 포함하는 포함/제외 모드 | Intune에서 관리하는 등록된 디바이스 | 예, 조건이 충족되는 경우 |
음수 연산자(NotEquals, NotStartsWith, NotEndsWith, NotContains, NotIn)와 extensionAttributes1-15를 포함한 모든 특성 사용을 포함하는 포함/제외 모드 | Intune에서 관리하지 않는 등록된 디바이스 | 예, 조건이 충족되는 경우. extensionAttributes1-15를 사용할 때는 디바이스가 규정을 준수하거나 Microsoft Entra 하이브리드에 조인된 경우 정책이 적용됩니다. |