⚙️

Jamf Proを使ってVenturaのBackground Itemを許可する設定を配布する

2022/12/31に公開

追記

Jamf Pro 10.42

Jamf Pro 10.42で、com.apple.servicemanagementを使用して構築したmobileconfigを署名無しでアップロード可能になりました
https://learn.jamf.com/bundle/technical-articles/page/Uploading_a_Configuration_Profile_for_Managed_Login_Items.html

Jamf Pro 10.43

Jamf Pro 10.43でManaged Login Itemsペイロードが追加され設定をJamf ProのGUIで作成できるようになったため、この記事のように外部アプリケーションからmobileconfigを作る必要がなくなりました(10.43ではUIが英語のみになります。他のペイロードも英語に戻っているものがありました)
https://learn.jamf.com/bundle/jamf-pro-release-notes-current/page/New_Features_and_Enhancements.html

RuleTypeとRuleValue

Jamf ProのGUIで設定を行う際にもRuleTypeRuleValueは必要になるため、必要に応じてこの記事の内容を参考にして下さい

VenturaのBackground Item

macOS 13 Venturaからバックグラウンドで実行されるアプリケーションやエージェントがインストールされると、ユーザーに確認を求めるようになりました

Venturaにアップデートする前からインストールされているソフトウェアの場合は自動的にバックグラウンドでの動作がオンになりますが、ユーザーがオフにすることもできます
セキュリティソフトや、ソフトウェアのアップデーターなどが止まると困ってしまいますね

Jamf Proにはまだバックグラウンド項目を設定できるGUIはなく、10.44で追加される予定だそうです
追記:Jamf Pro 10.43で追加されました!
https://learn.jamf.com/bundle/jamf-pro-release-notes-current/page/New_Features_and_Enhancements.html
また、アプリケーションとカスタム設定からのplistをアップロードする方法でも強制できませんでした

というわけでmobileconfigを作り署名してJamf Proで配布してみましょう

やりかた

  • 必要な情報をあつめる
  • iMazing Profile Editorを使ってmobileconfigファイルを作る
  • Jamf ProのCAを使って証明書を作成し、iMazing Profile Editorで署名する
  • Jamf Proにmobileconfigをアップロードする
  • VenturaがインストールされているMacに配布する

必要な情報を集める

Appleのドキュメントを確認してみます
https://support.apple.com/ja-jp/guide/deployment/dep07b92494
ルールタイプという

  • BundleIdentifier
  • BundleIdentifierPrefix
  • Label
  • LabelPrefix
  • TeamIdentifier

のいずれかの情報が必要そうです

ここでは例としてGoogle Updaterでやってみましょう
該当のアプリケーションがインストールされ実行されたことがあるMacでsfltool dumpbtmを実行して確認します
結果は省略してあります

sfltool dumpbtm
                 Name: GoogleSoftwareUpdateAgent
       Developer Name: Google Updater
      Team Identifier: EQHXZ8M8AV
           Identifier: com.google.keystone.user.xpcservice
                  URL: file:///Users/****/Library/LaunchAgents/com.google.keystone.xpcservice.plist
      Executable Path: /Users/****/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent

                 Name: GoogleSoftwareUpdateAgent
       Developer Name: Google Updater
      Team Identifier: EQHXZ8M8AV
           Identifier: com.google.keystone.user.agent
                  URL: file:///Users/****/Library/LaunchAgents/com.google.keystone.agent.plist
      Executable Path: /Users/****/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/GoogleSoftwareUpdateAgent.app/Contents/MacOS/GoogleSoftwareUpdateAgent

Team Identifier

これはタイトルの通りです
EQHXZ8M8AV

Label

ややこしいですが、IdentifierLabelに相当します
com.google.keystone.user.agent
com.google.keystone.user.xpcservice

(インストールの方法などりにより、com.google.keystone.system.agent com.google.keystone.system.xpcserviceになってたりします。ご利用の環境でご確認下さい)

BundleIdentifier

GoogleSoftwareUpdateAgentのコード署名を確認することでBundleIdentifierが確認できます
codesign -dv /{path}/GoogleSoftwareUpdateAgent.app
結果は省略してあります

codesign -dv /{path}/GoogleSoftwareUpdateAgent.app
Identifier=com.google.Keystone.Agent
TeamIdentifier=EQHXZ8M8AV

com.google.Keystone.Agent

どれを使えば良いの

設定の範囲を考えながら選びましょう
今回はLabelPrefixを使ってmobileconfigを作ってみます

