このドキュメントでは、 Netskope Cloud Exchangeプラットフォームの Risk Exchange モジュールを使用して Jamf v1.0.0 プラグインを設定する方法について説明します。 このプラグインは、Jamf Security Cloud プラットフォーム > デバイス > 管理ページからデバイスを取得するために使用します。 また、デバイス上でリスクレベルの上書きおよびリスクレベルの元に戻す操作を実行することもサポートしています。
Netskopeの正規化スコアの計算:リスクレベルセキュア = 875、リスクレベル低 = 875、リスクレベル中 = 625、リスクレベル高 = 375。
スコアはNetskopeのリスクスコア範囲の中央値に基づいていることに注意してください。例えば、低リスク(751~1000)の中央値は875です。
前提条件
この統合を完了するには、以下が必要です。
- Netskopeテナント(または、例えば本番環境と開発/テスト環境など、複数のテナント)。
- Netskope Cloud Exchangeテナントには、テナントプラグインとリスクエクスチェンジプラグインが既に設定済みです。
- Jamf インスタンス クレデンシャル (アプリケーション ID、アプリケーション シークレット)。
- 以下のホストへの接続: https://radar.wandera.com 。
Jamfプラグインのサポート
このプラグインは、Jamf Security Cloud プラットフォームからデバイスとそれぞれの詳細を取得します。 また、取り外されたデバイスに対して、リスクレベルの上書き、リスクレベルの元に戻す、および何もしないといった操作を実行することもサポートしています。
| 取得したデータの種類 | デバイス |
| サポートされているアクション |
|
マッピング
マッピングは、プルされたデバイスとそれぞれの詳細を表示するために使用されます。 プラグイン設定時にマッピングされたフィールドは、データが取得されるとレコードページに表示されます。以下は、プラグインの設定時に使用すべき推奨マッピングです。 プラグインの設定時に使用してください。
デバイスのプルマッピング
| プラグインフィールドラベル | 想定されるデータ型 | 推奨フィールドラベル | 総合戦略 |
|---|---|---|---|
| デバイスID | String | デバイスID | Unique |
| ユーザー名 | String | ユーザー名 | Overwrite |
| ユーザーの電子メール | String | ユーザーの電子メール | Overwrite |
| デバイス名 | String | デバイス名 | Overwrite |
| デバイスシステムバージョン | String | デバイスシステムバージョン | Overwrite |
| OSタイプ | String | OSタイプ | Overwrite |
| デバイスプラットフォーム | String | デバイスプラットフォーム | Overwrite |
| デバイスリスクカテゴリー | String | デバイスリスクカテゴリー | Overwrite |
| アプリ名 | String | アプリケーション名 | Overwrite |
| アプリバージョン | String | アプリケーションバージョン | Overwrite |
| Netskope正規化スコア | Number | Netskope正規化スコア | Overwrite |
権限
Jamfプラグインの設定およびプルされたデバイスに対する操作を実行するために必要な権限は以下のとおりです。
アプリケーションIDとアプリケーションシークレットが生成されるユーザーは、グローバル管理者である必要があります。
- デバイス
- 設定
APIの詳細
使うAPI一覧
| APIエンドポイント | 方法 | 使うケース |
|---|---|---|
| /v1/login | 役職 | 認証トークンを取得するには |
| /risk/v2/devices | 得る | Jamf プラットフォームからデバイスを取得するには |
| /risk/v1/override | PUT | 取得したデバイスのリスクレベルを上書きする |
認証トークンを取得する
API Endpoint: <Base URL>/v1/login
Method: POST
Headers
| 鍵 | Value |
|---|---|
| ユーザーエージェント | netskope-ce-5.1.0-cre-jamf-v1.0.0 |
Authorization
基本認証
| Username | <Application_ID> |
| パスワード | <Application_secret> |
Sample API Response
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjdXN0b21lcl9pZCI6ImMwZmUzNmU2LWNhNDUtNGFkNS05OWM3LTBjM2NjODliZDU2NiIsImlhdCI6MTcyNTg2MDg1NSwiZXhwIjoxNzI1ODYxNzU1LCJhdWQiOiJSSVNLX0FQSSIsImNsaWVudF9pZCI6IjRhMTk3MzExLTI0ZGUtNDQxZi1iYTRkLTNjOTc4YzY4MjQ0NyIsImFub255bWl6ZWQiOmZhbHNlfQ._FRbcbpo02VFZOUc1j0kj8-geXIKI2U9un9f6i_Qrss"
}
デバイスの取得
API Endpoint: <Base URL>/risk/v2/devices
Method: GET
Headers:
| 鍵 | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.1.0-cre-jamf-v1.0.0 |
Parameters
| 鍵 | Value |
|---|---|
| page | 0 |
| pageSize | 99 |
Sample API Response
{
"customerId": "c0fe36e6-ca45-4ad5-99c7-0c3cc89bd566",
"userDeviceList": [
{
"guid": "7d827d40-81a4-4016-8b40-d7048c1e2660",
"externalId": null,
"phoneNumber": null,
"user": {
"email": "sam@gmail.com",
"name": "Gary Jenkins"
},
"joinDate": 1724285780379,
"status": "ACTIVE",
"traffic": {
"lastTrafficRun": 0
},
"info": {
"location": {
"isoCountry": "us"
},
"lastStatusUpdateTime": 1724415515771,
"device": {
"deviceName": "24566f91-3313-4357-8820-c70f00faa828",
"deviceSystemVersion": "14",
"osType": "ANDROID",
"platform": null
},
"app": {
"name": null,
"version": "11.55.0.0"
}
},
"hardwareSpec": {
"platform": "Other Android",
"version": null,
"osType": "ANDROID"
},
"statusUpdate": {
"connector": null,
"device": {
"payload": {},
"lastStatusUpdateUtcMs": 1724415515771
}
},
"connectorState": "UNMANAGED",
"riskCategory": "SECURE",
"group": "",
"deploymentState": "NONE",
"lastPrivateAccessDnsTraffic": 0,
"lastDnsTraffic": 1724421490768
},
{
"guid": "d0f8d97e-11b1-4a0b-8fa6-2d03cee50c21",
"externalId": null,
"phoneNumber": null,
"user": {
"email": "sam@gmail.com",
"name": "Gary Jenkins"
},
"joinDate": 1723247393856,
"status": "ACTIVE",
"traffic": {
"lastTrafficRun": 0
},
"info": {
"location": {
"isoCountry": "US"
},
"lastStatusUpdateTime": 1725834090308,
"device": {
"deviceName": "f2d374f2-18f6-46d3-b650-1fd1f0bc59e4",
"deviceSystemVersion": "16.6.1",
"osType": "IOS",
"platform": null
},
"app": {
"name": null,
"version": "11.37.0"
}
},
"hardwareSpec": {
"platform": "Apple iPad",
"version": null,
"osType": "IOS"
},
"statusUpdate": {
"connector": null,
"device": {
"payload": {},
"lastStatusUpdateUtcMs": 1725834090308
}
},
"connectorState": "UNMANAGED",
"riskCategory": "MEDIUM",
"group": "",
"deploymentState": "NONE",
"lastPrivateAccessDnsTraffic": 0,
"lastDnsTraffic": 1725859823210
}
],
"linkTemplates": {}
}
取得したデバイスのリスクレベルを上書きする
API Endpoint: <Base URL>/risk/v1/override
Method: PUT
Headers:
| 鍵 | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| ユーザーエージェント | netskope-ce-5.1.0-cre-jamf-v1.0.0 |
Body
{
"risk": "HIGH",
"source": "MANUAL",
"deviceIds": []
}
パフォーマンスマトリックス
以下は、下記の仕様を持つ大規模CEスタック上で50万台のデバイスを使用して実施したパフォーマンスマトリックスです。
| スタックサイズ | 大容量 RAM: 32 GB コア: 16 |
| 取得および更新されたホストレコードを保存するのに要した時間 | 約50分 |
ユーザーエージェント
netskope-ce-5.1.0-cre-jamf-v1.0.0
ワークフロー
- グローバル管理者ユーザーに権限を追加します。
- アプリケーションIDとアプリケーションシークレットを取得してください。
- Configure Netskope Tenant and Plugin.
- Jamfプラグインを設定します。
- ビジネスルールを追加します。
- アクションを追加します。
- プラグインを検証する
再生ボタンをクリックして動画をご覧ください。
グローバル管理者ユーザーに権限を追加する
- Jamf プラットフォームにログインします。 右上隅をクリックし、次にView all accountsをクリックします。

