Jamf ブログ
August 1, 2021 投稿者 Sean Rabbitt

Jamf ProとJamf Connectによるゼロタッチ導入

この資料では、Appleの自動デバイス登録 (Automated Device Enrollment)(旧称: DEP)とJamf Pro・Jamf Connectを使用して、業務用端末の初期設定プロセスを確立し、エンドユーザにカスタマイズされたエクスペリエンスを提供するための手順を説明します。

前提条件: 管理者は、 https://docs.jamf.com/ja/jamf-connect/documentation/Before_You_Begin.htmlの指示に従って、企業のクラウド IDプロバイダーでアプリケーションを作成し、Jamf Connectの構成プロファイルを作成する必要があります。 管理者は、Smart Computer Group、ポリシーと構成プロファイルの配布、Jamf Composerまたは類似のツールを使用したインストーラーパッケージの作成に精通している必要があります。

はじめに

Jamf ProとJamf Connectは、高度にカスタマイズ可能なユーザエクスペリエンスを提供します。高度にカスタマイズ可能なため、管理者はこれからの手順を始める前に必要なエクスペリエンスを文書化することをお勧めします。例えとして、管理者は以下を考慮することができます。

  • 登録カスタマイゼーション - 登録では、エンドユーザは動画、ヘルプページへのリンク、シングルサインオンプロバイダによるJamf Pro登録へのサインインなど、インタラクティブな要素を体験できます。ユーザのショートネームと氏名をJamf Connectに渡すことで、デバイスの初期設定に必要なサインインの回数を減らすことができます。登録カスタマイゼーションの詳細については、 https://docs.jamf.com/ja/10.31.0/jamf-pro/administrator-guide/Enrollment_Customization_%E8%A8%AD%E5%AE%9A.htmlをご覧ください。
  • 利用規約 (EULA) - Jamf Connectでは、ユーザに利用規約を提示し、利用規約への同意をクライアントマシンの監査ファイルに保存することができます。
  • 企業のブランディング - Jamf Connectは、ログイン画面の背後に壁紙を表示したり、ログイン画面の上に組織のロゴを表示することができます。
  • 初期設定中のエンドユーザへのメッセージ - Jamf Connect Notify メカニズムは、画像やテキスト、設定完了までのステップを示すステータスバーを表示することができます。

業務用端末の初期設定プロセスは企業によって異なります。企業に適したJamf ProとJamf Connectの機能を用いると同時に、次のステップに進む前にそれらをどのように使用したいかを文書化することを検討してください。

手順:

  • 企業のブランディングアセットを用意する
  • Jamf Connect Notify (通知) メカニズムのためのオンボーディングスクリプトを準備する
  • カスタマイズアセットのインストーラーパッケージを作成する
  • 一度きりで実行するメカニズムの構成プロファイルを作成する
  • Jamf ProでコンピュータのPreStage Enrollment (事前登録)をする
  • コンピュータ登録時に実行するポリシーを作成する
  • Smart Computer Groupを作成して、登録が正常に完了したことを判断する
  • Scope (配布範囲)とExclusion (除外)グループを使用して、Jamf Connectのログイン画面の一度きりで実行するメカニズムを無効にする

企業のブランディングアセットを用意する

Jamf Connectログイン画面には、カスタマイズした壁紙や企業の画像を表示することができます。この例では、グランドキャニオンの壁紙画像を表示し、PNG形式で背景を透明にしたJamfの企業ロゴを表示しています。壁紙は画面に合わせてトリミングされるため、推奨される画像のサイズと比率は、最も大きい業務用Macの画面サイズ(解像度)です。ロゴの推奨画像サイズは250x250pxですが、必要に応じて画面に合わせてサイズを変更できます。これらの要素をアセットと呼びます。

追加のアセットとして、ネットワーク接続がない場合にエンドユーザに表示するローカルのヘルプファイルを含むことができます。サポート形式はPDFとHTMLです。ヘルプのアイコンもカスタマイズできます。アイコンの推奨画像サイズは、PNG形式の16×16で、背景は透明です。

