Cloud Security

Azure AD - 条件付きアクセス デバイスのフィルター 機能の紹介

2021年10月27日

デバイスのフィルター とは? どんな機能?

Azure ADの条件付きアクセスによるアクセス制御の適用条件として、
デバイスが保有している属性情報を利用して、アクセス制御の範囲とするか否かを判定することが可能な機能です。

以前まで[プレビュー]が付いていましたが、外れているので活用したほうが良いと思います。
特に[デバイスの状態]を利用して、Hybrid Azure AD Join状態を判定している方は乗り換えをお勧めします。

 

条件付きアクセスで デバイスのフィルター の設定方法

設定方法を記載していきます。 
本記事下部に私が良く使う[デバイスのフィルター]設定を記載しているので
設定方法に興味がない方または、既に理解している方は、
本章をスクロールでとばしちゃってくださいっ。

  1. Azure Active Directory 管理センター を開き、[Azure Active Directory]をクリックします。
    Azure Active Directory 管理センター を開き、[Azure Active Directory]をクリックします。

  2. 開かれた画面の[セキュリティ]をクリックします。
    [セキュリティ]をクリック

  3. 開かれた画面の[条件付きアクセス]をクリックします。
    [条件付きアクセス]をクリック

  4. 開かれた画面の[+新しいポリシー]をクリックします。
    [+新しいポリシー]をクリック

  5. 条件付きアクセス ポリシー 画面が開くので、[条件]欄の[0個の条件が選択されました]をクリックします。
    [条件]欄の[0個の条件が選択されました]をクリック

  6. 開かれたメニュー内の[デバイスのフィルター]欄にある[未構成]をクリックします。
    [デバイスのフィルター]欄にある[未構成]をクリック

  7. デバイスのフィルター 設定画面が開くので、[構成]を[はい]にすることでフィルターの条件設定が可能になります。
    [構成]を[はい]にすることでフィルターの条件設定が可能

  8. 設定可能な デバイスのフィルター は以下の通りになります。
    設定可能な デバイスのフィルター1
    設定可能な デバイスのフィルター2

 

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

見て頂くと察しの良い方は気づかれるかもしれませんが・・・
デバイスの状態を判定する機能のため、Intune を利用していることが前提になります。
また、条件付きアクセスの[デバイスのフィルター]を使うためには・・・
Azure AD Premium1が必要になるので結果としてEnterprise Mobility Security [ EMS ]が必要になります。

 

よく使う デバイスのフィルター設定 ご紹介

私が使用する [デバイスのフィルター]設定は、以下のような識別を元にアクセス制御方法を分けたいときに使います。

  • Azure AD Joinしているか否か
  • Azure AD Registeredしているか否か
  • Hybrid Azure AD Joinしているか否か
  •  OSのバージョンがいくつか
  • 準拠済みとしてマークされている端末か否か

デバイスの状態 を利用している方向けのお話し・・・

[デバイスの状態]で確認できる項目は、以下項目があります。
この設定を [デバイスのフィルター]で代替できる設定値を記載します。

デバイスの状態:デバイスは準拠としてマーク済みか否か

 command
isCompliant 次の値に等しい True

 

デバイスの状態:デバイスはHybrid Azure AD Joinをしているか

 command
TrustType 次の値に等しい Hybrid Azure AD joinを使用した

 

社給端末 or 個人端末 (BYOD) かを判定したい方向けのお話し・・・

この判定は、社給端末を以下どちらかの状態になっていることが前提で設定可能となります。

  • Intuneに登録されているデバイスか否か
  • Hybrid Azure AD Joinしている端末か否か

Intuneに登録されているデバイスか否か

 command
TrustType 次の値に等しい Azure AD 参加済み

 

Hybrid Azure AD Joinしている端末か否か

 command
TrustType 次の値に等しい Hybrid Azure AD joinを使用した

 

OSバージョン で判定したい方向けのお話し・・・

社内のセキュリティ上、アップデートをしている端末じゃないとアクセスさせないよ!といった構成をとりたいときに参考にしてください。

注意点として、[10.0.xxxxx]以上といった条件式は作成できません。

 command
OperatingSystemVersion 次の値に等しい 10.0.xxxxx.xxxx

 

Windows OS バージョン番号 について

  • Windows 11:10.0.22000
  • Windows 10 21H1:10.0.19043
  • Windows 10 20H2:10.0.19042
  • Windows 7:6.1
  • Windows 8:6.2

 

デバイスのフィルター で利用可能な デバイスの属性 について

MicrosoftのDoCでも公開されていますが、以下のような構成が可能になっています。

デバイス属性 演算子 実装例
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”)
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、MacOS)
(device.operatingSystem -eq “Windows”)
operatingSystemVersion Equals、NotEquals、StartsWith、NotStartsWith、EndsWith、NotEndsWith、Contains、NotContains、In、NotIn 有効なオペレーティング システムのバージョン (device.operatingSystemVersion -in [“10.0.18363”, “10.0.19041”, “10.0.19042”])
physicalIds Contains、NotContains Windows オートパイロット デバイスにはすべて、デバイスの physicalIds プロパティに ZTDId (インポートされたすべての Windows オートパイロット デバイスに割り当てられた一意の値) が格納されています。 (device.devicePhysicalIDs -contains "[ZTDId]")
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 -notIn ‘ServerAD, Workplace’)
extensionAttribute1-15 Equals、NotEquals、StartsWith、NotStartsWith、EndsWith、NotEndsWith、Contains、NotContains、In、NotIn extensionAttributes1-15 は、お客様がデバイス オブジェクトに使用できる属性です。 お客様は、extensionAttributes1 から 15 のいずれかをカスタム値で更新し、条件付きアクセスのデバイスのフィルター条件でそれらを使用できます。 任意の文字列値を使用できます。 (device.extensionAttribute1 -eq ‘SAW’)

 

さいごに・・・

デバイスの状況を確認して柔軟なアクセス制御を実装したい場合、
今までは断念するしかない状況がありましたが、
デバイスの情報を正しく理解し制御することで、より柔軟なアクセス制御が可能となりました。

自分
ぜひ、みなさま この機能を試してみてくださいねっ

-Cloud Security