イルは以前はカンジとして知られていた。
この記事では、Big Sur を実行している macOS デバイスにNetskope Clientをデプロイする手順、またはその後 IdP として Kandji MDM を使用する手順を説明します。 このプロセスにより、テナント証明書、システム拡張機能、ネットワーク拡張機能の展開時に、ユーザーとのやり取りを最小限に抑えることができます。
展開の前提条件
- Netskopeのルート証明書と中間証明書をダウンロードしてください。
- NetskopeサポートポータルからVPNプロキシアプリのスクリプトをダウンロードしてください。これは、Big Sur 以降を実行している macOS デバイスに必要です。
- Kandjiへの管理者アクセス権限。
- Netskopeの管理者権限。
- Netskopeを使用したIdPの設定(IdP主導の登録用)。
- KandjiとのIdPユーザー統合設定(Kandjiユーザー割り当て登録用)。
- NetskopeとあなたのIDP間でSAML認証を設定してください。
始める前に
デプロイを開始する前に、以下の手順を実行して、必要な証明書と構成ファイルを Kandji にアップロードし、クライアントを正常にインストールおよびアクティブ化してください。
Netskope証明書をダウンロードする
-
管理者権限でNetskope WebUIにログインし、 Settings > Manage > Certificatesに移動します。
-
Signing CAタブをクリックして、Netskope ルート証明書と Netskope 中間証明書の両方をダウンロードしてください。

-
ダウンロードした証明書を.cer形式に変換します。.pem の名前を変更してフォーマットするファイルを.cer形式に変換します。
Netskope証明書をKandjiにアップロードする
Kandjiに証明書をアップロードするには:
重要
Netskopeルート証明書とNetskope中間証明書のアップロードは必須です。
- Kandjiにログインして、 Library > Add Newに移動してください。

- ドロップダウン メニューからProfiles Select 。
- Certificate > Add and Configureをクリック

- Upload Netskope Root Certificate (.cer format).
- Enter a name for this certificate, for example: Netskope Root Certificate
- Certificate Type PKCS#1-formatted certificateとしてSelect 。
- .cerファイルをドラッグアンドドロップします証明書をアップロードボックスに入力してください。

- Netskopeテナント証明書をアップロードするには、この手順を繰り返してください。アップロードする際は、例えば「Netskope テナント証明書」のように名前を付けてください。
KandjiにVPN設定をアップロードする
- Library > Add New > カスタムプロファイルに移動してください。
- Add and Configureをクリックしてください。
- 名前を入力してください。
- Netskopeサポートから AppVPNプロキシスクリプト をダウンロードしてください。
- zipファイルを解凍し、 .mobileconfigファイルをアップロードしてください。ファイル。

システム拡張プロファイルを追加する
- Libraryに移動し、ドロップダウンメニューからProfilesを選択します。
- Select System Extension して Add and Configureをクリックします。

- システム拡張機能には以下を指定してください。
- 「一般」で、チェックボックスを選択してAllow Users to approve system extension sを有効にします。
- チーム識別子: 24W52P9M7W
- Name (optional): Netskope
- システム拡張機能のドロップダウンメニューからAllow all system extensionsを選択してください。

Netskopeスタートアップおよびバックグランド項目を無効にしないようにする
- Library > Add Newに移動してください(既存のログインとバックグラウンド項目に Netskope の設定を追加することもできます)。

- ドロップダウンメニューからProfiles > Login & Background Items > Add & Configur Select 。

- ログイン項目とバックグランド項目に次を指定します。
- 名前を入力してください。たとえば、ログインとバックグランドのアイテムです。
- Add Background Itemをクリックして、以下の詳細を入力してください。

- 識別子タイプ: チーム識別子
- Identifier: 24W52P9M7W
- コメント: Netskope Client

- Saveをクリックしてください。
Kandjiでプライバシー設定を許可する
-
Library > Add Newに移動します(既存のPrivacy ライブラリ項目に Netskope の設定を追加することもできます)。
-
ドロップダウンメニューからProfiles > Privacy > Add & Configure Select 。
-
APP ACCESSの下に、以下を作成します。
Privacy setting #1
-
Identifier Type: バンドルID
-
Identifier:
com.netskope.client.Netskope-Client -
Code Requirement:
anchor apple generic and identifier "com.netskope.client.Netskope-Client" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "24W52P9M7W")
-
App or Service: Accessibility と SystemPolicyAllFilesを許可します。

