> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Blueprintsでの条件付きロジックの使用

> Iru Endpoint Blueprintsで条件付きロジックを使用し、OSバージョンやモデルタイプなどのデバイス属性に基づいてLibrary Itemsを動的に割り当てます。

<Callout icon="earth-americas" color="#B84A7A" iconType="regular">このガイドはすべてのデバイスプラットフォームに適用されます</Callout>

### Blueprintsでの条件付きロジックについて

条件付きロジックを使用すると、if/else文と条件ブロックを使って展開戦略を作成できます。デバイスの属性、ユーザー情報、その他の条件に基づいて、異なる構成、アプリ、設定を展開できます。

<Callout icon="triangle-exclamation" color="#EAB308" iconType="regular">2026年4月1日をもって、従来のClassic BlueprintsはすべてAssignment Mapsに自動的に変換されました。Assignment Mapsは、Blueprintsのデフォルトかつ改良されたバージョンです。</Callout>

### 仕組み

条件付きロジックはシンプルな前提に基づいて動作します。**条件が真であればこれらの設定を適用し、そうでなければ(else)別の設定を適用します。** システムは条件を順番に評価し、最初に一致したものが採用され、そのブロック内の以降の条件はチェックされません。これは無限キャンバス上のビジュアルインターフェイスを使って構築します。

### 条件ブロック: 構造と機能

**条件ブロックとは**

条件ブロックは、Assignment Mapsにおける意思決定の構成要素です。各ブロックには、デバイスやユーザーの属性に基づいてどの構成を適用するかを決定する一連のif/else条件が含まれます。

**評価の流れ:** デバイスがチェックインすると、システムは条件を表示されている順序で評価します。いずれかの条件が真と評価されると、その構成が適用され、システムは次の条件ブロックに進みます。現在のブロック内の残りの条件はスキップされます。

**条件ブロックの構成要素**