また、Notify メカニズムでは、通知画面の上部に画像を表示したり、画面の中央に文字の代わりとなるものを表示することができます。これらの画像は、端末にローカルで読み込む必要があります。

Jamf Connect Nofify (通知) メカニズムのためのオンボーディングスクリプトを準備する

管理者の要望に応じて、ログイン成功後に実行する用途で展開されるスクリプトは、必要に応じてシンプルにも複雑にもできます。柔軟性を最大限に高めるには、スクリプトをできるだけシンプルにして、ログイン後の画面で、残りの設定プロセスをJamf Proとポリシーに任せることをお勧めします。スクリプト例は次のとおりです。

この例のスクリプト:

  1. Notify メカニズム(使用している場合)のデフォルト文章を変更して、ユーザに新しい業務用端末に何を設定している最中なのかを知らせます。
  2. Jamfクライアントバイナリが適切な場所にインストールされていることを検証し、ネットワーク接続が遅い場合にはマシンへのインストールを待機します。
  3. Jamf Proでポリシーのカスタムトリガーを実行します。これにより、ユーザに特化したソフトウェアや、Jamf Protectまたは他のエンドポイントプロテクションソフトウェアなどの必須となるセキュリティソフトウェアをインストールするためのポリシーを次々と実行させます。

スクリプト注記: サポートされているすべてのスクリプト言語に対応していますが、追加パッケージをインストールしなくてもデフォルトでサポートされているスクリプト言語を使用することをお勧めします。例えばPythonの場合には、Apple Silicon M1チップを搭載したmacOS Big Surマシン上でRosettaを使用する必要があります。ネイティブサポートには、zshシェルとbashシェルスクリプトが含まれます。

オプションスクリプト: Jamf Connectのメニューバーのメカニズムは、ログインの成功や失敗、パスワードの変更、ネットワークの状態の変化などに応じてスクリプトを実行することができます。これが企業で必要とされる場合には、まずこれらのスクリプトを作成し、次のステップでターゲット端末に配布します。

カスタマイズアセットのインストーラーパッケージを作成する

Jamf Composerまたは類似のパッケージ作成ツールを使用して、画像、ヘルプファイル、スクリプト、ブランディングのアセットのインストーラーパッケージを作成します。

すべてのユーザが利用可能な場所を使用し、ファイルやスクリプトのパーミッションを適切に設定します。標準的な場所には、/usr/local/、/Users/Shared/、/Library/Application Support内のディレクトリが含まれます。macOS Big Surでは、ドライブが読み取り専用のシステムドライブと読み取り/書き込み可能なユーザ領域ドライブの組み合わせになっていると考えてください。macOSのソフトウェアアップデートにより、ドライブ上の場所への書き込み機能が削除された場合に備えて、自分の場所を読み取り/書き込み可能なユーザ領域にマッピングしておく必要があります。

オンボーディングスクリプト(上図では「NotifyMech.sh」)の所有者はroot:wheelとし、パーミッションは少なくともroot:wheel(550パーミッション)が読み取りと実行を行うようにします。

壁紙、ロゴ、ローカルヘルプファイルの所有者はroot:wheelとし、パーミッションは少なくとも全ユーザが読み取れるようにします(444パーミッション)。

オプションスクリプト: Jamf Connectメニューバーのメカニズムでは、ログインの成功や失敗、パスワードの変更、ネットワークの状態の変化などに応じてスクリプトを実行することができます。これらのスクリプトは、現在ログインしているユーザのパーミッションで実行されるため、所有権をroot:wheelに設定し、パーミッションを読み取りと実行(555パーミッション)に設定する必要があります。

