コンテンツにスキップ

Kandji

KandjiはCloudflare WARPをカスタムアプリとして展開します。Kandjiがカスタムアプリを展開する方法の概要については、彼らのナレッジベースの記事を参照してください。

macOS

最も簡単な展開のために、KandjiはCloudflare WARPのユーザー通知を有効にし、そのプライバシープリファレンスポリシーコントロール(PPPC)をフルディスクアクセスに設定するダウンロード可能な構成プロファイルを作成しました。

  1. カスタムプロファイルをダウンロードします。

  2. カスタムプロファイルを追加します:

    1. ライブラリ > 新規追加 > ライブラリアイテムを追加 > カスタムプロファイルに移動します。
    2. 追加して構成を選択します。
  3. カスタムプロファイルを構成します:

    1. カスタム構成プロファイルの名前を入力します。
    2. カスタムプロファイルをテストブループリントに割り当てます。
    3. デバイスファミリーを_Mac_に設定します。
    4. 以前にダウンロードしたcloudflare_warp.mobileconfigファイルをアップロードします。
    5. カスタムプロファイルを保存します。

    KandjiでのWARPのカスタムプロファイルの構成

  4. カスタムアプリを追加します:

    1. ライブラリ > 新規追加 > ライブラリアイテムを追加 > カスタムアプリに移動します。
    2. 追加して構成を選択します。
  5. カスタムアプリを構成します:

    1. カスタムアプリに名前を付けます。

    2. プロファイルで使用したのと同じテストブループリントにカスタムアプリを割り当てます。

    3. インストールタイプとして監査および強制を選択します。

    4. 監査および強制スクリプト以下からコピーし、監査スクリプトテキストフィールドに貼り付けます。

    5. 最低アプリバージョンを強制するには、監査スクリプト内のENFORCED_VERSION変数を監査スクリプトが強制すべきバージョン番号(例:1.5.207.0)に更新します。

      ENFORCED_VERSIONが空白("")のままの場合、監査スクリプトはバージョンをチェックせず、アプリケーションフォルダまたはアプリケーション内のサブフォルダにCloudflare WARPアプリが存在するかどうかのみをチェックします。詳細についてはスクリプトのコメントを参照してください。

    6. インストールの詳細セクションで、インストーラーパッケージを選択します。

    7. インストーラーパッケージの下に、Cloudflare_WARP_<VERSION>.pkgファイルをアップロードします。インストーラーパッケージをまだ持っていない場合は、こちらからダウンロードしてください

    8. 保存を選択します。

Cloudflare WARPがインストールされたことを確認するには、カスタムアプリライブラリでアプリを選択し、そのステータスタブを表示します。

監査および強制スクリプト

以下の監査スクリプトは、WARPクライアントがインストールされているかどうかをチェックし、オプションで最低バージョン番号を強制します。

