条件付きアクセス: デバイスのフィルター

条件付きアクセス ポリシーを作成する際、管理者は、環境内の特定のデバイスを対象または対象外とする機能を求めています。 デバイスのフィルター条件が用意されたことで、管理者はこれを実現できます。 デバイスのフィルターでサポートされている演算子とプロパティ、そして、条件付きアクセスポリシーで使用可能なその他の割り当て条件を使用して、特定のデバイスを対象にすることができるようになりました。

条件付きアクセス ポリシーで、デバイスのフィルター条件を作成する

一般的なシナリオ

組織がデバイスのフィルター条件を使用して有効にできるようになったシナリオは複数あります。 この新しい条件を使用する方法の例を、次のシナリオで示します。

  • 特権リソースへのアクセスを制限します。 この例では、特権ロールが割り当てられ、多要素認証を満たしており、特権またはセキュリティで保護された管理ワークステーションであり、準拠していることが証明されているデバイスからのアクセスを許可したユーザーから Microsoft Azure Service Management API へのアクセスを許可するとします。 このシナリオでは、組織は次の 2 つの条件付きアクセス ポリシーを作成します。
    • ポリシー 1: 管理者ロールを持つすべてのユーザーが、Microsoft Azure Service Management API クラウド アプリにアクセスし、アクセス制御についてアクセス権を付与しますが、多要素認証を要求し、デバイスは準拠としてマーク済みである必要があります。
    • ポリシー 2: 管理者ロールを持つすべてのユーザーが、Microsoft Azure Service Management API クラウド アプリにアクセスし、device.extensionAttribute1 が SAW に等しいというルール式を使用するデバイスのフィルターを除外し、アクセス制御についてブロックします。 Microsoft Entra デバイス オブジェクトで extensionAttributes を更新する方法について説明します。
  • サポートされていないオペレーティング システムを実行しているデバイスから組織のリソースへのアクセスをブロックします。 この例では、Windows 10 より前の Windows OS バージョンからリソースへのアクセスをブロックするとします。 このシナリオでは、組織は次の条件付きアクセス ポリシーを作成します。
    • すべてのユーザーが、すべてのクラウド アプリにアクセスし、device.operatingSystem が Windows に等しい、かつ、device.operatingSystemVersion が "10.0" で始まるというルール式を使用してデバイスのフィルターを除外し、アクセス制御についてブロックします。
  • 特定のデバイスの特定のアカウントに多要素認証を要求しないでください。 この例では、Teams 電話や Surface Hub デバイスなどの特定のデバイスでサービス アカウントを使用する場合に、多要素認証を要求しないことにします。 このシナリオでは、組織は次の 2 つの条件付きアクセス ポリシーを作成します。
    • ポリシー 1: サービス アカウントを除くすべてのユーザーが、すべてのクラウド アプリにアクセスし、アクセス制御についてアクセス権を付与しますが、多要素認証を要求します。
    • ポリシー 2: ユーザーとグループを選択し、サービス アカウントのみを含むグループを含め、すべてのクラウド アプリにアクセスし、device.extensionAttribute2 が TeamsPhoneDevice に等しくないというルール式を使用して対象外デバイスのフィルターを指定し、アクセス制御についてブロックします。

Note

Microsoft Entra ID では、デバイス認証を使用してデバイス フィルター規則を評価します。 Microsoft Entra ID に未登録のデバイスの場合、デバイスがディレクトリに存在しないため、すべてのデバイス プロパティは null 値と見なされ、デバイス属性を特定できません。 未登録デバイスのポリシーをターゲットにする最善の方法は、構成されたフィルター規則が適用されるため、負の演算子を使用することです。 正の演算子を使用する場合、フィルター ルールは、デバイスがディレクトリに存在し、構成されたルールがデバイスの属性と一致する場合にのみ適用されます。

条件付きアクセス ポリシーを作成する

デバイスのフィルターは、条件付きアクセス ポリシーを作成するときのオプションのコントロールです。

次の手順を利用して、一般的なシナリオの最初のシナリオをサポートする 2 つの条件付きアクセス ポリシーを作成します。