(オプション)Jamf Connectインストーラーパッケージの展開: ほとんどの場合、パッケージの優先順位を使用すると、JamfConnect.pkgソフトウェアインストーラーがダウンロードされてインストールされる前に、カスタマイズアセットを含むインストーラーがターゲットの端末にインストールされます。ただし、ネットワーク接続が極端に遅い場合は、パッケージの優先順位に関係なく、ダウンロードした最初の.pkgをmacOSがインストールします。この場合、 https://community.jamf.com/t5/jamf-connect/jamf-connect-meta-package-for-zero-touch-deployment/td-p/233753 (英語) の手順に従って「メタパッケージ」を作成してください。メタパッケージとは、パッケージとポストインストーラースクリプトを含むパッケージのことで、Jamf Connectの起動前にカスタマイズアセットが整っていることを保証するものです。

ユーザがmacOSのログイン画面を表示する前にJamf Connectメタパッケージがインストールされなかった場合、ユーザはパッケージがインストールされるまでしばらく待ってから端末を再起動するか、オプションとしてmacOSのログイン画面がすでに読み込まれているかどうかを判断するポストインストーラスクリプトをメタパッケージに含めることができます。

ポストインストーラーで展開すると、このスクリプトは次を実行します。

  1. macOSが.AppleSetupDoneファイルにtouchし、SetupAssistant(設定アシスタント)のプロセスが完了したことを記すようにします
  2. 現在ログインしているユーザが、_mbsetupuser(SetupAssistantがコンピュータを最初に起動したときに使用する)またはroot(macOSのログイン画面がアクティブな時のアクティブなコンソールユーザ)のいずれかであるかどうかを判断します
  3.  killall -9 loginwindow を発行し、loginwindowプロセスを終了して、macOSのログイン画面を再起動します。

カスタマイズアセットのパッケージへの署名: 事前登録でインストールされたパッケージは、開発者証明書または信頼できる証明書のいずれかで署名されている必要があります。 https://docs.jamf.com/technical-articles/Obtaining_an_Installer_Certificate_from_Apple.html (英語) を参照して開発者証明書を取得するか、 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を参照してJamf Pro認証局で署名証明書を作成してください。

完了したら、Jamf Proの配布ポイントにカスタマイズアセットのパッケージをアップロードしてください。

一度きりで実行するメカニズムの構成プロファイルを作成する

Authchanger

Jamf Connect Notify メカニズムはデフォルトでは有効になっていません。コマンドラインから指示しいくつかの方法で有効にすることができますが、特別なコーディングを必要としない最も簡単な方法は、構成プロファイルをプッシュすることです。

authchanger構成プロファイルのドメインは、com.jamf.connect.authchangerです。

Arguments配列の文字列は、 https://docs.jamf.com/ja/jamf-connect/documentation/authchanger.htmlに文書化されているコマンドに従います。上記の例は、/usr/local/bin/authchanger -reset -JamfConnect -Notify となっており、Notifyメカニズムを有効にする場合と同じです。authchangerコマンドは、JamfConnect.pkgインストーラーの一部として実行されます。ソフトウェアがインストールされると、インストーラーパッケージはcom.jamf.connect.authchanger構成プロファイルで送信されたコマンドを使用します。

スクリプト実行と利用規約 (EULA)の環境設定キー

デフォルトでは、com.jamf.connect.loginの構成プロファイルに、利用規約 (EULA)を表示したりスクリプトを実行する環境設定キーが存在する場合、Jamf Connectログインメカニズムは利用規約を表示したりそのスクリプトを実行します。

管理者は、端末の初期設定時のみこれらのアクションと利用規約の表示を必要とするので、これらのキーはJamf Proの別の構成プロファイルに保存してください。これらのキーのドメインは、com.jamf.connect.loginです。

: 管理者は、登録方法に必要なキーのみを使用してください。予期せぬ結果を避けるため、Jamf Connectに空白や空の値のキーを送らないでください。

: Jamf Proのコンピュータ構成プロファイルには、以下のように複数のアプリケーションやカスタム設定のペイロードを含めることができます。

この例では、authchangerのペイロード (「アップロード」より)とScriptPathキーのペイロード (「Jamf アプリケーション」より)が1つの構成プロファイルにまとめています。これにより、一度きりで実行させるペイロードを対象の端末に簡単に配布することができます。

