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

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

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

一般的なシナリオ

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

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

注意

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

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

デバイスのフィルターは、Azure portal で条件付きアクセス ポリシーを作成する場合または Microsoft Graph API を使用する場合のオプションです。

重要

デバイス状態とデバイスのフィルターは、条件付きアクセス ポリシーで一緒に使用することはできません。

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

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

  1. Azure portal に、条件付きアクセス管理者、セキュリティ管理者、または全体管理者としてサインインします。
  2. [Azure Active Directory][セキュリティ][条件付きアクセス] の順に移動します。
  3. [新しいポリシー] を選択します。
  4. ポリシーに名前を付けます。 ポリシーの名前に対する意味のある標準を組織で作成することをお勧めします。
  5. [割り当て] で、 [ユーザーまたはワークロード ID] を選択します。
    1. [対象] で、[ディレクトリ ロール] を選択し、[グローバル管理者] を選択します。

      警告

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

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

    3. [Done] を選択します。

  6. [Cloud apps or actions](クラウド アプリまたはアクション)>[対象] で、 [アプリを選択] を選択し、 [Microsoft Azure Management] を選択します。
  7. [アクセス制御]>[許可][アクセス権の付与][多要素認証を要求する][デバイスは準拠としてマーク済みである必要があります] を選択して、 [選択] を選択します。
  8. 設定を確認し、 [Enable policy](ポリシーの有効化)[オン] に設定します。
  9. [作成] を選択して、ポリシーを作成および有効化します。

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

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

      警告

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

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

    3. [Done] を選択します。

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

属性値の設定

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

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

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

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

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

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

注意

Azure AD では、デバイス認証を使用してデバイス フィルター規則を評価します。 Azure AD に未登録のデバイスの場合、デバイスがディレクトリに存在しないため、すべてのデバイス プロパティは 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.devicePhysicalIDs -contains "[ZTDId]:value")
profileType Equals、NotEquals デバイスに設定されている有効なプロファイルの種類。 サポートされている値は、RegisteredDevice (既定値)、SecureVM (Azure AD サインインで有効になっている Azure の Windows VM に使用)、プリンター (プリンターに使用)、共有 (共有デバイスに使用)、IoT (IoT デバイスに使用) (device.profileType -notIn ["Printer", "Shared", "IoT"]
systemLabels Contains、NotContains システムによってデバイスに適用されているラベルの一覧。 サポートされている値は、AzureResource (Azure AD サインインで有効になっている Azure の Windows VM に使用)、M365Managed (Microsoft マネージド デスクトップを使用して管理されるデバイスに使用)、MultiUser (共有デバイスに使用) など (device.systemLabels - "M365Managed" を含む)
trustType Equals、NotEquals デバイスの有効な登録済み状態。 サポートされている値は、AzureAD (Azure AD 参加デバイスに使用)、ServerAD (Hybrid Azure AD 参加済みデバイスに使用)、Workplace (Azure AD 登録済みデバイスに使用) (device.trustType -ne 'Workplace')
extensionAttribute1-15 Equals、NotEquals、StartsWith、NotStartsWith、EndsWith、NotEndsWith、Contains、NotContains、In、NotIn extensionAttributes1-15 は、お客様がデバイス オブジェクトに使用できる属性です。 お客様は、extensionAttributes1 から 15 のいずれかをカスタム値で更新し、条件付きアクセスのデバイスのフィルター条件でそれらを使用できます。 任意の文字列値を使用できます。 (device.extensionAttribute1 -eq 'SAW')

注意

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

デバイスのフィルターを使用したポリシーの動作

条件付きアクセスのデバイスのフィルター条件では、Azure AD の登録済みデバイスのデバイス属性に基づいてポリシーが評価されるため、どのような状況でポリシーが適用されるのか、または適用されないのかを理解することが重要です。 次の表は、デバイスのフィルター条件が構成されている場合の動作を示しています。

デバイスのフィルター条件 デバイスの登録状態 デバイス フィルターの適用
対象/対象外モードで正の演算子 (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 が使用されている場合、デバイスが準拠しているか、Hybrid Azure AD が参加している場合、ポリシーが適用されます
対象/対象外モードで負の演算子 (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 が使用されている場合、デバイスが準拠しているか、Hybrid Azure AD が参加している場合、ポリシーが適用されます

次のステップ