Ce document explique comment configurer le plugin Jamf v1.0.0 avec le module Risk Exchange de la plateforme Netskope Cloud Exchange. Ce plugin est utilisé pour récupérer le périphérique de la plateforme Jamf Security Cloud > périphérique > Manage page. Il permet également d'effectuer les actions Override Risk Level et Revert Risk Level sur le périphérique.
Calcul du score de normalisation de Netskope : Niveau de risque sécurisé = 875, niveau de risque faible = 875, niveau de risque moyen = 625, niveau de risque élevé = 375.
Notez que les scores sont basés sur la médiane des plages de scores de risque de Netskope, par exemple, le score faible (751-1000) a une médiane de 875.
Conditions préalables
Pour réaliser cette intégration, vous avez besoin de :
- Un locataire Netskope (ou plusieurs, par exemple des instances de production et de développement/test).
- A Netskope Cloud Exchange tenant with the Tenant plugin and Risk Exchange plugin already configured.
- Les informations d'identification de l'instance Jamf (ID de l'application, secret de l'application).
- Connexion à l'hôte suivant : https://radar.wandera.com.
Support du plugin Jamf
Ce plugin récupère les périphériques et leurs détails respectifs depuis la plateforme Jamf Security Cloud. Il permet également d'effectuer les actions Override Risk Level, Revert Risk Level et No sur le périphérique tiré.
| Type de données extraites | Périphériques |
| Actions soutenues |
|
Mises en correspondance
La cartographie sera utilisée pour visualiser les périphériques tirés et leurs détails respectifs. Les champs mappés lors de la configuration du plugin seront visibles sur la page Enregistrements une fois les données extraites. Vous trouverez ci-dessous la cartographie suggérée qui doit être utilisée lors de la configuration du plugin.
Pull Mapping pour périphérique
| Étiquette du champ du plugin | Type de données attendu | Étiquette suggérée pour le champ | Stratégie globale |
|---|---|---|---|
| périphérique ID | String | périphérique ID | Unique |
| Nom de l'utilisateur | String | Nom de l'utilisateur | Overwrite |
| Courriel de l'utilisateur | String | Courriel de l'utilisateur | Overwrite |
| périphérique Nom | String | périphérique Nom | Overwrite |
| périphérique System Version | String | périphérique System Version | Overwrite |
| Type de système d'exploitation | String | Type de système d'exploitation | Overwrite |
| périphérique Platform | String | périphérique Platform | Overwrite |
| périphérique Catégorie de risque | String | périphérique Catégorie de risque | Overwrite |
| Nom de l'application | String | Nom de l'application | Overwrite |
| Version de l'application | String | Version de l'application | Overwrite |
| Score normalisé de Netskope | Number | Score normalisé de Netskope | Overwrite |
Permissions
Voici les autorisations nécessaires pour configurer le plugin Jamf et effectuer des actions sur le périphérique tiré.
L'utilisateur pour lequel l'identifiant et le secret de l'application sont générés doit être un administrateur global.
- Périphériques
- Paramètres
Détails de l'API
Liste des API utilisées
| Point final de l'API | Méthode | Cas d'utilisation |
|---|---|---|
| /v1/login | PUBLIER | Pour obtenir un jeton d'authentification |
| /risk/v2/devices | OBTENIR | Pour récupérer le périphérique de la plateforme Jamf |
| /risk/v1/override | PUT | Pour remplacer le niveau de risque du périphérique recherché |
Obtenir un jeton d'authentification
API Endpoint: <Base URL>/v1/login
Method: POST
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-5.1.0-cre-jamf-v1.0.0 |
Authorization
Authentification de base
| Username | <Application_ID> |
| Mot de passe | <Application_secret> |
Sample API Response
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjdXN0b21lcl9pZCI6ImMwZmUzNmU2LWNhNDUtNGFkNS05OWM3LTBjM2NjODliZDU2NiIsImlhdCI6MTcyNTg2MDg1NSwiZXhwIjoxNzI1ODYxNzU1LCJhdWQiOiJSSVNLX0FQSSIsImNsaWVudF9pZCI6IjRhMTk3MzExLTI0ZGUtNDQxZi1iYTRkLTNjOTc4YzY4MjQ0NyIsImFub255bWl6ZWQiOmZhbHNlfQ._FRbcbpo02VFZOUc1j0kj8-geXIKI2U9un9f6i_Qrss"
}
Recherche d'un périphérique
API Endpoint: <Base URL>/risk/v2/devices
Method: GET
Headers:
| Clé | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| User-Agent | netskope-ce-5.1.0-cre-jamf-v1.0.0 |
Parameters
| Clé | 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": {}
}
Remplacer le niveau de risque de Fetched périphérique
API Endpoint: <Base URL>/risk/v1/override
Method: PUT
Headers:
| Clé | Value |
|---|---|
| Authorization | Bearer <Bearer Token> |
| User-Agent | netskope-ce-5.1.0-cre-jamf-v1.0.0 |
Body
{
"risk": "HIGH",
"source": "MANUAL",
"deviceIds": []
}
Matrice de performance
Vous trouverez ci-dessous la matrice de performance réalisée sur une grande pile CE avec les spécifications mentionnées ci-dessous en tirant un périphérique de 500K.
| Taille de la pile | Grandes dimensions RAM : 32 GB Cœur : 16 |
| Temps nécessaire pour stocker les enregistrements d'hôtes tirés et mis à jour | ~50 minutes |
Agent utilisateur
netskope-ce-5.1.0-cre-jamf-v1.0.0
Workflow
- Ajoutez des autorisations à l'utilisateur Global Admin.
- Obtenez votre identifiant et votre secret de candidature.
- Configure Netskope Tenant and Plugin.
- Configurez le plugin Jamf.
- Ajouter une règle de gestion.
- Ajouter des actions.
- Valider le plugin
Cliquer sur « play » pour regarder une vidéo.
Ajouter des autorisations à l'utilisateur Global Admin
- Connectez-vous à la plateforme Jamf. Cliquez dans le coin supérieur droit, puis cliquez sur View all accounts.