Jamf ProでコンピュータのPreStage Enrollment (事前登録)を作成する

Jamf Proサーバで、以下のペイロードを持つPreStage Enrollment (事前登録)を作成します。

  • アカウント設定: 「セットアップアシスタントの前にローカル管理者アカウントを作成する」を選択し、ユーザ名とパスワードを追加します。任意で「ユーザ&グループにマネージド管理者アカウントを非表示にする」を選択します。ローカルユーザカウントのタイプを「アカウントの作成をスキップする」に設定します。
  • 構成プロファイル: Jamf Connectログインメカニズムの構成プロファイル、RunOnceの構成プロファイル、Jamf Connectメニューバーエージェント、Jamf Connectライセンスを選択します。
  • 登録パッケージ: JamfConnect.pkgインストーラーパッケージと、ここにある手順で作成したカスタマイズアセットのインストーラーパッケージを選択します。

事前登録の詳細については、 https://docs.jamf.com/ja/jamf-pro/administrator-guide/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF_Prestage_Enrollment_%28%E4%BA%8B%E5%89%8D%E7%99%BB%E9%8C%B2%29.html を参照してください。

コンピュータ登録で実行するポリシーを作成する

コンピュータがJamf Proサーバに登録されると、カスタマイズアセットパッケージとJamf Connectインストーラーパッケージがコンピュータにプッシュされ、バックグラウンドでインストールされます。その後、ユーザがクラウドIDプロバイダの資格情報で認証を行うと、Jamf Connectがその資格情報に基づいてローカルのユーザカウントを作成します。その後、スクリプト実行のメカニズムが有効で、com.jamf.connect.login構成プロファイルにスクリプトへのパスを示す環境設定キーが含まれているため、Jamf Connectが管理者権限でスクリプトを実行します。

上記のスクリプト例では、最後の行でポリシーのカスタムトリガーを呼び出しています。Jamf Proは、このカスタムトリガーで呼び出されたポリシーを英数字順に実行します。上記の図では、オンボーディング作業を順番に進めるために、ポリシーは数字の小さいものから大きいものへと実行されます。この例では次を実行します:

  • 10 - 必須ソフトウェアのインストール - エンドポイント保護ソフトウェアや条件付きアクセスのクライアントなど、他のソフトウェアよりも先にインストールすべきミッションクリティカルなソフトウェアがある場合は、それらを先にインストールします。
  • 11 - 95 管理者がオンボーディングで実行するその他のポリシー : Jamf Proは、英数字順にポリシーを実行します。管理者は、これと同様のポリシーを構築して、対象のコンピュータを特定のLDAPグループや部門に設定することができます。ここで制限されるのは、管理者の管理ニーズと想像力だけです。
  • 95 - Jamf Connectのログインメカニズムを無効にする - 必須の設定がすべて完了したら、管理者は「Unixコマンドの実行」命令を発行して、Jamf Connect Notify メカニズムを無効にすることができます。 /usr/local/bin/authchanger -reset -JamfConnect は、ログインメカニズムを標準メカニズムに戻し、Notify メカニズムを無効にします。
  • 96 - 初回実行を完了としてマークする - 次のステップ「Smart Computer Groupを作成して、登録が正常に完了したことを判断する」で使用するために、コンピュータが初期設定されたことをマークするにはいくつかの方法があります。 この例では、Jamfインストール済みソフトウェアの受信フォルダにファイルを書き込んでいますが、以下のオプションもあります。
    • touch コマンドでファイルを作成し、Jamfがコンピュータのインベントリを収集する時に、そのファイルが存在するかどうかを拡張属性で判断する。
    • 拡張属性を使用して、利用規約の監査ファイルがディレクトリに存在するかどうかを判断する。
    • 必須ソフトウェアがインストールされているかどうかをパッケージがインストールされているかどうか、ファイルが存在するかどうかで判断する。
  • 97 - インベントリの更新: Jamfは、コンピュータの状態を基にインベントリレコードを更新します(その後、スマートコンピュータグループに上記のポリシーの情報を追加します)。
  • 99 - Jamf Connect Notifyを終了する: Notify メカニズムをオフにして、macOSセットアップアシスタントの最後のステップに進むには、「コマンドを実行 (Run Unix command)」ポリシーペイロードを使用して、 「echo "Command: Quit" >> /var/tmp/depnotify.log」コマンドを実行します。

