AI Governance: Jamf Extender でカバレッジを拡張する
AI Governance とは?
AI Governance は、「AI を許可した」という状態と「フリート全体で正しく構成されていることを証明できる」という状態の間のギャップを埋めます。 Jamf for Mac を通じて提供され、IT とセキュリティのチームに統合された 2 つの機能を提供します。AI Visibility は、どの AI ツールが実行されているか、それらが何をしているか、何に接続しているかをほぼリアルタイムに把握するインベントリを提供します。AI Policies は、各 AI ツールのエンタープライズ制御を分かりやすい選択肢に変換し、OS で適用される管理設定として配信します。この 2 つが組み合わさることで、監査担当者やリーダーが尋ねる 3 つの問い、つまり「何が実行されているか」「正しく構成されているか」「それを証明できるか」に答えます。
Jamf Extender が追加する機能
Windows ポリシーのエクスポート: AI ガバナンスポリシーを、任意の MDM または UEM ソリューションにアップロードできるすぐにデプロイ可能なバンドルとしてダウンロードできます。macOS やモバイルのフリートと並行して、Windows エンドポイントでも AI ツールの構成を簡単に適用できます。
リアルタイムのブロック状況の可視化: デプロイ前に、どの AI ツールがすでにブロックされているかをひと目で確認できます。緑のステータスインジケーターが現在のカバレッジを示し、不要な作業を回避し、適用状況を即座に把握できます。
合理化されたデプロイワークフロー: Custom Prevent Lists(エンドポイント制御)とドメインブロック(ネットワーク制御)を、AI Visibility ダッシュボードから Jamf のセキュリティツールに直接デプロイできます。ポータル間の切り替えや手動でのリスト作成は不要です。
自動重複検出: この拡張機能はすでにブロックされている署名 ID やドメインをインテリジェントにスキップし、クリーンなデプロイサマリーを提供して、不要な重複エントリを防ぎます。
ポータル間オーケストレーション: Jamf Extender は、Jamf Extender の Portal Group 構成に基づいてデプロイを正しい Jamf Cloud ポータルに自動的にルーティングし、手動での検索や構成ミスを排除します。
目次
最も恩恵を受けるユーザー:
複数の環境(本番、ステージング、開発)を管理している組織や、AI ガバナンスポリシーを頻繁に調整する組織は、その可視性とデプロイ速度を高く評価するでしょう。Jamf のセキュリティツール全体で適用状況をリアルタイムに確認したいチームは、統合されたステータスインジケーターが特に役立つと感じるでしょう。
概要
このガイドでは、Jamf Account の AI Governance 全体で Jamf Extender を使用する方法を説明します。Jamf Extender は AI Visibility ダッシュボードに機能を追加し、AI ツールの使用状況を確認したり、環境内で特定された AI ツールに対する追加のエンドポイントおよびネットワークブロックをデプロイしたりできるようにします。また、Jamf Extender は AI Policies ビルダーに直接ダウンロードオプションを追加し、任意のポリシーを Windows エンドポイント向けのすぐにデプロイ可能なバンドルとしてエクスポートし、任意の MDM または UEM にアップロードできるようにします。
達成できること:
- Jamf Account AI Visibility で AI ツールの使用状況を確認
- Custom Prevent Lists(Jamf Protect)と Custom Domain Blocks(Security Cloud)をデプロイ
- AI ガバナンスブロックの検証と管理
- (任意)AI Governance ポリシー構成を Windows エンドポイントにデプロイ
所要時間: デプロイあたり 2~5 分
前提条件
✅ Jamf Extender がインストールおよび構成済み(後述の Jamf Extender のセットアップを参照)
✅ Jamf Pro を Protect および/または Security Cloud にリンクする Portal Groups が構成済み
✅ 以下への管理者アクセス:
- Jamf Account AI Governance
- Jamf Protect インスタンス(Custom Prevent Lists の書き込み権限付き)
- Jamf Security Cloud インスタンス(ドメインブロックには任意)
Jamf Extender のセットアップ
概要
このガイドでは、インストール後の Jamf Extender のセットアップ手順を説明します。API 認証情報の構成や、Portal Groups を使用した Jamf システム同士のリンクなどが含まれます。
達成できること:
- Jamf Pro、Jamf Protect、Jamf Security Cloud の API 認証情報を構成
- Portal Groups を使用してこれらのシステムをリンク
- プラットフォーム間のデバイス検索とデプロイを有効化
所要時間: 初期セットアップに 5~10 分
セットアップの前提条件
✅ ブラウザ(Chrome、Safari、Edge、または Firefox)に Jamf Extender がインストール済み
✅ 以下への管理者アクセス:
- Jamf Pro インスタンス
- Jamf Protect インスタンス
- Jamf Security Cloud インスタンス
✅ 必要な権限:
- Jamf Pro: API ロールとクライアントを作成する権限
- Jamf Protect: Custom Prevent Lists を作成するための管理者ロール(読み取り専用ではない)。このロールは Prevent Lists の書き込みのみに限定できます。
- Jamf Security Cloud: 管理者の認証情報
パート A: 初期拡張機能のセットアップ
Jamf Extender をインストールすると、以下が表示されます。
- ブラウザツールバー: Jamf Extender アイコン(クリックしてポップアップを開く)
- Jamf Pro のページ: Jamf ロゴの隣にステータスピルが表示される
- Jamf Pro のサイドバー: 「Resource Center」の上に「Jamf Extender」ボタンが表示される
初期ステータス: 認証情報をセットアップするまで、ステータスピルには**黄色の「Configure Extension」**が表示されます。
パート B: Jamf Pro 認証情報の構成
Quick Setup(推奨) または Manual Setup の 2 つのオプションがあります。
自動セットアップ(推奨)
自動セットアップは、正しい権限を持つ API ロールとクライアントを作成します。
- Jamf Pro インスタンスに移動してログインします
- Settings の下にある左側メニューの Jamf Extender をクリックします
- Configuration セクションで 「Set Up Automatically」をクリックします
- 確認を待ちます(通常 5~10 秒)
- Web ページを更新します
- 完了! ステータスピルが**緑色の「Extension Active」**に変わります
自動セットアップが行うこと:
- 「Jamf Extender」という名前の API ロールを作成
- 必要なすべての読み取り権限を付与(computers、policies、profiles、groups など)
- Categories と Packages の書き込み権限を付与(未使用のものは削除)
- そのロールに割り当てられた API クライアントを作成
- 認証情報を安全に保存(Jamf Extender アプリがインストールされた Mac では macOS Keychain、それ以外ではブラウザストレージ)
Quick Setup のトラブルシューティング:
- ❌ 「Failed to create API client」→ Jamf Pro ユーザーに API ロール/クライアントを作成する権限があるか確認してください
- ❌ 「Network error」→ Jamf Pro にログインしており、ページが完全に読み込まれていることを確認してください
パート C: Jamf Protect 認証情報の構成
⚠️ 重要: Custom Prevent Lists をデプロイするには、書き込み可能な Protect API クライアント(読み取り専用ではない)が必要です。
自動セットアップ(推奨)
- Jamf Protect インスタンス(例:
tenant.protect.jamfcloud.com)に移動してログインします - ブラウザツールバーの Jamf Extender アイコンをクリックします
- Configuration の下に、検出されたインスタンスを示す Jamf Protect セクションが表示されます
- (任意)必要に応じて Client Name を変更します
- 「Set Up Automatically」をクリックします
- Client ID と Password をコピーして保存します(一度だけ表示されます)。パスワードマネージャーに保存してください
⚠️ 重要: 自動作成されたクライアントは、デフォルトで読み取り専用の権限を持ちます。AI Visibility のデプロイには書き込みアクセスが必要です。
上記の初期 API クライアントを作成したら:
オプション A: フル管理者権限を付与
- Administrative → API Clients に移動し、新しく作成した API クライアントを選択します
- Edit をクリックし、Roles ドロップダウンメニューで Full Admin ロールを追加します
- (任意)ラベルの X をクリックして Read Only ロールを削除します
オプション B: 適切な書き込み権限を追加
- Administrative → Account → Roles に移動し、+Create Role を選択します
- 新しい API クライアントに名前を付けます(例: Prevent List Creation)
- Write 列の一番上のボックスのチェックを外し、すべての権限の選択を解除します
- Write 列の Prevent Lists のボックスをチェックします
- Administrative → API Clients に移動し、新しく作成した API クライアントを選択します
- Edit をクリックし、Roles ドロップダウンメニューで作成した新しい限定ロールを追加します
- (任意)ラベルの X をクリックして Read Only ロールを削除します
これが行うこと:
- Protect の GraphQL API 経由で API クライアントを作成
- ブラウザセッションからキャプチャした Auth0 JWT を使用
- 認証情報をオリジンごとに保存(例:
protect_creds:https://overview.protect.jamfcloud.com)
パート D: Jamf Security Cloud 認証情報の構成
手動セットアップ
Security Cloud で:
- ドメインから customerId の値をコピーします - 例: https://radar.wandera.com/dashboard?customerId=1a2s3d4f5g6h7j8k9l0
- 左側メニューの Integrations → Risk API に移動します
- Generate API key をクリックします
- API キーに名前を付けます
- Application ID と Secret をコピーして保存します(一度だけ表示されます)。パスワードマネージャーに保存してください
Jamf Extender で
- Jamf Extender ツールバーアイコンをクリックします
- Configuration セクション内で Manual セクションを展開します
- Portals の下の最初のドロップダウンで Add new... を選択します
- Type の下で Security Cloud を選択します
- customerId を Customer ID フィールドに貼り付けます
- Application ID を Client ID フィールドに貼り付けます
- Application Secret を Client Secret フィールドに貼り付けます
- Security Cloud へのログインに使用する 管理者のメールアドレスとパスワードを入力します
パート E: Portal Groups の作成(システムのリンク)
Portal Groups は Jamf Pro インスタンスを Protect および/または Security Cloud にリンクし、プラットフォーム間のデバイス検索とデプロイを可能にします。
Portal Group の作成
- Jamf Extender ツールバーアイコンをクリックします
- 「Portal Groups」 セクションまでスクロールします
- 「Add Group」 をクリックします
- 構成します:
- Group Name: 分かりやすい名前(例: 「Production」または「Dev Environment」)
- Jamf Pro Instance: ドロップダウンから選択(先に構成が必要)
- Security Cloud Customer ID:(任意)ドメインブロックをデプロイする場合に選択
- Jamf Protect Instance:(任意)Prevent Lists をデプロイする場合に選択
- ⚠️ Portal Group には Protect または Security Cloud のいずれか 1 つが必要です
- 「Add Group」 をクリックします
Portal Group の例:
Name: Production Environment
Jamf Pro: https://myorg.jamfcloud.com
Security Cloud: Customer ID 12345
Jamf Protect: https://overview.protect.jamfcloud.com
Portal Groups が重要な理由:
- 拡張機能がどの Protect/Security Cloud インスタンスにデプロイするかを自動検出します
- Jamf Pro のデバイス詳細ページにプラットフォーム間のデータ(脆弱性、脅威など)が表示されます
- AI Visibility のデプロイが正しいシステムに自動的にルーティングされます
パート 1: AI Visibility ダッシュボードとデプロイ
ここからが本番です。Jamf Account から AI ガバナンスブロックをデプロイします。
AI Visibility へのアクセス
- Jamf Account に移動:
account.jamf.com - Jamf の認証情報でログインします
- AI Governance → AI Visibility に移動します
- (複数管理している場合)環境を選択します
表示される内容:
- 「N unique products in use」のカウント
- 検出された各 AI ツールの製品カード(例: Claude、Cursor、ChatGPT)
- 各カードには以下が表示されます:
- 製品名とバンドル ID
- Launchers(メインアプリの署名 ID)
- Commands(ヘルパープロセスの署名 ID)
- 選択した期間のイベント数

ブロック状況インジケーターの理解
Jamf Extender は、すでにブロックされているものを示すリアルタイムのステータスインジケーターを挿入します。
何かをクリックする前に、次を確認してください:
- 製品の隣の緑のピル: 「✓ Block Configured in Protect」
- プロセスの隣の緑のピル: 「✓ Block Configured」
- ヘッダーのサマリーピル:
- 「✓ All prevent lists configured (N)」 — すべてブロック済み
- 「N of M signing IDs blocked in Protect」 — 部分的なカバレッジ
これらのインジケーターは自動的に表示されます — 構成は不要です。Protect インスタンスをリアルタイムでチェックします。初回読み込み時には表示までに少し時間がかかることがあります。
ブロックのデプロイ(すべての製品)

ページで検出されたすべての AI ツールをブロックするには:
「Configure Additional Blocks」 ボタンをクリックします
- 「N unique products in use」カウントの左に配置されています
- ページ上のすべての製品を対象とします
認証情報チェック(自動的に実行):
- 拡張機能が環境 UUID から Protect インスタンスを解決します
- 認証情報が書き込み可能か(読み取り専用でないか)をチェックします
- 読み取り専用の場合: セットアップ手順とともにエラーを表示します
- 準備完了の場合: デプロイモーダルを開きます
ブロック対象の選択:
Custom Prevent Lists:
- 製品はチェックボックスとともにグループ化されます
- 各製品には以下があります:
- ☐ 製品バンドル ID のチェックボックス(例:
com.anthropic.claudefordesktop) - ☐ launcher/command 署名 ID ごとに 1 つのチェックボックス ✅ 重要なポイント:
- ☐ 製品バンドル ID のチェックボックス(例:
- ヘッダーのチェックボックスをチェックすると、すべてのサブチェックボックスがチェックされます
- サブチェックボックスは独立しています
- デフォルトでは何もチェックされていません
- すでにブロックされている ID には緑の「Already blocked」バッジが表示されます
Custom Domain Blocks:
- (Portal Group で Security Cloud が構成されている場合)
- 各製品には既知のドメインが表示されます
- ブロックするドメインをチェックします(例:
claude.ai、claude.com) - ドメインブロックは macOS、iOS、iPadOS、VisionOS、Android、Windows のエンドポイントに適用されます
「Deploy」をクリックします
結果:
- 成功数: 「Created N Prevent Lists, Skipped M duplicates」
- すでに存在するエントリは自動的にスキップされます
- Prevent Lists はデプロイされたすべての Plan で即座に有効になります
最終画面には、追加されたブロックを確認するために Protect または Security Cloud に直接移動できるボタンが表示されます
ブロックのデプロイ(単一の製品)
1 つの AI ツールだけをブロックするには:
- 製品カードを見つけます(例: 「Claude」)
- 「Block {Product}」 リンクをクリックします
- カードのコントロールクラスター内(日付範囲選択の隣)に配置されています
- 上記と同じデプロイフローに従います(その製品のみに限定)
最終画面には、追加されたブロックを確認するために Protect または Security Cloud に直接移動できるボタンが表示されます
デプロイの検証
Jamf Protect で:
- Configuration → Prevent Lists に移動します
- 次のような名前の新しいエントリを探します:
- 「Block AI Tool: com.anthropic.claudefordesktop」
- 「Block AI Tool: com.openai.chatgpt.atlas」
- それぞれに以下があります:
- Type: Custom Prevent List
Jamf Security Cloud で:
- Policies → Content filtering policy → Custom rules に移動します
- 新しいカスタムドメインブロックを探します
- ドメインがリストされ、必要なグループに割り当てられていることを確認します
AI Visibility に戻って:
- ページを更新します
- デプロイされたアイテムの隣に緑の「✓ Block Configured」バッジが表示されるはずです
ベストプラクティス
1. 分かりやすい Portal Group 名を使用する
良い名前: 「Production」、「Dev - US East」、「QA Environment」
悪い名前: 「Test」、「Group 1」、「asdf」
理由: 複数の環境を管理する場合、複数の Portal Group を持つことになります。
2. Prevent List の有効性を監視する
デプロイ後:
- Jamf Protect で: Alerts → View All
- フィルター: Prevent List ブロック
- AI ツールが実際にブロックされていることを確認します
理由: デプロイが本番環境で機能していることを検証します。
3. 例外を許可する
特定の AI ツール(例: 開発者向けの Claude)を許可するには:
オプション 1 - ブロックをデプロイしない:
- デプロイ時にそのボックスをチェックしないだけです
- 他のツールはブロックされ、このツールは開いたままになります
オプション 2 - Prevent Lists を削除する:
- Jamf Protect で: Configuration → Prevent Lists
- 「Block AI Tool: com.anthropic.claudefordesktop」リストを見つけます
- それを削除します
- ツールが許可されるようになります
- Jamf Security Cloud → Policies → Content filtering policy → Custom rules
- 不要になったルールを削除します
パート 2: Windows AI ポリシーのデプロイ(任意)
AI ツールをネットワークおよびプロセスレベルでブロックするだけでなく、Windows エンドポイント上の AI アプリケーションにポリシー構成を直接デプロイすることもできます。これは、次のニーズを持つ組織にとって特に有用です。
- 組織が承認した設定(例: 承認済みモデル、API エンドポイント、機能フラグ)で AI ツールを構成する
- MDM を通じて Windows フリート全体で一貫した構成を適用する
- Claude Code または Claude Desktop を管理設定付きでデプロイする

デプロイされる内容
Jamf Extender は、ポリシー構成を Windows レジストリに書き込む Windows デプロイバンドルを生成します。

Claude Code:
- レジストリパス:
HKLM\SOFTWARE\Policies\ClaudeCode\Settings - 形式: すべての設定を含む単一の圧縮 JSON 文字列
- デプロイ方法: レジストリ値を検証して書き込む PowerShell スクリプト
Claude Desktop(Claude Cowork):
- レジストリパス:
HKLM\SOFTWARE\Policies\Claude - 形式: 設定キーごとに 1 つのレジストリ値(例:
model、temperature) - デプロイ方法: 個々の文字列値を書き込む PowerShell スクリプト
Windows 用ポリシーのエクスポート
AI Policies に移動:
- Jamf Account で AI Governance → AI Policies に移動します
- Windows にデプロイしたいポリシーを見つけます
単一ポリシーのエクスポート:
- ポリシーの隣にある 3 点メニュー(⋯) をクリックします
- 「Export for Windows」 を選択します
- ブラウザが次のような名前の ZIP ファイルをダウンロードします:
claude-code-windows-deploy.zip
または、すべてのポリシーをエクスポート(一括):
- ツールバーの 「Download Policies for Windows」 をクリックします
- ブラウザが次をダウンロードします:
ai-policies-windows-deploy.zip - 各ポリシーに個別のデプロイフォルダーが含まれます
バンドル構造の理解
各ポリシーのエクスポートには以下が含まれます:
claude-code-windows-deploy/
├── Deploy-ClaudeCode-Registry.ps1 # デバイス側のレジストリ書き込みスクリプト
├── intune/
│ ├── Provision-ClaudeCode-Intune.ps1 # 管理者用プロビジョナー(PowerShell)
│ └── provision_claudecode_intune.py # 管理者用プロビジョナー(Python/MSAL)
├── metadata.json # ソースポリシーの詳細
└── README.txt # セットアップ手順
Claude Desktop ポリシーの場合、次も表示されます:
settings/settings.json # 設定の参照コピー
一括エクスポートの場合:
ai-policies-windows-deploy/
├── policy-1/ # ポリシーごとに 1 つのフォルダー
│ ├── Deploy-ClaudeCode-Registry.ps1
│ └── intune/...
├── policy-2/
│ ├── Deploy-ClaudeDesktop-Registry.ps1
│ └── intune/...
├── all-policy-import/
│ ├── Import-All-AIPolicies-Intune.ps1 # 複数ポリシー用プロビジョナー
│ └── import_all_aipolicies_intune.py # 複数ポリシー用プロビジョナー
└── metadata.json # 全ポリシーのインデックス
デプロイオプション 1: 任意の MDM(手動スクリプト実行)
デバイス側のスクリプト(Deploy-*.ps1)は、PowerShell スクリプトを実行できる任意の MDM で動作します。
手順:
- ZIP バンドルを展開します
Deploy-ClaudeCode-Registry.ps1またはDeploy-ClaudeDesktop-Registry.ps1を確認します- スクリプトを MDM(Intune、Workspace ONE など)にアップロードします
- Windows デバイスグループに割り当てます
- スクリプトが SYSTEM として実行され、レジストリに書き込みます
スクリプトが行うこと:
- ポリシー JSON をスクリプトに直接埋め込みます
ConvertFrom-Jsonで JSON 構文を検証します(エラー時は即座に失敗)- レジストリキーが存在しない場合は作成します
- 適切なレジストリパスに設定を書き込みます
- コード 0(成功)または 1(失敗)で終了します
サポートされる MDM ツール:
- Microsoft Intune(Platform Scripts)
- VMware Workspace ONE(Scripts & Sensors)
- SYSTEM コンテキストで PowerShell を実行できる任意の MDM
デプロイオプション 2: Microsoft Intune(自動プロビジョニング)
Intune プロビジョナーは、Microsoft Graph API を通じて Microsoft Intune にスクリプトをアップロードするプロセスを自動化します。
プロビジョナーの選択:
PowerShell プロビジョナー(Provision-*-Intune.ps1)
前提条件:
- PowerShell 5.1+ を備えた Windows マシン
- PowerShell Microsoft.Graph モジュールのインストール:
Install-Module Microsoft.Graph - Entra ID Global Administrator または Intune Administrator ロール
手順:
- ZIP バンドルを展開します
intune/に移動しますProvision-ClaudeCode-Intune.ps1を右クリック → Run with PowerShell- 次を示す確認プロンプトを確認します:
- ポリシー名とバージョン
- 必要な Intune 権限
- Intune で作成される内容
Yを入力して確認します- インタラクティブな Microsoft ログインのためにブラウザが開きます(MFA 対応)
- スクリプトが認証し、デバイス側のスクリプトを Intune にアップロードします
- スクリプトの出力: Intune Platform Script ID と成功の確認
Intune ポータルでの次の手順:
- Devices → Scripts and remediations → Platform scripts に移動します
- 新しく作成されたスクリプト(例: 「Claude Code Policy v1」)を見つけます
- Assignments をクリック → デバイスグループを追加します
- これらのグループのデバイスは次回のチェックイン時にポリシーを受け取ります
Python/MSAL プロビジョナー(provision_*_intune.py)
なぜ Python を使うのか?
- Windows、macOS、Linux で動作します
- アプリ登録が不要です
- OAuth デバイスコードフロー(ブラウザベース、MFA 対応)を使用します
- 管理すべきシークレットがありません
前提条件:
pip install msal requests
手順:
- ZIP バンドルを展開します
intune/に移動します- 実行します:
python provision_claudecode_intune.py - 確認プロンプトを確認します
yesを入力して確認します- スクリプトが次を出力します: "Go to https://microsoft.com/devicelogin and enter code: XXXXXX"
- ブラウザを開き、コードを入力し、Intune 管理者アカウントでサインインします
- スクリプトがアップロードを完了します
- Intune ポータルでデバイスグループに割り当てます(PowerShell フローと同じ)
利点:
- クロスプラットフォーム(Windows は不要)
- アプリ登録のオーバーヘッドがゼロ
- ブラウザベースの認証(使い慣れた MFA フロー)
- オープンソースの依存関係のみ
一括ポリシーデプロイ(複数のポリシーを一度に)
複数の AI ポリシーを管理する組織向け:
All-Policy プロビジョナーの使用:
ai-policies-windows-deploy.zipを展開しますall-policy-import/に移動します- いずれかを実行します:
- PowerShell:
Import-All-AIPolicies-Intune.ps1 - Python:
python import_all_aipolicies_intune.py
- PowerShell:
- 単一の認証フローですべてのポリシーをアップロードします
- 各ポリシーが個別の Intune Platform Script になります
結果:
- 1 回の実行で複数の Intune スクリプトが作成されます
- 各スクリプトを異なるデバイスグループに割り当てられます
- 異なるチーム(例: エンジニアリング対マーケティング)に異なる構成をデプロイするのに便利です
Windows デプロイの検証
テストデバイスで:
- レジストリエディター(
regedit.exe)を開きます - 移動します:
- Claude Code:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\ClaudeCode - Claude Desktop:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Claude
- Claude Code:
- レジストリ値が存在することを確認します
Claude Code の場合:
Settingsという名前の値(REG_SZ)を探します- 値には圧縮された JSON が含まれます(改行なし)
Claude Desktop の場合:
- 複数の値、設定キーごとに 1 つ
- 各値は文字列です(ブール値/数値の場合も)
- アプリケーションを起動します(Claude Code または Claude Desktop)
- 設定が適用されていることを確認します(例: モデル選択、API エンドポイント)
トラブルシューティング:
- レジストリ値が見つからない場合: MDM スクリプトの実行ログを確認します
- アプリが設定を無視する場合: アプリのバージョンが管理レジストリ設定をサポートしていることを確認します
- スクリプトが失敗する場合:
metadata.jsonで検証エラーを確認します
スキーマ検証(Claude Code のみ)
Claude Code ポリシーは、デプロイ前に公式の JSON スキーマに対して検証されます。
検証が行われるタイミング:
- エクスポート時(Jamf Extender 内)
- スクリプト実行時(デバイス側の PowerShell が JSON 構文を検証)
検証される内容:
- 型の不一致(例: ブール値が期待される箇所での文字列)
- 無効な列挙値(例: サポートされないモデル名)
- 不明な構成キー
- 環境変数の命名(大文字、英数字 + アンダースコアである必要あり)
エラーの表示場所:
- エクスポート中のブラウザ内(重大なエラーがある場合はダウンロードをブロック)
- エクスポート後の
README.txt(警告のみ) - PowerShell スクリプトの出力(JSON 解析の失敗)
Claude Desktop:
- 公開スキーマなし(そのままデプロイ)
- 管理者が Claude Desktop のドキュメントに照らして設定を検証する責任を負います
Windows デプロイのベストプラクティス
1. 本番前にテストする
- まずパイロットデバイスグループにデプロイします
- レジストリ値が正しく書き込まれていることを確認します
- 管理設定でのアプリケーションの動作をテストします
2. ポリシーをバージョン管理する
- ポリシーバージョンは Intune スクリプト名に埋め込まれます(例: 「Claude Code Policy v2」)
- ポリシーを更新すると新しいバージョンが作成されます
- 手動で削除しない限り、古いバージョンは Intune に残ります
3. 分かりやすいポリシー名を使用する
- 良い例: 「Claude Code - Engineering Team - GPT-4 Only」
- 悪い例: 「Policy 1」、「Test」、「asdf」
- ポリシー名は Intune Platform Script リストに表示されます
4. 認証情報を安全に保つ
- Intune プロビジョナーはインタラクティブ認証を使用します(認証情報は埋め込まれません)
- デバイス側のスクリプトにはポリシー JSON のみが含まれます(シークレットなし)
- 機密設定を含む場合、展開したバンドルをソース管理にコミットしないでください
5. デプロイ前に確認する
- 必ずバンドル内の
README.txtを確認します - メタデータの検証エラー/警告を確認します
- MDM にアップロードする前に、開発マシンで PowerShell スクリプトの構文をテストします
Windows デプロイの制限事項
これが行わないこと:
- Claude Code または Claude Desktop をインストールしません(別途デプロイが必要)
- AI ツールをプロセスレベルでブロックしません(それには Jamf Protect を使用)
- macOS では動作しません(macOS MDM プロファイルまたはファイルベースの設定を使用)
- Linux エンドポイントにはデプロイしません
レジストリのみ:
- ファイルベースの設定(例: アプリディレクトリ内の
settings.json)は書き込まれません - アプリケーションはレジストリのポリシー場所から読み取る必要があります
- アプリのバージョンがレジストリベースの管理設定をサポートしていることを確認します
サポートとフィードバック
- GitHub Issues: https://github.com/Jamf-Concepts/Jamf-Extender/issues
- ドキュメント: https://github.com/Jamf-Concepts/Jamf-Extender
- 質問: 「question」ラベルを付けて issue を作成してください
不明なツールの署名 ID を発見した場合:
- 実行します:
codesign -dv /Applications/YourApp.app - キャプチャします: Bundle ID、Team ID、ドメイン
- 検証レポートを添付して GitHub issue を送信します
あなたの貢献が Jamf コミュニティ全体を支えます!