#!/bin/zsh
###################################################################################################
# 作成者: Matt Wilson | se@kandji.io | Kandji, Inc. | ソリューションエンジニアリング
###################################################################################################
# 作成日: 2021年7月30日
###################################################################################################
# ソフトウェア情報
###################################################################################################
# このスクリプトは、アプリケーションが存在するかどうかをチェックするために設計されています。
# アプリが存在する場合、スクリプトは最低バージョンが強制されているかどうかを確認します。
# 最低アプリバージョンが強制されていない場合、スクリプトはアプリがインストールされているかどうかのみをチェックします。
###################################################################################################
# ライセンス情報
###################################################################################################
# Copyright 2021 Kandji, Inc.
#
# 本ソフトウェアおよび関連文書ファイル(以下「ソフトウェア」といいます)を取得したすべての人に対し、
# 無償で、ソフトウェアを制限なく使用、複製、改変、統合、公開、配布、サブライセンス、販売する権利を付与します。
# ただし、以下の条件を遵守するものとします。
#
# 上記の著作権表示および本許可表示は、すべての複製または重要な部分に含めるものとします。
#
# 本ソフトウェアは「現状のまま」提供され、いかなる種類の保証もありません。
# 明示または暗示を問わず、商品性、特定目的への適合性、権利非侵害を含みますが、これに限定されません。
# 著作権者または著作権保有者は、ソフトウェアまたはその使用またはその他の取引に起因する
# いかなる請求、損害、その他の責任についても責任を負いません。
###################################################################################################
# スクリプトバージョン
_VERSION="1.0.0"
###################################################################################################
###################################### 変数 ##################################################
###################################################################################################
# 最低バージョンを強制したい場合は、ENFORCED_VERSION変数を
# 監査スクリプトが強制すべきバージョン番号に更新してください。(例:バージョン番号
# 1.5.207.0)。ENFORCED_VERSIONが空白のままの場合、監査スクリプトはバージョンをチェックせず、
# 定義されたAPP_PATHにCloudflare WARPアプリが存在するかどうかのみをチェックします。
ENFORCED_VERSION="1.5.207.0"
###################################################################################################
# アプリケーションがインストールされるアプリの名前と一致することを確認します。
# このスクリプトは、アプリケーションフォルダ内でアプリケーションを動的に検索します。
# したがって、アプリケーションパスを定義する必要はありません。
# アプリは、アプリケーションフォルダまたは最大3つのサブディレクトリ内にインストールする必要があります。
# 例:Applications/<app_folder_name>/<app_name.app>
APP_NAME="Cloudflare WARP.app"
# インストーラーを実行する前に待機するプロファイルプレフィックスを変更します。
# プロファイルが見つからない場合、この監査および強制スクリプトは00で終了し、
# 次のKandjiエージェントのチェックインまで何もしません。
PROFILE_PAYLOAD_ID_PREFIX="io.kandji.cloudflare.C59FD67"
###################################################################################################
###################################### 関数 ##################################################
###################################################################################################
return_installed_app_version() {
# 現在インストールされているアプリケーションのバージョンを返します
#
# $1 - アプリケーションの名前。
local app_name="$1"
local installed_version="" # ローカル変数を初期化
# findバイナリを使用して、アプリケーションディレクトリ内でアプリを検索します。
local find_app="$(/usr/bin/find /Applications -maxdepth 3 -name $app_name)"
local ret="$?"
# アプリがインストールされているかどうかを確認します。
if [[ "$ret" -eq 0 ]] && [[ -d "$find_app" ]] &&
[[ "$app_name" == "$(/usr/bin/basename $find_app)" ]]; then
# 前のコマンドがtrueを返し、返されたオブジェクトがディレクトリであり、
# 探しているアプリ名がfindコマンドで見つかったアプリ名と完全に一致する場合。
# インストールされたアプリのバージョンを取得し、すべての「-」を「.」に置き換えます。
installed_version=$(/usr/bin/defaults read \
"$find_app/Contents/Info.plist" CFBundleShortVersionString |
/usr/bin/sed "s/-/./g")
else
installed_version="None"
fi
echo "$installed_version"
}
###################################################################################################
###################################### メインロジック #################################################
###################################################################################################
# すべてのメインロジックはここにあります...リスクを冒して変更してください。
# profiles変数は、PROFILE_PAYLOAD_ID_PREFIX変数のプレフィックスに一致するプロファイルの配列に設定されます。
profiles=$(/usr/bin/profiles show | grep "$PROFILE_PAYLOAD_ID_PREFIX" | sed 's/.*\ //')
# PROFILE_PAYLOAD_ID_PREFIXが見つからない場合、次のエージェントの実行を待つために0で終了します。
if [[ ${#profiles[@]} -eq 0 ]]; then
echo "ID $PROFILE_PAYLOAD_ID_PREFIXのプロファイルは見つかりませんでした..."
echo "プロファイルがインストールされるまで待機しています..."
echo "次のKandjiエージェントのチェックインで再度確認します..."
exit 0
else
echo "プロファイルプレフィックス $PROFILE_PAYLOAD_ID_PREFIX が存在します..."
# findバイナリを使用して、アプリケーションディレクトリ内でアプリを検索します。
find_app="$(/usr/bin/find /Applications -maxdepth 3 -name $APP_NAME)"
ret="$?"
# アプリがインストールされているかどうかを確認します。
if [[ "$ret" -eq 0 ]] && [[ -d "$find_app" ]] &&
[[ "$APP_NAME" == "$(/usr/bin/basename $find_app)" ]]; then
# 前のコマンドがtrueを返し、返されたオブジェクトがディレクトリであり、
# 探しているアプリ名がfindコマンドで見つかったアプリ名と完全に一致する場合。
echo "$find_appが見つかりました..."
# ENFORCED_VERSIONが設定されているかどうかを確認します。設定されていない場合は0で終了します。
if [[ "$ENFORCED_VERSION" == "" ]]; then
echo "最低強制バージョンが設定されていません..."
exit 0
fi
# 現在インストールされているバージョンを取得します
# 上記のAPP_NAME変数をreturn_installed_app_version関数に渡します。
# バージョン番号からピリオドを削除して比較できるようにします。
installed_version="$(return_installed_app_version $APP_NAME | /usr/bin/sed 's/\.//g')"
# バージョン番号からピリオドを削除して比較できるようにします。
enforced_version="$(echo $ENFORCED_VERSION | /usr/bin/sed 's/\.//g')"
# installed_versionがenforced_versionよりも小さいかどうかを確認します。
# 小さい場合は、インストールプロセスを開始するために1で終了します。
if [[ "$installed_version" -lt "$enforced_version" ]]; then
echo "インストールされたアプリのバージョン $installed_version は強制バージョン $ENFORCED_VERSION よりも小さい"
echo "アプリのインストールプロセスを開始します..."
exit 1
else
echo "強制バージョン: $enforced_version"
echo "インストールされたアプリのバージョン: $installed_version"
echo "最低アプリバージョンの強制が満たされました..."
echo "インストーラーを実行する必要はありません..."
exit 0
fi
else
echo "$APP_NAMEがアプリケーションフォルダに見つかりませんでした..."
echo "$APP_NAMEをインストールする必要があります..."
exit 1
fi
fi
exit 0