Jamf Connect Notify のメカニズムがQuitコマンドを受信した後、Jamf ConnectはオプションでユーザのFileVaultを有効にすることができ、ユーザはmacOSから追加の設定手順を実行するように促されます。最後に、ユーザは完全に構成されたコンピュータを使用できる状態でFinderに表示されます。

ユーザへの通知 (Notify) メカニズムのアップデート

ポリシーの実行時に通知画面を更新して、エンドユーザに自分のコンピュータに何が起こっているのかを知らせるにはいくつかの方法があります。

  • Jamf Proのポリシーログから自動的に読み取る - com.jamf.connect.loginで NotifyLogStyle が jamf に設定されている場合は、Jamf Connectのログインウィンドウ環境設定キーを使用します。これにより、疑似的なステータスバーの下にあるステータスメッセージが更新されます。
  • ポリシーでunixコマンドのペイロードを実行する - 以下のようなコマンドでステータスを個別に更新します echo “Status: Installing a program on your computer” >> /var/tmp/depnotify.log
  • スクリプトのペイロードをポリシーで使用する - ポリシーでは、他のアクションが実行される前にスクリプトを実行することができます。以下のスクリプトをJamf Proサーバに追加し、パラメータの値を使って、通知画面の複数の部分を同時に更新する

Smart Computer Groupを作成して、登録が正常に完了したことを判断する

Smart Computer Groupを作成して、登録が正常に完了したことを判断する 上記の手順で選択した属性を使用して、コンピュータがJamf Connect に正常に登録完了したことを示すマークを付け、設定が完了したすべてのコンピュータを含むSmart Computer Groupを作成します。

上記の例のSmart Computer Groupでは、初期設定プロセスの一環として特定のパッケージがインストールされたすべてのコンピュータが含まれます。その他にも、拡張属性の状態 (https://docs.jamf.com/ja/jamf-pro/administrator-guide/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%AE%E6%8B%A1%E5%BC%B5%E5%B1%9E%E6%80%A7.html) や、コンピュータの登録が完了していることを判断する他のインベントリ情報をクライテリアに含めることができます。

Scope (配布範囲)とExclusion (除外)グループを使用して、Jamf Connectのログイン画面の一度きりで実行するメカニズムを無効にする

「利用規約 (EULA)」、「ScriptPath」、「authchanger」の環境設を含む構成プロファイルのScope (配布範囲)に、前の手順で作成したスマートコンピュータグループに含まれるすべてのコンピュータを除外するためのExclusionグループを追加します。

上記の図の例では、「Jamf Connect - 起動時に1回のみ実行」という名前の構成プロファイルで、com.jamf.connect.loginのキーをScriptPathに設定しています。これらの構成プロファイルを対象のコンピュータから除外することで、Jamf Connectのログインメカニズムが、ログイン成功時にスクリプトを実行しなくなります。

この時点で、管理者が使用できる追加のツールがいくつかあります。管理者は、別の構成プロファイルを別のScriptPathでプッシュすることで、重要なパッチをインストールしたり、ユーザが端末にログインしたときに単純にログを記録するなど、ログインごとに異なるカスタムトリガーを実行することができます。その可能性は無限大です。結果、構成が完了したコンピュータで、完全にカスタマイズされたユーザエクスペリエンスを実現することができます。

ブログを見る
カテゴリー
ブログ購読

マーケットトレンド、Apple の最新情報、Jamf のニュースをメールでお届けします。

当社がお客様の情報をどのように収集、利用、移転、および保存するかに関しては、プライバシーポリシー をご参照ください。