Privacy setting #2
-
Identifier Type: バンドルID
-
Identifier:
com.netskope.epdlp.client -
Code Requirement:
anchor apple generic and identifier "com.netskope.epdlp.client" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "24W52P9M7W")
-
App or Service: Allow SystemPolicyAllFiles

詳しくはこちら: エンドポイントDLPの有効化 オンmacOSのNetskope Client.
プライバシー設定 #3
-
Identifier Type: バンドルID
-
Identifier:
com.netskope.client.Netskope-Client.NetskopeClientMacAppProxy -
Code Requirement:
anchor apple generic and identifier "com.netskope.client.Netskope-Client.NetskopeClientMacAppProxy" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "24W52P9M7W")
-
App or Service: Allow SystemPolicyAllFiles

-
展開手順
必要な証明書とファイルを追加したら、デプロイメントスクリプトを開始する準備が整います。 事前に構築されたスクリプト このセクションに記載されている手順に従ってください。
Kandjiは以下の種類のデプロイ方法をサポートしています。
- シングルユーザーモードでのIdP(アイデンティティプロバイダー)の導入。
- マルチユーザーモードでのIdP(アイデンティティプロバイダー)の導入。
- Kandjiで割り当てられたユーザーによるデプロイ。
Netskopeは、3つの導入方法に関するドキュメントを提供しています。組織にとって最適な方法を選択し、そのセクションの指示に従ってください。これらの展開方法のどちらも組織に適用できない場合は、コンタクトNetskopeに追加のサポートを依頼してください。
オプション 1: IdP を使用する
- シングルユーザーおよびマルチユーザーのデバイス登録に対応しています。
- クライアント登録を有効にするには、NetskopeテナントにSAMLフォワードプロキシが既に設定されている必要があります。
- 多要素認証(MFA)に対応しています。
オプション 2: 割り当てられたユーザーのKanjiを使う
- Netskope Clientエンドユーザーの操作なしにサイレントインストールします。
- シングルユーザーモードでの登録をサポートします。
- 管理者はIdPからKandjiユーザーを取得する必要があります。詳細については、 Iruのドキュメントをご覧ください。
- 各デバイスを、登録予定のユーザーに割り当ててください。
- ゼロタッチ展開時に、IdP認証による自動ユーザー割り当てをサポートします。
Kandjiにデプロイメントスクリプトを追加する
必要な証明書とファイルをアップロードする手順が完了したら、Kandji にデプロイメント スクリプトを追加する作業を開始できます。 Netskope事前構築済み展開スクリプトを使用できます。
デプロイメントスクリプトは、Netskope Clientをエンドユーザーデバイスに展開するために必要な、監査スクリプトと修復スクリプトの組み合わせです。
- 監査スクリプトは、エンドユーザーのデバイスにNetskope Clientがインストールされているかどうかを確認します。
- 修復スクリプトは、クライアントがインストールされていないエンドユーザーデバイスにクライアントをインストールします。
監査スクリプトは、どの導入方法でも同じです。Kanji Library アイテムを作成し、監査スクリプトを追加することで開始できます。
-
Library > Add Newへ移動してください。

-
Select Custom Script して Add &Configureをクリックします。