* **If/Else条件:** 類似した条件をグループ化し、順番に評価されます。最初に一致した条件が適用されます。別の条件を個別に評価する必要がある場合は、その条件を独自の条件ブロックに移動します。例(部署ベースのロジックを含む)については、[一般的なAssignment Mapの条件の例](#examples-of-common-assignment-map-conditions)を参照してください。

* **割り当てノード:** 各ブロック内の論理条件(Assignment Rules)です。満たす必要がある条件を定義し、デバイスの属性(モデル、OSバージョン、シリアル番号)やユーザーの属性(部署、場所、役割)を参照できます。複数の条件をAND/OR演算子で組み合わせられます。

* **ルートライン:** すべての条件ブロックをメインフローに接続し、Assignment Map内に行き止まりができないようにします。

**サポートされている入力、演算子、値**

Assignment Mapの条件付きロジックは、次の入力、プラットフォーム、演算子、値をサポートしています。

| 入力 | プラットフォーム | 演算子 | 値の例 |
| - | - | - | - |
| **デバイスの条件** | | | |
| Device family | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is one of` `is not one of` | Mac, iPhone, iPad, Apple TV, Vision, Windows, Android |
| Enrollment type | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` | Automated Device Enrollment, Manual Device Enrollment |
| Chip type | <Icon icon="apple" size={14} /> | `is` | Apple Silicon, Intel |
| FileVault | <Icon icon="apple" size={14} /> | `is` | On, Off |
| Supervision status | <Icon icon="apple" size={14} /> | `is` | Supervised, Not Supervised |
| Mac family | <Icon icon="apple" size={14} /> | `is one of` `is not one of` | iMac, iMac Pro, Mac Pro, MacBook, MacBook Pro, MacBook Air, Mac mini, Mac Studio |
| Asset tag | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is one of` `is not one of` `contains` `does not contain` `contains one of` `does not contain one of` | Honolulu, 123987, DEN-123845-MBP |
| Serial number | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is one of` `is not one of` `contains` `does not contain` `contains one of` `does not contain one of` | QCM2XXXXXX |
| OS version | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is greater than` `is less than` `is greater than or equal to` `is less than or equal to` `is between` | 14, 14.1, 16.2.2 |
| Tags | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `are exactly` `are not exactly` `contain one of` `does not contain one of` | Test, Pilot, Production |
| Apple Beta Enrollment | <Icon icon="apple" size={14} /> | `is` `is not` `is one of` `is not one of` `is any` `is not any` | ベータが構成されているOSバージョン(例: シードトークンが設定されたmacOSまたはiOSのバージョン) |
| <span style={{whiteSpace:'nowrap'}}>**ユーザーディレクトリの条件**</span> | | | |
| User department | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is one of` `is not one of` `contains` `does not contain` `contains one of` `does not contain one of` | Product |
| User email | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is one of` `is not one of` `contains` `does not contain` `contains one of` `does not contain one of` | [admin@accuhive.io](mailto:admin@accuhive.io) |
| User username | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is one of` `is not one of` `contains` `does not contain` `contains one of` `does not contain one of` | jsmith |
| User job title | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is` `is not` `is one of` `is not one of` `contains` `does not contain` `contains one of` `does not contain one of` | Product Engineer |
| User group | <Icon icon="apple" size={14} /> <Icon icon="microsoft" size={14} /> <Icon icon="android" size={14} /> | `is one of` `is not one of` | database-admins |

**プラットフォーム固有の属性と共通の属性**

<Note>
  上の表の一部の属性は、Appleデバイスに固有のものです(Chip type、FileVault、Supervision status、Mac family、Apple Beta Enrollment)。Device familyはすべてのプラットフォームに適用され、Mac、iPhone、iPad、Apple TV、Vision、Windows、Androidを対象にできます。
</Note>

Assignment Mapsは、すべてのデバイスプラットフォーム(Apple、Windows、Android)で機能します。すべてのプラットフォームで機能する共通の属性には、Enrollment Type、Device family、[Tags](/ja/endpoint/devices/device-record-management/tags-for-devices)、Asset Tag、Serial Number、OS version、User email、User Group、User Job Title、User Departmentがあります。これらの共通の属性を使用して、Assignment MapsでWindowsデバイスとAndroidデバイス向けの条件付きロジックを作成できます。

### 条件付きロジックの作成と構成

<Note>
  BlueprintのAssignment Mapを編集すると、すべてのルールが直ちに再評価されます。
</Note>

**Assignment Mapsへの条件付きロジックの追加**

<Steps>
  <Step title="最初の条件付きロジックを追加する">
    既存の条件付きロジックがない新規またはシンプルなAssignment Mapsの場合は、Assignment Mapの編集中に\*\*+ Add conditional logic\*\*ボタンを選択します。
  </Step>

  <Step title="追加の条件ブロックを追加する">
    既存の条件付きロジックがあるAssignment Mapsの場合は、\*\*+\*\*ボタンを選択して、キャンバス内に新しい条件ブロックを追加します。
  </Step>

  <Step title="Assignment Rulesを構成する">
    条件ブロックを追加したら、各条件に適用するAssignment Rulesを構成する必要があります。
  </Step>

  <Step title="If条件を編集する">
    条件ブロック内の**鉛筆アイコン**を選択して、**If**条件に適用するAssignment Rulesを構成します。
  </Step>

  <Step title="Library Itemsを追加する">
    条件ブロックのIf、Else、Elseif文で定義した条件に適用するLibrary Itemsを引き続き追加します。
  </Step>

  <Step title="さらに条件ブロックを追加する">
    各割り当てノードの+ボタンを使用して、任意の数の条件ブロックを引き続き追加・構成できます。
  </Step>
</Steps>

**Assignment Rulesの構成**

Assignment Rulesは、条件が真と評価されるために満たす必要がある具体的な条件を定義します。これらのルールは、さまざまな属性に基づいて設定できます。

* デバイスの属性(モデル、OSバージョン、シリアル番号)
* ユーザーの属性(部署、場所、役割)

Assignment Rulesを構成する際は、AND/OR演算子を使って複数の条件を組み合わせることができます。たとえば、Appleデバイス向けに「MacBook ProデバイスAND macOS Sonomaを実行中AND Marketing部署」、Windowsコンピュータ向けに「OSバージョンが11.0以上AND User DepartmentにEngineeringを含む」、Androidデバイス向けに「User GroupがSalesのいずれかAND TagsにProductionを含む」を対象とするルールを作成できます。

条件ブロック内に追加の経路を追加するには、**+**ボタンを選択して**else if**条件を追加し、その経路のAssignment Rulesを構成します。これにより、1つの条件ブロック内に、それぞれ独自の構成を持つ複数の分岐を作成できます。

### Examples of Common Assignment Map Conditions

**部署ベースのソフトウェア展開**

```javascript Software Deployment lines theme={null}
Conditional Block: Software Deployment

if (Department equals "Marketing")
  - Install Adobe Creative Cloud
  - Install Figma
  - Install Slack

else if (Department equals "Engineering")
  - Install Visual Studio Code
  - Install GitHub Desktop
  - Install Docker

else if (Department equals "Finance")
  - Install QuickBooks
  - Install Excel Add-ins
  - Install Financial Reporting Tools

else
  - Install Basic Office Suite
```

デバイスはユーザーの部署に照らして評価されます。最初に一致した条件が採用され、適切なソフトウェアがインストールされます。

**場所と役割に基づくセキュリティ構成**

```javascript Security Configurations lines theme={null}
Conditional Block: Security Configurations

if (User Group equals "Remote" AND Role contains "Executive")
  - Apply Strict VPN Configuration
  - Enable Enhanced Security Monitoring
  - Require Biometric Authentication

else if (Location equals "Remote")
  - Apply Standard VPN Configuration
  - Enable Basic Security Monitoring

else if (Location equals "Office" AND Role contains "Executive")
  - Enable Enhanced Security Monitoring
  - Require Biometric Authentication

else
  - Apply Standard Security Configuration
```

この構成では、ユーザーがリモートかオフィス勤務かに基づいて異なるセキュリティ設定を適用し、役員の役割にはより厳しい要件を重ねて適用します。

**OSバージョンに基づく構成**

```javascript OS-Specific Configurations lines theme={null}
Conditional Block: OS-Specific Configurations

if (OS Version is greater than or equal to "15.0")
  - Apply macOS Sequoia Optimizations
  - Install Sequoia-Compatible Apps

else if (OS Version is greater than or equal to "14.0")
  - Apply macOS Sonoma Optimizations
  - Install Sonoma-Compatible Apps

else
  - Apply Legacy OS Configurations
  - Schedule OS Update Notification
```

デバイスは、現在のOSバージョンと互換性のある構成とアプリのみを受け取ります。

### デバイスの手動除外

Assignment Map内のLibrary Itemからデバイスを除外したい場合は、デバイスの手動除外を使用できます。

<Steps>
  <Step title="Library Itemを選択する">
    Assignment Mapの編集中に、デバイスを除外したいLibrary Itemを選択します。
  </Step>

  <Step title="手動除外を展開する">
    **Manual device exclusions**セクションを展開します。
  </Step>

  <Step title="デバイスを追加する">
    **+ Add device**を選択します。
  </Step>

  <Step title="デバイスを検索する">
    デバイス名、シリアル番号、資産タグ、ユーザー名、またはメールアドレスで検索します。
  </Step>

  <Step title="デバイスを選択する">
    Library Itemから除外するデバイスを選択します。
  </Step>

  <Step title="追加のデバイスを追加する">
    さらにデバイスを除外したい場合は、**+ Add device button**を選択します。
  </Step>

  <Step title="デバイスを削除する">
    特定のデバイスの横にある**X**を選択すると、そのデバイスが除外リストから削除されます。
  </Step>

  <Step title="すべての除外をクリアする">
    **Clear all**を選択すると、デバイス除外リストからすべてのデバイスが削除されます。
  </Step>

  <Step title="変更を保存する">
    すべての変更が完了したら、**保存**を選択します。
  </Step>
</Steps>

### 検索とデバイス検索の使用

Assignment Mapの左上付近にある検索フィールドでは、Library Itemsやルールを検索したり、デバイスやユーザーを検索したりできます。

**検索**

特定のLibrary Itemまたはルールを入力すると、Assignment Map上でその項目が検出され、ハイライト表示されます。マップ上に多数の項目があり、目的の項目を見つけにくい場合に便利です。

<Steps>
  <Step title="検索語を入力する">
    検索フィールドにLibrary Itemの名前を入力し、**Jump to**を選択します。
  </Step>

  <Step title="ハイライトされた項目を表示する">
    選択したLibrary ItemがAssignment Map上でハイライト表示されます。
  </Step>

  <Step title="検索をクリアする">
    検索フィールドの**x**を選択すると、Library Itemのハイライト表示が解除されます。
  </Step>
</Steps>

**デバイスとユーザーの検索**

デバイスを検索すると、マップのロジック内でそのデバイスがたどる経路を確認できます。これはロジックのトラブルシューティングや、デバイスの経路に期待どおりのLibrary Itemsがすべて含まれていることを確認するのに役立ちます。ユーザーで検索する場合は、そのユーザーに割り当てられている任意のデバイスを選択できます。

<Steps>
  <Step title="デバイスレコードからアクセスする">
    デバイスレコードを表示しているときに、Blueprint名の横にある虫眼鏡を選択すると、Assignment Map上でデバイスを検索できます。
  </Step>

  <Step title="Assignment Mapから検索する">
    Assignment Mapを表示しているときに、シリアル番号、デバイス名、デバイスに割り当てられているユーザーなど、任意のデバイスの詳細を入力できます。
  </Step>

  <Step title="デバイスの経路を表示する">
    デバイスを選択すると、そのデバイスに割り当てられるLibrary Itemsがハイライト表示されます。

    <Note>
      Automated Device EnrollmentのLibrary Itemが常にグレー表示になるのは想定どおりの動作です。この項目は条件付きロジックで評価されず、対象となるデバイスに常に適用されます。Automated Device Enrollmentの割り当て状況は、左側のナビゲーションの**登録**セクションで確認できます。
    </Note>

    <Note>
      LiftoffはAssignment Rulesをサポートしていません。そのBlueprintでLiftoffを使用するには、Assignment Mapの先頭にある**All Devices**ノードに配置してください。Blueprintごとに割り当てられるLiftoff Library Itemは引き続き1つだけです。詳細については、[Liftoff Library Itemの構成](/ja/endpoint/library/library-items-profiles/configure-the-liftoff-library-item)を参照してください。
    </Note>
  </Step>

  <Step title="デバイス検索を終了する">
    **Exit device lookup**を選択すると、デフォルトのAssignment Mapビューに戻ります。
  </Step>
</Steps>

### 条件付きロジックを使用する際のベストプラクティス

**ロジックを整理する**

* 条件ブロックを目的別にグループ化します(例: 部署ベースの条件をまとめる、場所ベースの条件をまとめる)。
* ブロックにわかりやすい名前を付け、フローを追いやすいようにキャンバス上で論理的に配置します。

**条件付きロジックをテストする**

* 本番環境に展開する前に、デバイスまたはユーザーの検索機能を使用して、デバイスがマップ内でたどる経路を確認します。これにより、ユーザーに影響が及ぶ前に問題を発見できます。
* Assignment Mapを編集すると、すべてのルールが直ちに再評価されます。これはテストには便利ですが、本番環境のマップを変更する際は注意してください。

**機能する最もシンプルなロジックを使用する**

* 要件を満たす最もシンプルな方法を優先します。複雑なロジックは保守やトラブルシューティングが難しくなります。
* 非常に複雑なロジックの場合は、複数のAssignment Mapsに分割して、それぞれをわかりやすく保つことを検討してください。

**Assignment Mapsを文書化する**

* 特に多数の条件ブロックがある場合は、マップの目的とロジックを文書化します。これにより、ITチーム全体が展開戦略を理解しやすくなります。

### 考慮事項

**Advanced View**では、Assignment Rulesへの条件の入力方法によって、デバイスやユーザーが一致するかどうかが変わります。**User group**、**Mac family**、**User job title**、**User department**を構成する際は、次の点に留意してください。

<CardGroup cols={2}>
  <Card title="複数の値はORを使用" icon="code-branch">
    **User group**、**Mac family**、**User job title**、**User department**では、条件に追加した各値は**OR**ロジックで結合されます。デバイスまたはユーザーがいずれか1つの値に一致すれば、その条件は真と評価されます。

    たとえば、**User group**が**is one of**で**Finance users**と**Engineer users**が指定されている場合、どちらかのグループに属するユーザーはルールを満たします。
  </Card>

  <Card title="User groupのオートコンプリート" icon="users">
    **User group**では、Iruが既に認識しているグループのオートコンプリートが利用できます。入力中に候補のグループを選択すると、名前をディレクトリと一致させ、入力ミスを防ぐことができます。
  </Card>

  <Card title="役職と部署" icon="briefcase">
    **User job title**と**User department**にはオートコンプリートがありません。ディレクトリや人事記録での属性の表記と一致するように、各値を完全に入力してください。
  </Card>

  <Card title="チップと貼り付けたリスト" icon="paste">
    複数の**user job titles**、**user departments**、**serial numbers**、**asset tags**を追加するには、各値の後に**Enter**キーを押します。現在の入力がチップになり、さらに値を追加できます。

    改行区切りのリストをフィールドに貼り付けることもできます。各行がそれぞれのチップになります。
  </Card>
</CardGroup>

### 関連記事

<CardGroup cols={3}>
  <Card title="デバイスのタグ" icon="tag" href="/ja/endpoint/devices/device-record-management/tags-for-devices">
    タグを使用してデバイスを整理・グループ化します
  </Card>

  <Card title="Blueprintの作成" icon="box" href="/ja/endpoint/blueprints/assignment-maps/creating-a-blueprint">
    Assignment Mapsを使用してBlueprintを作成します
  </Card>

  <Card title="Blueprintsの構成" icon="cog" href="/ja/endpoint/getting-started/blueprints-and-library/configuring-blueprints">
    ポリシー管理のためにデバイスのBlueprintsを作成・構成します
  </Card>

  <Card title="Blueprintルーティング" icon="route" href="/ja/endpoint/enrollment/blueprint-routing">
    Assignment Rulesを使用して、デバイス登録時の動的なBlueprint割り当てを構成します
  </Card>
</CardGroup>
