まず結論
FoltaのmacOS向け無人配布では、PKGやシェルスクリプトではなく、セットアップキットに含まれるfolta-mdm-mac.mobileconfig をComputer Level・Install Automaticallyで配布します。
この1ファイルに、Chrome / Edgeの強制インストールと、Foltaへ自己登録するためのManaged Storageが含まれます。Intel MacとApple Siliconで手順は同じです。
**検証状況:実機検証待ち。**Chromeの強制配布とManaged Storage、Edgeの強制配布、JamfのアップロードとPayload Variablesは公式仕様で確認済みです。Edgeの拡張機能別Managed Storage、Jamf取り込み後の4 payload保持、端末上での変数置換、既存プロファイルとの競合は、最初の実機で確認してください。
仕組みを30秒で理解する
このプロファイルに含まれるもの
folta-mdm-mac.mobileconfig には4つの設定が入っています。
- FoltaをChromeへ強制インストール
- Chrome用Managed Storage
- FoltaをEdgeへ強制インストール
- Edge用Managed Storage
clientId と clientSecret はプロファイルに含まれません。拡張機能が登録トークンを使ってFoltaへ登録し、端末固有の認証情報を取得します。
事前準備
- Folta管理者権限
- Jamf Pro管理者権限
- Jamf ProのMDM管理下で、Computer Levelの構成プロファイルを配信できるテスト用Mac 1〜5台(ChromeとEdgeの両方を同時に検証する場合は4台以下)
- 旧来のユーザー主導登録を含む環境では、InventoryでUser Approved MDMの状態も確認する
- Jamf InventoryのComputer Name、Serial Number、User and Locationが正しいこと
- Chrome / Edgeはプロファイルより先にインストールされている必要はないが、反映とFolta登録を確認する時点までに対象ブラウザをインストールし、一度起動する
- Folta API、拡張機能の更新情報、CRX配信先へHTTPS接続できること
- Folta管理画面の[セットアップ]から取得した最新macOS用セットアップキット
$USERNAME は、現在Macへログインしているローカルユーザーではなく、Jamf Proでそのコンピュータに関連付けられたユーザー名です。配布前にInventoryを確認してください。
また、既存の構成プロファイルが com.google.Chrome または com.microsoft.Edge を管理していないか確認します。同じ設定を複数プロファイルで競合させず、必要なら既存の管理元へFolta設定を統合してください。
登録トークンの有効期限は発行から90日です。期限内に未登録端末が残る場合は、新しいセットアップキットを取得します。
1. セットアップキットを準備する
Folta管理画面の左サイドメニューで、[端末]から[セットアップ]を開きます。左サイドメニューの[端末]にある[セットアップ]を選択します。
macOSを選択し、macOS用セットアップキットをダウンロードします。
ダウンロードには編集権限が必要です。ブラウザの配布設定が完了していない場合は、ダウンロードボタンが無効になります。
- [macOS用をダウンロード]を押します。
- ZIPを管理者Macで展開します。
folta-mdm-mac.mobileconfigを確認します。
setup.sh は利用者操作を伴う手動導入用です。Jamf Proからの無人配布には使用しません。
次のコマンドは、登録トークンなどの実値を表示せず、プロファイルの形式と4つの設定名だけを確認します。
2. Jamf Proへアップロードする
Jamf Proで次へ進みます。folta-mdm-mac.mobileconfig を選び、次のとおり設定します。
Self Serviceではなく自動インストールを使います。利用者の操作を導入条件にしないためです。
3. プロファイルは署名せずに使う
Foltaのプロファイルは、対象Macへのインストール時にJamfが$SERIALNUMBER、$COMPUTERNAME、$USERNAME を置換できるよう、未署名のままアップロードします。
- 署名済みプロファイル:Jamfが内容を変更しないため、Jamf Payload Variablesを利用できない
- 未署名プロファイル:変数置換できるが、Jamfが認識できない設定を欠落・変換する可能性がある
Remove unknown keys は押さないでください。この削除は元に戻せません。次の再ダウンロード確認と実機パイロットの両方を行います。
構成プロファイルのCMS署名と、アプリやPKGのnotarizationは別の仕組みです。この手順ではPayload Variablesを利用するため、構成プロファイルを未署名でアップロードします。
4. Jamfから再ダウンロードして確認する
アップロード直後に、対象プロファイルをJamf ProからDownloadします。ここで確認するのはJamf Proに保存された配布テンプレートです。Jamf変数が端末ごとの実値へ置換されるのは、対象Macへインストールされる時点です。- PayloadContentが4件ある
- 4つの表示名が残っている
com.google.Chromecom.google.Chrome.extensions.<拡張機能ID>com.microsoft.Edgecom.microsoft.Edge.extensions.<拡張機能ID>ExtensionInstallForcelistapiBaseUrl$SERIALNUMBER、$COMPUTERNAME、$USERNAME- ChromeとEdgeの登録トークンが同じ
5. 最初の1〜5台へ配布する
Scopeをテスト用Static GroupまたはSmart Groupだけに設定し、保存します。ChromeとEdgeの両方を同時に検証する場合は4台以下にします。 対象Macでプロファイルが配布されたら、Chrome / Edgeを完全終了して再起動します。ブラウザが起動してプロファイルを読むと、Foltaへの自己登録が行われます。重要:一括配布せず、登録リクエスト数で分ける
現行Foltaは同じ登録トークンからの新規登録を10リクエスト/5分に制限しています。同一送信元IPにも20リクエスト/5分の制限があります。 ChromeとEdgeを両方起動すると、1台から最大2件の新規登録が発生します。現行拡張機能は429応答のRetry-After を使った定時再試行を行わないため、次を安全側の基準にします。
最初は1〜5台、ChromeとEdgeの両方なら4台以下でパイロットし、その後もScopeを段階的に広げます。以下はJamf Proの仕様ではなく、Foltaの現行実装に基づく段階配布の目安です。
6. 正常導入を確認する
JamfのCompleted だけではFoltaの導入成功とは判断しません。次の3か所をすべて確認します。
① Jamf Pro / macOS
- Configuration Profile Statusが
Completed - 対象Macが現在もMDM管理下である
- Mac上に
jp.folta.mdm.<拡張機能ID>のプロファイルがある - 配布されたプロファイルに4つの設定が残っている
- Jamf変数が実値へ置換されている
profiles show の全文には登録トークンが含まれる可能性があります。結果全文をサポートチケットやチャットへ貼らないでください。
Jamfの Completed は配布履歴です。端末が後からunmanagedになっても履歴が残る場合があるため、現在のMDM管理状態も必ず確認します。
macOS 11以降では profiles コマンドでプロファイルをインストールできません。sudo profiles install ... は使用せず、JamfのMDM配布を使います。
② Chrome / Edge
Chrome:chrome://policyで[Reload policies]を実行するExtensionInstallForcelistのStatusがOK- Sourceが
Platform、Applies toがMachine chrome://extensionsでFoltaが組織によって管理されている- 利用者が拡張機能を無効化・削除できない
edge://policyでポリシーを再読み込みするExtensionInstallForcelistがエラーなしで表示されるedge://extensionsでFoltaが組織によって管理されている- Folta管理画面への端末登録まで確認できる
ExtensionSettings が ExtensionInstallForcelist を上書きし得るため、Chrome / Edgeの既存ポリシーも確認してください。
③ Folta管理画面
- 端末一覧に対象Macが表示される
- Serial Number、Computer Name、Usernameが想定どおり
- BrowserがChromeまたはEdgeとして正しい
- テスト用ポリシーで検知・警告・ブロックが動作する
- 管理画面へログが届く
アップロード時に設定が欠落した場合
Jamf ProのApplication & Custom Settings で、次の4つのPreference Domainを個別に登録します。
<dict> に持つ通常のPLISTをアップロードします。元のmobileconfig全体や、外側の com.apple.ManagedClient.preferences wrapperをそのまま各項目へアップロードしません。Foltaの元プロファイルから4 domainを分け、もう一度1〜5台のScopeで検証します。実際の登録トークンを汎用マニュアルへ転記しないでください。
更新・緊急停止・撤去
トークン更新や設定変更を既存端末へ届ける場合、pilot後にJamfの配布対象を既存端末にも届く設定にします。Distribute to Newly Assigned Devices Only を選ぶと、既存対象端末へ更新が届きません。Distribute to All では旧profile削除後に新profileが入るため、一時的に設定が空く可能性を考慮して少数端末で先に確認します。
次のいずれかが発生したらScopeを広げず、次の配布を止めます。
- 4 payloadの欠落またはunknown keyの削除が見つかった
- Jamfは
Completedだが、Mac上のprofile、ブラウザ、Foltaのどれかで確認できない - Jamf変数が実値へ置換されない
- EdgeがManaged Storageを読めず、Foltaへ登録されない
- 429または既存ポリシーとの競合が発生した
トラブルシューティング
JamfでPendingのままになる
- 対象MacのMDM登録とUser Approved状態を確認する
- Macがオンラインか確認する
- ScopeとExclusionsを確認する
- APNs / MDM commandの状態を確認する
CompletedだがFoltaのポリシーが出ない
- Chrome / Edgeを完全終了して再起動する
chrome://policy/edge://policyを確認する- 再ダウンロードしたプロファイルに4つの設定があるか確認する
- 既存のChrome / Edgeプロファイルとの競合を確認する
- 拡張機能更新先とCRX配信先への通信を確認する
Foltaには登録されたが端末名が不自然
$SERIALNUMBER などが置換されず、Folta拡張機能がランダムUUIDや生成名へフォールバックした可能性があります。Jamfから再ダウンロードしたプロファイルと、対象端末のJamf Inventoryを確認します。
Usernameが想定と違う
Jamf ProのUser and Locationに関連付けられたユーザー名を確認します。現在ログイン中のローカルユーザー名とは限りません。一部端末だけFoltaに登録されない
短時間に登録が集中して429になった可能性があります。最後の配布から5分以上空け、未登録端末だけを小さいScopeに分けて再確認します。すでに登録済みの端末まで無条件に再配布しないでください。Chromeは成功したがEdgeだけ登録されない
edge://policyとedge://extensionsを確認する- EdgeのManaged Storageが実機で取得できるか確認する
- 既存のEdgeポリシーとの競合を確認する
- Edgeを正式対応に含める前に、Folta管理画面への登録とポリシー動作までmust-passにする
やってはいけないこと
setup.shをJamf Policyから無人実行する- Folta用PKGを作って配布する
- Jamf変数を使うプロファイルへ署名する
- アップロード後の内容確認をせず全社Scopeへ割り当てる
- unknown key警告で
Remove unknown keysを押す - Chrome / Edge両方を使う端末を5分以内に5台以上ずつ新規登録する
- Jamfの
Completedだけで導入成功と判断する profiles showの全文、登録トークン、Managed Storageの認証情報を共有するsudo profiles install ...を使う
全社展開前チェック
- Jamf InventoryのComputer Name、Serial Number、Usernameを確認した
- 既存のChrome / Edgeプロファイルとの競合を確認した
- 元のmobileconfigに4つの設定がある
- Jamfから再ダウンロードして4つの設定を確認した
- 1〜5台でJamf / ブラウザ / Foltaの3層確認を完了した
- ChromeとEdgeを使う場合は両方で端末登録を確認した
- 配布単位と5分以上の間隔を決めた
- 429発生時の未登録端末だけを切り分けられる
- Apple Siliconで検証した
- Intel Macをサポートする場合はIntelでも検証した
- 緊急停止、Scope解除後のprofile削除、Folta側revokeをpilotで確認した