- Cliquez Administration.

- Cliquez sur Actions > Edit pour l’utilisateur.

- Select Devices et Settings, puis cliquez sur Save.

Obtenez votre identifiant et votre secret de candidature
- Allez au menu Icon > Integrations > Risk API.

- Cliquez Generate API key.

- Saisissez un nom et cliquez sur Generate API Key.

- Copiez l'ID de l'application et le secret de l'application pour les utiliser dans la configuration du plugin.

Configurer le plugin Jamf
- Connectez-vous à Cloud Exchange et allez sur Settings > Plugins. Cherchez et sélectionnez la boîte de plugin Jamf v1.0.0 (CRE) .

- Pour les informations de base, entrez un nom de configuration du plugin et modifiez l'intervalle de synchronisation si nécessaire.

- Cliquez Next. Saisissez l'URL de base, l'ID de l'application et le secret de l'application.

- Cliquez sur Next. Select l'entité dans la liste déroulante Entité. Les champs d'entité peuvent être créés à partir de la page de l'éditeur de schéma ou en utilisant l'option + Add Field dans la liste déroulante des champs. Fournissez la cartographie du terrain. Pour la correspondance suggérée, veuillez vous référer à la section Correspondances.
Notez que le champ ID du périphérique sera nécessaire pour extraire le périphérique et pour effectuer des actions sur le périphérique extrait.
- Cliquez Save.

Ajouter une règle de gestion de l'échange de risques pour Jamf
- Dans Risk Exchange, allez à Business Rules.
- Cliquez sur Create New Rule dans le coin supérieur droit.
- Saisissez un nom de règle, sélectionnez l’entité pour laquelle les champs ont été configurés pour le plugin Jamf, puis configurez la requête selon vos besoins. L’exemple ci-dessous récupère périphérique contenant Gary dans le nom d’utilisateur.

- Cliquez Save.

Ajoutez des actions d'échange de risques pour Jamf
Le plugin Jamf prend en charge ces types d'actions :
- Pas d'action : Aucune action ne sera effectuée pour cette action. Les utilisateurs peuvent générer des alertes UBA dans le CTO en utilisant cette action et en activant l'option Générer des alertes.
- Remplacer le niveau de risque : L'option Override Risk Level permet d'attribuer un niveau de risque New au périphérique sur lequel une action est effectuée.
- Rétablir le niveau de risque : Revenir au niveau de risque permet d'attribuer le niveau de risque qui était présent lors de la création du périphérique.
Notez que vous pouvez effectuer les actions sur le périphérique tiré de Jamf sur le site Netskope Tenant.
Remplacer le niveau de risque
- Dans Risk Exchange, allez à Actions et cliquez sur Add Action Configuration.
- Select votre règle de gestion, la configuration (plugin) dans leurs listes déroulantes respectives.
- Pour Action, sélectionnez Override Risk Level dans la liste déroulante.
- Activez la case à cocher Exiger une approbation si une approbation est nécessaire avant d'effectuer une action sur le périphérique.
Notes
- Les champs mappés avec l'ID du périphérique lors de la configuration du plugin seront nécessaires pour effectuer une action sur le périphérique.
- Si l'option Statique est sélectionnée dans le menu déroulant, indiquez l'ID du périphérique, séparé par des virgules.

- Cliquez Save.

Revenir au niveau de risque
- Dans Risk Exchange, allez à Actions et cliquez sur Add Action Configuration.
- Select votre règle de gestion, la configuration (plugin) dans leurs listes déroulantes respectives.
- Pour Action, sélectionnez Revert Risk Level dans la liste déroulante.
- Activez la case à cocher Exiger une approbation si une approbation est nécessaire avant d'effectuer une action sur le périphérique.
Notes
- Les champs mappés avec l'ID du périphérique lors de la configuration du plugin seront nécessaires pour effectuer une action sur le périphérique.
- Si l'option Statique est sélectionnée dans le menu déroulant, indiquez l'ID du périphérique, séparé par des virgules.