iMazing Profile Editorを使ってmobileconfigファイルを作る

iMazing Profile Editor
https://imazing.com/ja/profile-editor
くわしい使い方はこちら
https://imazing.com/guides/getting-started-with-imazing-profile-editor

(一回iMazingと間違えて入れてしまったのは内緒)

Service Management - Managed Login Itemsの設定

Service Managementのペイロードを追加

Rule TypeとRule Valueを設定

LabelPrefix com.google.keystone

Generalを編集

必須項目のNameIdentifireOganizationを設定する

それ以外の項目は任意となります。後述しますがJamf ProにアップロードしてしまうとPayload Descriptionが編集できなくなるため、必要な場合はここで入力して下さい

一旦保存する

Sign profile with:Do nt signにして、一度保存します

Jamf ProのCAを使って証明書を作成し、iMazing Profile Editorで署名する

この行程は、mobileconfigを配布するJamf Proの管理下にあるMacから行って下さい

キーチェーンアクセスでCSR(Certificate Signing Request)を作成

キーチェーンアクセスを起動して、
キーチェーンアクセス > 証明書アシスタント > 認証局に証明書を要求
を開き、必要な情報を入力します
このとき、要求の処理ディスクに保存にして下さい

Jamf Proで証明書を作成する

Jamf Proの
設定 > グローバル > PKI 証明書 > 管理用証明書テンプレート > 内蔵CA > CSRから証明証を作成
を開きます
さきほど作成しダウンロードしたCSRの中身(エディタなどで開いて全選択してコピーしたもの)を貼り付けて、証明書のタイプでWebServer Certificateを選択します
作成をクリックし、証明書をダウンロードします

ダウンロードした証明書をキーチェーンアクセスに登録する

ダウンロードした証明書をダブルクリックするとキーチェーンアクセスに登録されます
証明書が有効であることを確認してください

この作業を行うMacが、証明書を作成したCAを持っているJamf Proの管理下に無い場合、証明書が自動で信頼されません

iMazing Profile Editorで署名する

作成したmobileconfigをiMazing Profile Editorで開きます
GeneralのProfile Signingドロップダウンを確認すると先程キーチェーンアクセスに登録した証明書があるので選択し、再度保存します

Jamf Proにmobileconfigをアップロードする

Jamf Proの
コンピュータ > 構成プロファイル > アップロード
から、先程作成したmobileconfigをアップロードします

Jamf ProのGUIに無い項目なのでペイロードはGeneralしかありません
また署名済のため、変更できる項目はサイトカテゴリ配布方法と、iMazing Profile Editorで編集していないレベル(iMazing Profile EditorではPayload Scopeと表記)のみになります

VenturaがインストールされているMacに配布する

必ずmacOS 13 Ventura以降のOSがインストールされているMacをScopeにしましょう

該当のmobileconfigが配布されたMacのログイン項目はこのような表示になります

Google Updaterが許可されており、操作できないようになりました

ちなみにTeam Identifierを指定するとおなじTeam Identifierを持つAgentやアプリケーションに効いてしまうためこのようになります

必要以上の権限で制御するのも考えものなので、よしなにやりましょう

この設定が反映されたMacに該当のアプリケーションなどがインストールされるとこのような通知が出ます

参考

Appleデバイスの管理対象ログイン項目MDMペイロードの設定
https://support.apple.com/ja-jp/guide/deployment/dep07b92494/1/web/1.0

Macのログイン項目とバックグラウンドタスクを管理する
https://support.apple.com/ja-jp/guide/deployment/depdca572563/1/web/1.0

バックグラウンドタスク管理の例
https://support.apple.com/ja-jp/guide/deployment/dep91dff5936/1/web/1.0

Getting started with iMazing Profile Editor
https://imazing.com/guides/getting-started-with-imazing-profile-editor

  1. Signing Profiles | Getting started with iMazing Profile Editor
    https://imazing.com/guides/getting-started-with-imazing-profile-editor#signing-profiles

Creating a Signing Certificate Using Jamf Pro's Built-in CA to Use for Signing Configuration Profiles and Packages
https://docs.jamf.com/technical-articles/Creating_a_Signing_Certificate_Using_Jamf_Pros_Built-in_CA_to_Use_for_Signing_Configuration_Profiles_and_Packages.html

さいごに

かなり駆け足だったためわかりづらい部分もあったかと思いますがご容赦ください
年末に子供たちの奇声が響くなか書いたので、間違いとか勘違いとかあったらこっそり教えて下さい

MacAdminの皆様、今年もお疲れ様でした

Discussion