- Administration .
をクリックしてください
- ユーザーの場合はActions > Editをクリックしてください。

- Select Devices と Settingsを選んでから Saveをクリックします。

アプリケーションIDとアプリケーションシークレットを取得してください
- メニューに Icon > Integrations > Risk API。

- Generate API key .
をクリックしてください
- 名前を入力してGenerate API Keyをクリックしてください。

- アプリケーションIDとアプリケーションシークレットを プラグイン設定にコピーしてください。

Jamfプラグインの設定
- Cloud Exchangeにログインして Settings > Pluginsへ行ってください。Jamf v1.0.0 (CRE)プラグインボックスを検索して選択します。

- 基本情報には、プラグイン構成名を入力し、必要に応じて同期間隔を変更してください。

- Nextをクリックしてください。ベースURL、アプリケーションID、およびアプリケーションシークレットを入力してください。

- Nextをクリックしてください。エンティティのドロップダウンリストからエンティティSelect 。エンティティフィールドは、スキーマエディタページから作成することも、 フィールドドロップダウンの+ Add Fieldオプションから作成することもできます。 現場のマッピング情報を提供してください。推奨されるマッピングについては、「マッピング」セクションを参照してください。
デバイスをプルし、プルされたデバイスに対してアクションを実行するには、デバイス ID フィールドが必要であることに注意してください。
- Save .
をクリックしてください
Jamf のリスク交換ビジネスルールを追加する
- Risk ExchangeでBusiness Rulesに移動してください。
- 右上隅のCreate New Ruleクリックしてください。
- ルール名を入力し、Jamfプラグイン用にフィールドが設定されているエンティティを選択してから、要件に基づいてクエリを設定します。以下の例では、ユーザー名に Gary を含むデバイスを取得します。