-
以下のパラメータを使用してカスタムスクリプトを作成します。
-
名前:任意の名前を入力してください。例えば、 Netskope Clientインストール。
-
実行頻度:ご自身の環境に適した値を設定してください。Netskopeは、この値を「毎日」または「15分」に設定することを推奨しています。
-
-
Audit Scriptテキストボックスに以下のスクリプトを入力してください。
#!/bin/bash #script for installing NSAgent on OSX machines #will check to see if Netskope is Installed function Test_NSClient(){ xz=$(/usr/bin/mdfind kMDItemFSName == Netskope Client.app -onlyin /Library/Application\ Support/) if [ -e "$xz" ]; then echo "$xz found netskope client is installed" exit 0 else echo "client does not exist" exit 1 fi } Test_NSClient #end script
-
+Add Remediation scriptをクリックして、次のスクリプトを追加してください。
修復スクリプトは、選択した登録方法によって異なります。-
Remediation Script for IdP enrollment
-
XXXXXとマークされた値をテナントのドメイン名に、YYYYYとマークされた値をテナント名に置き換えてください。
-
spDomain= <tenant-domain>例:goskope.com -
spTenant = <tenant-name>例: テナントの URL が example.goskope.com の場合、次にexampleのみを入力してください。 -
シングルユーザーモードでの通常インストールをご希望の場合は、その他の変更は必要ありません。
-
マルチユーザーモードでインストールする場合は、「perusermode=0」を「perusermode=1」に変更してください。
-
-
セキュア登録が有効になっている場合は、認証および暗号化登録トークンをテナントのWebUIで生成されたトークンに置き換えてください。
-
enrollencryptiontoken=<encryption token> -
enrollauthtoken=<authentication token>
セキュア登録が有効になっていない場合、スクリプトには次の値が表示されます。
-
enrollencryptiontoken=0 -
enrollauthtoken=0
-
#!/bin/bash #Script for installing Netskope Client on OSX machines #function will install Netskope Client function Ins_NSClient(){ ag="NSClient.pkg" spDomain="XXXXX" spTenant="YYYYY" perusermode=0 # put 0 for normal installation, put 1 for per user config # Initialize variables for the mandate failclose enforceFailClose=0 # put 1 for enabling enforce enrollemnt steeringProfileID_val="" frequency_val="5" # Set default value host_val="" #addon url token_val="" #org id # end for mandate failclose variables echo "Downloading NsAgent..." curl -o /tmp/$ag https://download.goskope.com/dlr/mac/get echo "will now add config file..." mkdir -p "/Library/Application Support/Netskope/STAgent" NSIDPCONFIG_FILE_PATH="/Library/Application Support/Netskope/STAgent/nsidpconfig.json" NSUSERCONFIG_JSON_FILE="/Library/Application Support/Netskope/STAgent/nsuserconfig.json" echo "{ \"serviceProvider\": { \"domain\": \"$spDomain\", \"tenant\": \"$spTenant\" } }" > "${NSIDPCONFIG_FILE_PATH}" # Determine the string value for enablePerUserConfig based on the perusermode flag. per_user_enabled="false" if [ $perusermode -eq 1 ]; then per_user_enabled="true" fi if [[ $perusermode -eq 1 || $enforceFailClose -eq 1 ]]; then json_config="{\"nsUserConfig\":{\"enablePerUserConfig\": ${per_user_enabled}, \"configLocation\": \"~/Library/Application Support/Netskope/STAgent\"" mkdir -p "/Library/Application Support/Netskope/STAgent" # Conditionally add host and token directly under nsUserConfig json_config="$json_config, \"host\": \"$host_val\"" json_config="$json_config, \"token\": \"$token_val\"" if [ $enforceFailClose -eq 1 ]; then echo "Enforce fail close option is provided" json_config="$json_config, \"enforceEnrollment\": {" json_config="$json_config \"steeringProfileID\": \"$steeringProfileID_val\"" json_config="$json_config, \"frequency\": \"$frequency_val\"" json_config="$json_config }" # Close the nested object fi # Add the remaining static parts and close the main JSON object json_config="$json_config, \"autoupdate\": \"true\"$fail_close_option}}" # Write the final, valid JSON to the file echo "$json_config" > "${NSUSERCONFIG_JSON_FILE}" fi echo "Installing Agent..." installer -dumplog -pkg /tmp/$ag -target / && rm /tmp/$ag } # Function to create JSON file with provided tokens Create_Json() { # Create directory if it doesn't exist mkdir -p $TEMP_BRANDING_DIR # Delete previous enroll.conf if it exists if [[ -f "$TEMP_ENROLLMENT_TOKEN_FILE" ]]; then rm "$TEMP_ENROLLMENT_TOKEN_FILE" fi local a=$1 #auth token local b=$2 #encryption token # Check if parameters are 32 characters hexadecimal if ! [[ "$a" =~ ^[a-fA-F0-9]{32}$ ]] && [[ "$a" != "0" ]]; then echo "Invalid auth token: must be 32 hexadecimal characters" return 1 fi if ! [[ "$b" =~ ^[a-fA-F0-9]{32}$ ]] && [[ "$b" != "0" ]]; then echo "Invalid encryption token: must be 32 hexadecimal characters" return 1 fi # Start the JSON structure echo "{" > $TEMP_ENROLLMENT_TOKEN_FILE #if both token is present if [[ "$a" != "0" && "$b" != "0" ]]; then echo "\"enrollauthtoken\": \"$a\"," >> $TEMP_ENROLLMENT_TOKEN_FILE echo "\"enrollencryptiontoken\": \"$b\"" >> $TEMP_ENROLLMENT_TOKEN_FILE # only encryption token present elif [[ "$a" == "0" && "$b" != "0" ]]; then echo "\"enrollencryptiontoken\": \"$b\"" >> $TEMP_ENROLLMENT_TOKEN_FILE #only authtoken present elif [[ "$b" == "0" && "$a" != "0" ]]; then echo "\"enrollauthtoken\": \"$a\"" >> $TEMP_ENROLLMENT_TOKEN_FILE else echo "Unsupported use case" fi # End the JSON structure echo "}" >> $TEMP_ENROLLMENT_TOKEN_FILE chmod 700 "$TEMP_ENROLLMENT_TOKEN_FILE" echo "enroll.conf created with provided tokens." } # Main script execution #update these tokens to valid tokens enrollencryptiontoken=0 enrollauthtoken=0 TEMP_BRANDING_DIR="/tmp/nsbranding" TEMP_ENROLLMENT_TOKEN_FILE="$TEMP_BRANDING_DIR/enroll.conf" # Check if atleast one of the token is present, then create enroll.conf if [[ "$enrollencryptiontoken" != "0" || "$enrollauthtoken" != "0" ]]; then echo "Using secure enrollment" Create_Json "$enrollauthtoken" "$enrollencryptiontoken" else echo "Not using secure enrollment" # Delete previous enroll.conf if it exists if [[ -f "$TEMP_ENROLLMENT_TOKEN_FILE" ]]; then rm "$TEMP_ENROLLMENT_TOKEN_FILE" fi fi Ins_NSClient #end script -
-
Remediation script for Kandji assigned user
-
セキュア登録が有効になっている場合は、認証および暗号化登録トークンをテナントのWebUIで生成されたトークンに置き換えてください。
-
enrollencryptiontoken=<encryption token> -
enrollauthtoken=<authentication token>
セキュア登録が有効になっていない場合、スクリプトには次の値が表示されます。
-
enrollencryptiontoken=0 -
enrollauthtoken=0
-
-
XXXXX とマークされた値をテナント URL に、YYYYY を組織 ID に置き換えてください。
-
tenantUrl= addon-<tenant url>例: テナントの URL が example.goskope.com の場合、その場合は addon-example.goskope.com になります。 -
orgKey = <Organization ID>これは、Netskope テナントの次の場所にあります: 設定 > セキュリティ クラウド プラットフォーム > MDM 配布 > iOS 用展開リソース > VPN 構成の作成 > 組織 ID: YYYYY
#!/bin/bash #Script for installing Netskope Client on OSX machines by the Kandji assigned user #function will install Netskope Client function Ins_NSClient(){ ag="NSClient.pkg" tenantUrl="addon-XXXXX" emailAddress="$(/usr/libexec/PlistBuddy -c 'print :EMAIL' /Library/Managed\ Preferences/io.kandji.globalvariables.plist)" orgKey="YYYYY" echo "will now add config file..." mkdir -p "/tmp/nsbranding" NSINSTPARAM_JSON_FILE="/tmp/nsbranding/nsinstparams.json" echo "{\"TenantHostName\":\"$tenantUrl\", \"Email\":\"$emailAddress\", \"OrgKey\":\"$orgKey\"}" > "${NSINSTPARAM_JSON_FILE}" echo "Downloading NsAgent..." curl -o /tmp/$ag https://download.goskope.com/dlr/mac/get echo "Installing Agent..." installer -dumplog -pkg /tmp/$ag -target / && rm /tmp/$ag echo "Cleaning up..." } # Function to create JSON file with provided tokens Create_Json() { # Create directory if it doesn't exist mkdir -p $TEMP_BRANDING_DIR # Delete previous enroll.conf if it exists if [[ -f "$TEMP_ENROLLMENT_TOKEN_FILE" ]]; then rm "$TEMP_ENROLLMENT_TOKEN_FILE" fi local a=$1 #auth token local b=$2 #encryption token # Check if parameters are 32 characters hexadecimal if ! [[ "$a" =~ ^[a-fA-F0-9]{32}$ ]] && [[ "$a" != "0" ]]; then echo "Invalid auth token: must be 32 hexadecimal characters" return 1 fi if ! [[ "$b" =~ ^[a-fA-F0-9]{32}$ ]] && [[ "$b" != "0" ]]; then echo "Invalid encryption token: must be 32 hexadecimal characters" return 1 fi # Start the JSON structure echo "{" > $TEMP_ENROLLMENT_TOKEN_FILE #if both token is present if [[ "$a" != "0" && "$b" != "0" ]]; then echo "\"enrollauthtoken\": \"$a\"," >> $TEMP_ENROLLMENT_TOKEN_FILE echo "\"enrollencryptiontoken\": \"$b\"" >> $TEMP_ENROLLMENT_TOKEN_FILE # only encryption token present elif [[ "$a" == "0" && "$b" != "0" ]]; then echo "\"enrollencryptiontoken\": \"$b\"" >> $TEMP_ENROLLMENT_TOKEN_FILE #only authtoken present elif [[ "$b" == "0" && "$a" != "0" ]]; then echo "\"enrollauthtoken\": \"$a\"" >> $TEMP_ENROLLMENT_TOKEN_FILE else echo "Unsupported use case" fi # End the JSON structure echo "}" >> $TEMP_ENROLLMENT_TOKEN_FILE chmod 700 "$TEMP_ENROLLMENT_TOKEN_FILE" echo "enroll.conf created with provided tokens." } # Main script execution #update these tokens to valid tokens enrollencryptiontoken=0 enrollauthtoken=0 TEMP_BRANDING_DIR="/tmp/nsbranding" TEMP_ENROLLMENT_TOKEN_FILE="$TEMP_BRANDING_DIR/enroll.conf" # Check if atleast one of the token is present, then create enroll.conf if [[ "$enrollencryptiontoken" != "0" || "$enrollauthtoken" != "0" ]]; then echo "Using secure enrollment" Create_Json "$enrollauthtoken" "$enrollencryptiontoken" else echo "Not using secure enrollment" # Delete previous enroll.conf if it exists if [[ -f "$TEMP_ENROLLMENT_TOKEN_FILE" ]]; then rm "$TEMP_ENROLLMENT_TOKEN_FILE" fi fi Ins_NSClient #end script -
-
-
-
Saveをクリックしてください。
Kandjiグローバル変数用のカスタムプロファイルを追加する
まず、.plist ファイルをデプロイする必要があります。修復スクリプトを実行するために、ファイルをローカルデバイスに転送します。スクリプトは .plist を使用します インストール中にファイルを作成し、あらゆるデバイスのユーザーを識別します。
注記
サポート ポータルから Kandji-Global-Variables.mobileconfig ファイルをダウンロードしてください。
カスタムプロファイルを追加するには:
- Library > Add Newへ移動してください。

- ドロップダウンメニューからProfiles > Custom Profile Select 。
- Add & Configureをクリックしてください。
- プロフィール名を入力してください。例えば、カンジグローバル変数など。
- Upload the downloaded Kandji-Global-Variables.mobileconfig file.

- Saveをクリックしてください。
新しい Kandji ライブラリアイテムを BlueprintKandji に適用する
Netskopeは、Netskope Clientが想定どおりにデプロイされることを確認するために、テストブループリントを作成することを推奨します。
- ブループリントに移動してください。
- 「有効なもののみ表示」の横にあるチェックボックスのチェックを外してください。

- 以下の項目を有効にするには、切り替えてください。
- Netskopeルート証明書(プロファイル/証明書)
- Netskope Tenant Certificate(Profiles / Certificates)
- Netskope-AppProxyVPN(カスタムプロファイル)
- Netskopeシステム拡張機能(システム拡張機能)
- ログイン&バックグランドアイテム(ログイン&バックグランドアイテム)
- Netskope Client (カスタムスクリプト)をインストールする
- Kandjiグローバル変数(カスタムプロファイル)***** Kandjiが割り当てたユーザーによる登録の場合にのみ必要です
- Saveをクリックしてください。