ポリシー 1: 管理者ロールを持つすべてのユーザーが、Microsoft Azure Service Management API クラウド アプリにアクセスし、アクセス制御についてアクセス権を付与しますが、多要素認証を要求し、デバイスは準拠としてマーク済みである必要があります。

  1. 条件付きアクセス管理者以上として Microsoft Entra 管理センターにサインインします。
  2. 保護>条件付きアクセス を参照します。
  3. [新しいポリシーの作成] を選択します。
  4. ポリシーに名前を付けます。 ポリシーの名前に対する意味のある標準を組織で作成することをお勧めします。
  5. [割り当て] で、 [ユーザーまたはワークロード ID] を選択します。
    1. [Include] (含める) で、[ディレクトリ ロール] を選択し、名前に管理者を持つすべてのロールを選択します。

      警告

      条件付きアクセス ポリシーでは、組み込みロールがサポートされています。 条件付きアクセス ポリシーは、管理単位スコープカスタム ロールなど、その他の種類のロールには適用されません。

    2. [除外] で、 [ユーザーとグループ] を選択し、組織の緊急アクセス用または非常用アカウントを選択します。

    3. 完了 を選択します。

  6. [ターゲット リソース]>[クラウド アプリ]>[含む]>[アプリの選択] の下の Windows Azure Service Management API を選択し、[選択] を選択します。
  7. [アクセス制御]>[許可][アクセス権の付与][多要素認証を要求する][デバイスは準拠しているとしてマーク済みであることが必要] を選択して、[選択] を選択します。
  8. 設定を確認し、 [Enable policy](ポリシーの有効化)[オン] に設定します。
  9. [作成] を選択して、ポリシーを作成および有効化します。

ポリシー 2: 管理者ロールを持つすべてのユーザーが、Microsoft Azure Service Management API クラウド アプリにアクセスし、device.extensionAttribute1 が SAW に等しいというルール式を使用するデバイスのフィルターを除外し、アクセス制御についてブロックします。

  1. [新しいポリシーの作成] を選択します。
  2. ポリシーに名前を付けます。 ポリシーの名前に対する意味のある標準を組織で作成することをお勧めします。
  3. [割り当て] で、 [ユーザーまたはワークロード ID] を選択します。
    1. [Include] (含める) で、[ディレクトリ ロール] を選択し、管理者名のあるすべてのロールを選択します。

      警告

      条件付きアクセス ポリシーでは、組み込みロールがサポートされています。 条件付きアクセス ポリシーは、管理単位スコープカスタム ロールなど、その他の種類のロールには適用されません。

    2. [除外] で、 [ユーザーとグループ] を選択し、組織の緊急アクセス用または非常用アカウントを選択します。

    3. 完了 を選択します。

  4. [ターゲット リソース]>[クラウド アプリ]>[含む]>[アプリの選択] の下の Windows Azure Service Management API を選択し、[選択] を選択します。
  5. [ 条件] で、 デバイスをフィルター処理します。
    1. [構成][はい] に切り替えます。
    2. [Devices matching the rule](ルールに一致するデバイス)[Exclude filtered devices from policy](フィルター選択されたデバイスをポリシーから除外する) に設定します。
    3. プロパティを ExtensionAttribute1、演算子を Equals、値を SAW に設定します。
    4. [Done] を選択します。
  6. [アクセス制御]>[許可] で、 [アクセスのブロック][選択] の順に選択します。
  7. 設定を確認し、 [Enable policy](ポリシーの有効化)[オン] に設定します。
  8. [作成] を選択して、ポリシーを作成および有効化します。

警告

準拠しているデバイスが要求されている場合には、デバイスの準拠が強制されていなくても、ポリシーの評価中に Mac、iOS、および Android のユーザーに対してポリシー評価中にデバイス証明書の選択が求められる場合があります。 これらのプロンプトの表示は、デバイスが準拠状態になるまで繰り返される場合があります。

属性値の設定

拡張属性の設定は、Graph API によって実現されています。 デバイス属性の設定の詳細については、「デバイスの更新」という記事を参照してください。

デバイスのフィルター Graph API

デバイスのフィルター API は、Microsoft Graph v1.0 のエンドポイントで使用できます。また、エンドポイント https://graph.microsoft.com/v1.0/identity/conditionalaccess/policies/ を使用してアクセスできます。 新しい条件付きアクセス ポリシーを作成するときにデバイスのフィルターを構成するか、既存のポリシーを更新してデバイスのフィルター条件を構成できます。 既存のポリシーを更新するには、既存のポリシーのポリシー ID を追加し、次の要求本文を実行して、Microsoft Graph v 1.0 のエンドポイントでパッチ呼び出しを実行します。 次の例は、SAW デバイスとしてマークされていないデバイスを対象外とするデバイスのフィルター条件を構成する方法を示しています。 ルール構文は、複数の単一式で構成できます。 構文の詳細については、「Microsoft Entra ID の動的グループ メンバーシップ ルール」を参照してください。

{
    "conditions": {
        "devices": {
            "deviceFilter": {
                "mode": "exclude",
                "rule": "device.extensionAttribute1 -ne \"SAW\""
            }
        }
    }
}

フィルターでサポートされている演算子とデバイスのプロパティ