- Save .
をクリックしてください
Jamf のリスク交換アクションを追加する
Jamfプラグインは以下のアクションタイプをサポートしています。
- 何もしない:このアクションに対しては何も行われません。ユーザーは、CTOでUBAアラートを生成するには この操作を行い、 「アラートの生成」トグルを有効にします。
- リスクレベルの上書き:リスクレベルの上書き機能を使用すると、アクションが実行されるデバイスに新しいリスクレベルが割り当てられます。
- リスクレベルを元に戻す:リスクレベルを元に戻すと、デバイス作成時に存在していたリスクレベルが割り当てられます。
なお、Jamfから取得したデバイスに対しては、Netskopeテナント上で操作を実行できます。
リスクレベルを上書きする
- Risk ExchangeでActionsに移動し、 Add Action Configurationをクリックします。
- それぞれのドロップダウンメニューから、ビジネスルールと設定(プラグイン) Select 。
- 「アクション」には、ドロップダウンメニューからOverride Risk Levelを選択してください。
- デバイスに対して操作を実行する前に承認が必要な場合は、 「承認が必要」トグルを有効にしてください。
注記
- プラグインの構成中にデバイス ID にマップされたフィールドは、デバイス上でアクションを実行するために必要になります。
- ドロップダウンで [静的] を選択した場合は、カンマ区切りのデバイス ID を指定します。

- Save .
をクリックしてください
リスクレベルを元に戻す
- Risk ExchangeでActionsに移動し、 Add Action Configurationをクリックします。
- それぞれのドロップダウンメニューから、ビジネスルールと設定(プラグイン) Select 。
- 「アクション」には、ドロップダウンメニューからRevert Risk Levelを選択してください。
- デバイスに対して操作を実行する前に承認が必要な場合は、 「承認が必要」トグルを有効にしてください。
注記
- プラグインの構成中にデバイス ID にマップされたフィールドは、デバイス上でアクションを実行するために必要になります。
- ドロップダウンで [静的] を選択した場合は、カンマ区切りのデバイス ID を指定します。