- Cliquez Save.

No Action
- Dans Risk Exchange, allez à Actions et cliquez sur Add Action Configuration.
- Select votre règle de gestion, la configuration (plugin) dans leurs listes déroulantes respectives.
- Pour Action, sélectionnez No actions dans le menu déroulant et, si vous le souhaitez, activez le bouton bascule Générer une alerte pour générer des alertes dans le module CTO.
- Activez la case à cocher Exiger une approbation si une approbation est nécessaire avant d'effectuer une action sur le périphérique.
Notes
- Les champs mappés avec l'ID du périphérique lors de la configuration du plugin seront nécessaires pour effectuer une action sur le périphérique.
- Si l'option Statique est sélectionnée dans le menu déroulant, indiquez l'ID du périphérique, séparé par des virgules.

- Cliquez Save.

Valider le plugin Jamf
Valider sur Cloud Exchange
Pour valider le tirage sur Cloud Exchange :
- Dans Risk Exchange, allez sur Records. Select l’Entité sélectionnée lors de la configuration du mappage de champ pour périphérique afin de visualiser le périphérique tiré.

- Rendez-vous à Logging et recherchez les journaux du plugin.

- En Logging, vérifiez l’action effectuée pour un périphérique.

Valider sur Jamf
Les périphérique sont extraits de la page périphérique > Manage depuis la plateforme Jamf.
Si vous souhaitez valider l’action Override Risk Level, rendez-vous sur Devices > Manage pour vérifier si le niveau de risque est mis à jour ou non. Vous pouvez vérifier le niveau existant des utilisateurs, puis le niveau mis à jour après que l’action soit déclenchée.

Si vous souhaitez valider l’action Revert Risk Level, rendez-vous sur Devices > Manage pour vérifier si le niveau de risque est mis à jour ou non.
Dépannage du plugin Jamf
Impossible de configurer le plugin Jamf
Si vous ne parvenez pas à configurer le plugin Jamf, c'est peut-être parce que vous avezfourni un ID d'application et un secret d'application incorrects.
Pour résoudre ce problème, vérifiez que l'ID de l'application et le secret de l'application sont corrects.
Impossible de tirer le périphérique
Si vous ne parvenez pas à extraire le périphérique du plugin Jamf, cela peut être dû à l'une des raisons suivantes :
- Aucun périphérique n'est présent sur la plate-forme Jamf.
- Une erreur est survenue lors du retrait du périphérique de la plate-forme.
- Le mappage n'est pas ajouté lors de la configuration du plugin dans la page source de l'entité.
Pour résoudre ces problèmes, suivez les étapes suivantes :
- Vérifiez sur la plateforme Jamf si le périphérique existe ou non. Pour vérifier si le périphérique existe ou non, suivez les étapes de la section Valider sur Jamf.
- Réception d'une erreur 500 : Le serveur est peut-être en panne ; attendez un peu et vérifiez plus tard.
- Réception d'une erreur 403 : Le paramètre de configuration du plugin ne dispose pas d'autorisations suffisantes ou les informations d'identification n'existent plus.
- Assurez-vous que le mappage a été ajouté et que le champ périphérique ID a été mappé lors de la configuration du plugin.
Impossible d'effectuer une action sur Jamf
Si vous ne parvenez pas à effectuer une action sur le périphérique, cela peut être dû à l'une des raisons suivantes :
- Réception d'une erreur lors de l'exécution d'une action.
- périphérique n'est pas présent sur la plate-forme Jamf.
- La case à cocher Require Approval est activée lors de la configuration de l'action et la demande n'est pas approuvée.
Pour résoudre ces problèmes, suivez les étapes suivantes :
- Vérifiez l'erreur présente sur la page Logging et essayez de la résoudre.
- Accédez à la plate-forme Jamf et vérifiez si le périphérique pour lequel l'action doit être effectuée est présent ou non.
- Allez sur Action Logs, sélectionnez les journaux pour lesquels vous souhaitez approuver les demandes et cliquez sur l'icône d'approbation. Vous pouvez également désactiver l'option Require Approval de l'action configurée et effectuer à nouveau l'action.
Impossible d'afficher les détails du périphérique sur l'enregistrement
Si vous ne parvenez pas à consulter les détails du périphérique dans le tableau des enregistrements, cela peut être dû à l'une des raisons suivantes :
- Le mappage de tous les champs Jamf n'a pas été fourni lors de la configuration du plugin Jamf.
- Les périphériques tirés sont affichés dans une ligne avec des valeurs séparées par des virgules.
Pour résoudre ces problèmes, suivez les étapes suivantes :
- Veillez à fournir le mappage nécessaire lors de la configuration du plugin.
- Assurez-vous que les champs créés dans une entité sont conformes aux correspondances.