次のデバイス属性は、条件付きアクセスのデバイスのフィルター条件で使用できます。

Note

Microsoft Entra ID では、デバイス認証を使用してデバイス フィルター規則を評価します。 Microsoft Entra ID に未登録のデバイスの場合、デバイスがディレクトリに存在しないため、すべてのデバイス プロパティは null 値と見なされ、デバイス属性を特定できません。 未登録デバイスのポリシーをターゲットにする最善の方法は、構成されたフィルター規則が適用されるため、負の演算子を使用することです。 正の演算子を使用する場合、フィルター ルールは、デバイスがディレクトリに存在し、構成されたルールがデバイスの属性と一致する場合にのみ適用されます。

サポートされているデバイス属性 サポートされている演算子 サポート状況の値
deviceId Equals、NotEquals、In、NotIn GUID である有効な deviceId (device.deviceid -eq "498c4de7-1aee-4ded-8d5d-000000000000")
displayName Equals、NotEquals、StartsWith、NotStartsWith、EndsWith、NotEndsWith、Contains、NotContains、In、NotIn 任意の文字列 (device.displayName -contains "ABC")
deviceOwnership Equals、NotEquals サポートされる値は、"Personal" (個人所有デバイスの持ち込みの場合) と "Company" (企業所有デバイスの場合) です (device.deviceOwnership -eq "Company")
isCompliant Equals、NotEquals サポートされる値は "True" (準拠デバイスの場合) と "False" (非準拠デバイスの場合) です。 (device.isCompliant -eq "True")
manufacturer Equals、NotEquals、StartsWith、NotStartsWith、EndsWith、NotEndsWith、Contains、NotContains、In、NotIn 任意の文字列 (device.manufacturer -startsWith "Microsoft")
mdmAppId Equals、NotEquals、In、NotIn 有効な MDM アプリケーション ID (device.mdmAppId -in ["0000000a-0000-0000-c000-000000000000"]
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 の場合は 10.0、Windows 11 など) (device.operatingSystemVersion -in ["10.0.18363", "10.0.19041", "10.0.19042", "10.0.22000"])
physicalIds Contains、NotContains たとえば、Windows オートパイロット デバイスにはすべて、デバイスの physicalIds プロパティに ZTDId (インポートされたすべての Windows オートパイロット デバイスに割り当てられた一意の値) が格納されています。 (device.physicalIds -contains "[ZTDId]:value")
profileType Equals、NotEquals デバイスに設定されている有効なプロファイルの種類。 サポートされている値は、RegisteredDevice (既定値)、SecureVM (Microsoft Entra サインインで有効になっている Azure の Windows VM に使用)、プリンター (プリンターに使用)、共有 (共有デバイスに使用)、IoT (IoT デバイスに使用) (device.profileType -eq "Printer")
systemLabels Contains、NotContains システムによってデバイスに適用されているラベルの一覧。 サポートされている値は、AzureResource (Microsoft Entra サインインで有効になっている Azure の Windows VM に使用)、M365Managed (Microsoft マネージド デスクトップを使用して管理されるデバイスに使用)、MultiUser (共有デバイスに使用) など (device.systemLabels - "M365Managed" を含む)
trustType Equals、NotEquals デバイスの有効な登録済み状態。 サポートされている値は、AzureAD (Microsoft Entra 参加デバイスに使用)、ServerAD (Microsoft Entra ハイブリッド参加済みデバイスに使用)、Workplace (Azure AD 登録済みデバイスに使用) (device.trustType -eq "ServerAD")
extensionAttribute1-15 Equals、NotEquals、StartsWith、NotStartsWith、EndsWith、NotEndsWith、Contains、NotContains、In、NotIn extensionAttributes1-15 は、お客様がデバイス オブジェクトに使用できる属性です。 お客様は、extensionAttributes1 から 15 のいずれかをカスタム値で更新し、条件付きアクセスのデバイスのフィルター条件でそれらを使用できます。 任意の文字列値を使用できます。 (device.extensionAttribute1 -eq "SAW")

Note

複雑なルールを構築する場合、またはデバイス ID に deviceid などの個々の識別子を使用しすぎる場合は、「フィルター規則の最大長は 3072 文字です」に注意してください。

Note

Contains および NotContains 演算子は、属性の型によって動作が異なります。 operatingSystemmodel などの文字列属性の場合、Contains 演算子は、指定した部分文字列が属性内に存在するかどうかを示します。 physicalIdssystemLabels などの文字列コレクション属性の場合、Contains 演算子は、指定した文字列がコレクション内のいずれかの文字列全体と一致するかどうかを示します。

警告

条件付きアクセス ポリシーの評価時に 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 ハイブリッドが参加している場合、ポリシーが適用されます

次のステップ