- Save .
をクリックしてください
No Action
- Risk ExchangeでActionsに移動し、 Add Action Configurationをクリックします。
- それぞれのドロップダウンメニューから、ビジネスルールと設定(プラグイン) Select 。
- 「アクション」では、ドロップダウンメニューからNo actions選択し、必要に応じて「アラート生成」トグルボタンを有効にして、CTOモジュールでアラートを生成してください。
- デバイスに対して操作を実行する前に承認が必要な場合は、 「承認が必要」トグルを有効にしてください。
注記
- プラグインの構成中にデバイス ID にマップされたフィールドは、デバイス上でアクションを実行するために必要になります。
- ドロップダウンで [静的] を選択した場合は、カンマ区切りのデバイス ID を指定します。

- Save .
をクリックしてください
Jamfプラグインを検証する
Cloud Exchangeで検証する
Cloud Exchange でのプルを検証するには:
- Risk ExchangeでRecordsに移動してください。デバイスのフィールド マッピングの構成中に選択したエンティティSelect 、プルされたデバイスを表示します。

- Loggingに移動して、プラグインのログを検索してください。

- Loggingで、デバイスに対して実行されたアクションを確認します。

Jamfで検証する
デバイスは、Jamf プラットフォームの[デバイス] > [管理]ページから取得されます。
リスクレベルの上書きアクションを検証したい場合は、 Devices > Manageに移動して、リスクレベルが更新されたかどうかを確認してください。ユーザーの現在のレベルを確認し、アクションがトリガーされた後の更新されたレベルを確認できます。
リスクレベルの元に戻す操作を検証したい場合は、 Devices > Manageに移動して、リスクレベルが更新されたかどうかを確認してください。

Jamfプラグインのトラブルシューティング
Jamfプラグインの設定ができません
Jamfプラグインの設定ができない場合は、アプリケーションIDとアプリケーションシークレットが正しく入力されていないことが原因である可能性があります。
この問題を解決するには、アプリケーションIDとアプリケーションシークレットが正しいことを確認してください。
デバイスを取得できません
Jamfプラグインからデバイスを取得できない場合、以下のいずれかの理由が考えられます。
- Jamf プラットフォームにデバイスが存在しません。
- プラットフォームからデバイスを取得する際にエラーが発生しました。
- エンティティソースページでプラグインを設定する際に、マッピングは追加されません。
これらの問題を解決するには、以下の手順に従ってください。
- Jamf プラットフォームでデバイスが存在するかどうかを確認します。 デバイスが存在するかどうかを確認するには、 Jamf での検証の手順に従ってください。
- 500エラーを受信しました:サーバーがダウンしている可能性があります。しばらく待ってから再度確認してください。
- 403 エラーの受信: プラグイン構成パラメータに十分な権限がないか、クレデンシャルが存在しません。
- プラグインの設定時に、マッピングが追加され、 IDフィールドがマッピングされていることを確認してください。
Jamf で操作を実行できません
デバイス上で操作を実行できない場合、以下のいずれかの理由が考えられます。
- 操作の実行中にエラーが発生しました。
- デバイスが Jamf プラットフォームに存在しません。
- アクションの設定中に「承認が必要」のトグルが有効になっているにもかかわらず、リクエストが承認されていない。
これらの問題を解決するには、以下の手順に従ってください。
- Loggingページに表示されているエラーを確認し、解決を試みてください。
- Jamf プラットフォームに移動し、アクションを実行する必要があるデバイスが存在するかどうかを確認します。
- Action Logsに移動し、リクエストを承認したいログを選択して、承認アイコンをクリックします。または、設定済みのアクションから「承認が必要」のトグルを無効にして、アクションを再度実行してください。
レコード上でデバイスの詳細を表示できません
レコードテーブルでデバイスの詳細を表示できない場合は、以下のいずれかの理由が考えられます。
- Jamfプラグインの設定時に、すべてのJamfフィールドのマッピングが提供されませんでした。
- プルされたデバイスは、カンマ区切りの値で一行に表示されます。
これらの問題を解決するには、以下の手順に従ってください。
- プラグインの設定時には、必要なマッピングを必ず指定してください。
- エンティティに作成されたフィールドがマッピングに従っていることを確認してください。

