Notes de mise à jour
2.0.0 (Requires minimum Cloud Exchange version 6.1.0)
Added
- De New champs ont été ajoutés à l’entité Users.
- Added support for Add User to Group, Remove User from Group, Enroll in Training, and Update Custom Field actions.
- Ajout de la prise en charge de l’extraction de détails supplémentaires, notamment l’extraction des détails des formations en retard, les détections Password IQ et les scores de risque de Security Coach depuis KnowBe4.
- Added a Custom Region URL option in the configuration parameter where you can provide a custom KnowBe4 Base URL.
Updated
- A mis à jour l’ancienne API Reporting avec la nouvelle API GraphQL pour extraire des données et effectuer les actions du plugin.
1.0.0
Added
- Initial release.
Ce document explique comment configurer le plugin KnowBe4 v2.0.0 avec le module Risk Exchange de la plateforme Netskope Cloud Exchange. Ce plugin récupère les utilisateurs depuis la page Users > User Management de la console KnowBe4. Ce plugin prend en charge les actions Ajouter un utilisateur à un groupe, Supprimer un utilisateur d’un groupe, Inscrire à une formation et Mettre à jour un champ personnalisé sur les utilisateurs dans KnowBe4.
Calcul du score de normalisation de Netskope pour les utilisateurs > (1000 - (Score de risque actuel de KnowBe4) x 10).
Conditions préalables
Pour compléter cette configuration, vous avez besoin de :
- Un locataire Netskope (ou plusieurs, par exemple des instances de production et de développement/test).
- Un locataire Netskope Cloud Exchange avec le plugin Tenant et le plugin Risk Exchange déjà configurés.
- Une instance KnowBe4 avec un jeton d’API KSAT
- Jetons PasswordIQ et SecurityCoach (facultatifs)
- Connectivité avec les hôtes suivants :
- https://training.knowbe4.com (US),
- https://eu.knowbe4.com (UE),
- https://ca.knowbe4.com (CA),
- https://uk.knowbe4.com (UK),
- https://de.knowbe4.com (DE).
- Pour la configuration de Secret Manager, consultez cette documentation. Pour configurer Azure Key Vault Secrets Manager, consultez cette documentation.
Support du plugin KnowBe4
This plugin fetches Users from the Users > User Management page of the KnowBe4 console. This plugin supports the Add User to Group, Remove User from Group, Enroll in Training, and Update Custom Field actions on users in KnowBe4.
| Types de données recueillies | Actions soutenues |
|---|---|
| Utilisateurs | Ajouter un utilisateur au groupe Supprimer un utilisateur du groupe S’inscrire à la formation Mettre à jour le champ personnalisé Aucune action |
Mises en correspondance
Les mappages sont utilisés pour afficher les détails des utilisateurs extraits. Les champs mappés lors de la configuration du plugin seront visibles sur la page Records une fois les données extraites. Voici les mappages suggérés à utiliser lors de la configuration du plugin.
Cartographie en mode "pull" pour les utilisateurs
| Étiquette du champ du plugin | Type de données attendu | Étiquette suggérée pour le champ | Stratégie globale | Exemple |
|---|---|---|---|---|
| Courriel de l'utilisateur | String | KnowBe4_E-mail | Unique | jane.doe@example.com |
| ID de l'utilisateur | String | KnowBe4_ID utilisateur | Overwrite | 5384681 |
| Prénom | String | KnowBe4_Prénom | Overwrite | Jane |
| Nom de famille | String | KnowBe4_Nom | Overwrite | Doe |
| Display Name | String | KnowBe4_Nom d’affichage | Overwrite | Jane Doe |
| Numéro d’employé | String | KnowBe4_Numéro d’employé | Overwrite | EMP-1042 |
| titre du poste | String | KnowBe4_Intitulé du poste | Overwrite | Analyste de la sécurité |
| Department | String | KnowBe4_Department | Overwrite | Sécurité |
| E-mail du responsable | String | KnowBe4_E-mail du responsable | Overwrite | manager@example.com |
| Statut de l'utilisateur | String | KnowBe4_État de l’utilisateur | Overwrite | Actif |
| Groupes | List | KnowBe4_Groups | Overwrite | [“Ventes”, “EMEA”] |
| Score de risque actuel de l'utilisateur | Number | KnowBe4_Score de risque actuel de l’utilisateur | Overwrite | 42.6695 |
| Pourcentage de vulnérabilité au phishing | Number | KnowBe4_Pourcentage de vulnérabilité au phishing | Overwrite | 12.5 |
| Score normalisé de Netskope | Number | Score normalisé KnowBe4_Netskope | Overwrite | 573 |
| Nombre de formations en retard | Number | KnowBe4_Nombre de formations en retard | Overwrite | 2 |
| Noms des formations en retard | List | KnowBe4_Noms des formations en retard | Overwrite | [“Fondements de la sensibilisation à la sécurité”] |
| Détections PIQ | List | KnowBe4_PIQ Détections | Overwrite | [« mot de passe faible »] |
| Score de sensibilisation | Number | KnowBe4_Score de sensibilisation | Overwrite | 78 |
| Score anti-hameçonnage | Number | KnowBe4_Score anti-phishing | Overwrite | 81 |
| Score de signalement de phishing | Number | KnowBe4_Score du rapport d’hameçonnage | Overwrite | 65 |
| Score de formation | Number | KnowBe4_Score de formation | Overwrite | 90 |
| Champ personnalisé 1 | String | KnowBe4_Champ personnalisé 1 | Overwrite | Contractor |
| Champ personnalisé 2 | String | KnowBe4_Champ personnalisé 2 | Overwrite | Contractor |
| Champ personnalisé 3 | String | KnowBe4_Champ personnalisé 3 | Overwrite | Contractor |
| Champ personnalisé 4 | String | KnowBe4_Champ personnalisé 4 | Overwrite | Contractor |
| Date personnalisée 1 | DateTime | KnowBe4_Date personnalisée 1 | Overwrite | 2026-09-01 |
| Date personnalisée 2 | DateTime | KnowBe4_Date personnalisée 2 | Overwrite | 2026-09-01 |
Calcul de la note normalisée
Le type de score attendu sur KnowBe4 est compris entre 0 et 1000. Calcul du score de normalisation de Netskope pour les utilisateurs > (1000 - (Score de risque actuel de KnowBe4) x 10).
Notez que pour les valeurs de score de risque 0, 100 et string, le calcul du score de normalisation de Netskope est ignoré.
Permissions
Assurez-vous que l’utilisateur pour lequel des jetons seront créés dispose des autorisations nécessaires pour créer un jeton d’API. Les jetons disposent des autorisations suivantes :
- KSAT API Token: Lecture/écriture
- PasswordIQ API Token: Lecture seule
- SecurityCoach API Token: Lecture seule
Détails de l'API
Liste des API utilisées
| Point final de l'API | Méthode | Cas d'utilisation |
|---|---|---|
| /graphql — AuthCheck | PUBLIER | Connectivité et validation du jeton dans validate() |
| /graphql — Utilisateurs | PUBLIER | Récupérer les détails des utilisateurs |
| /graphql — inscriptions avec alias | PUBLIER | Détails des formations en retard à récupérer |
| /graphql — PiqUserStates | PUBLIER | Récupérer les détections Password IQ |
| /graphql — CoachUsers | PUBLIER | Récupérer les détails de Security Coach |
| /graphql — Groupes | PUBLIER | Répertorier les noms de groupes |
| /graphql — TrainingCampaigns | PUBLIER | Lister les noms des campagnes de formation |
| /graphql — Créer un groupe | PUBLIER | Créer un groupe sur KnowBe4 |
| /graphql — AddToGroups | PUBLIER | Ajoute des utilisateurs en masse à un groupe |
| /graphql — RemoveFromGroup | PUBLIER | Supprime en masse les utilisateurs d’un groupe |
| /graphql — EnrollUser | PUBLIER | Inscrire un utilisateur à une campagne de formation |
| /graphql — EditUser | PUBLIER | Mettre à jour la valeur du champ personnalisé de l’utilisateur |
AuthCheck
Méthode : POST
Point de terminaison : /graphql
Headers
| Clé | Value |
|---|---|
| Authorization | Bearer <api_token> |
| Content-Type | application/json |
| Accept | application/json |
| User-Agent | netskope-ce-7.0.0-cre-knowbe4-v2.0.0 |
Payload
| Requête GraphQL | Variables |
|---|---|
| query AuthCheck($per: Int, $page: Int) { users(per: $per, page: $page) { nodes { id } pagination { totalCount } } } | { “per”: 1, “page”: 1 } |
Sample Response
{
"data": {
"users": {
"nodes": [{ "id": 1234567 }],
"pagination": { "totalCount": 250 }
}
}
}
List Users
Méthode : POST
Point de terminaison : /graphql
Headers
| Clé | Value |
|---|---|
| Authorization | Bearer <api_token> |
| Content-Type | application/json |
| Accept | application/json |
| User-Agent | netskope-ce-7.0.0-cre-knowbe4-v2.0.0 |
Payload
| Requête GraphQL | Variables |
|---|---|
| query Users($per: Int, $page: Int, $status: UserStatusFilters) { users(per: $per, page: $page, status: $status) { nodes { id email firstName lastName displayName employeeNumber jobTitle department managerEmail archived riskScore currentPpp customField1 customField2 customField3 customField4 customDate1 customDate2 groups { id name } } pagination { page pages per totalCount } } } | { “per”: 100, “page”: 1, “status”: “ACTIVE” } |
Sample Response
{
"data": {
"users": {
"nodes": [
{
"id": 1234567,
"email": "sample_user@netskope.com",
"firstName": "Sample",
"lastName": "User",
"displayName": "Sample User",
"employeeNumber": "E-00001",
"jobTitle": "Analyst",
"department": "Sample Department",
"managerEmail": "sample_user@netskope.com",
"archived": false,
"riskScore": 42.7,
"currentPpp": 12.5,
"customField1": "Tier 2",
"customField2": null,
"customField3": null,
"customField4": null,
"customDate1": "2026-09-01",
"customDate2": null,
"groups": [{ "id": 5001, "name": "Finance" }]
}
],
"pagination": { "page": 1, "pages": 3, "per": 100, "totalCount": 250 }
}
}
}
Obtenir les inscriptions aux formations
Méthode : POST
Point de terminaison : /graphql
Headers
| Clé | Value |
|---|---|
| Authorization | Bearer <api_token> |
| Content-Type | application/json |
| Accept | application/json |
| User-Agent | netskope-ce-7.0.0-cre-knowbe4-v2.0.0 |
Payload
| Requête GraphQL | Variables |
|---|---|
| query { u0: enrollments(userId: 1234567, per: 100, page: 1) { nodes { status pastDue trainingCampaign { name } enrollmentItem { … on PurchasedCourse { title } … on Policy { title } … on KnowledgeRefresher { title } } } pagination { totalCount pages } } } | Aucun |
Sample Response
{
"data": {
"u0": {
"nodes": [
{
"status": "IN_PROGRESS",
"pastDue": true,
"trainingCampaign": { "name": "2026 Annual Security Awareness" },
"enrollmentItem": { "title": "2026 Security Awareness Training" }
}
],
"pagination": { "totalCount": 2, "pages": 1 }
}
}
}
États des utilisateurs de PasswordIQ
Méthode : POST
Point de terminaison : /graphql
Headers
| Clé | Value |
|---|---|
| Authorization | Bearer <api_token> |
| Content-Type | application/json |
| Accept | application/json |
| User-Agent | netskope-ce-7.0.0-cre-knowbe4-v2.0.0 |
Payload
| Requête GraphQL | Variables |
|---|---|
| query PiqUserStates( $detection: [DetectionTypes!] $userType: PiqUserTypes $pagination: PiqPaginationAttributes! ) { passwordIqUserStates( detection: $detection, userType: $userType, pagination: $pagination ) { users { id kmsatId events { detectionType { name } detected resolved } } pagination { page pages per totalCount } } } | { “detection”: [ “AD_PW_WEAK”, “AD_PW_SHARED”, “AD_PW_EMPTY”, “AD_PW_CLEAR_TEXT”, “AD_PW_NOT_REQD”, “AD_PW_NEVER_EXPIRES”, “AD_USER_USES_LM_HASH”, “AD_USER_AES_ENCRYPTION_NOT_SET”, “AD_USER_DES_ONLY_ENCRYPTION”, “AD_USER_HAS_PREAUTHENTICATION”, “AD_PW_FOUND_IN_BREACH” ], “userType”: “KMSAT”, “pagination”: { “per”: 100, “page”: 1 } } |
Sample Response
{
"data": {
"passwordIqUserStates": {
"users": [
{
"id": 88120,
"kmsatId": 1234567,
"events": [
{ "detectionType": { "name": "AD_PW_FOUND_IN_BREACH" }, "detected": true, "resolved": false },
{ "detectionType": { "name": "AD_PW_NEVER_EXPIRES" }, "detected": true, "resolved": true }
]
}
],
"pagination": { "page": 1, "pages": 1, "per": 100, "totalCount": 1 }
}
}
}
Lister les utilisateurs mappés de Security Coach
Méthode : POST
Point de terminaison : /graphql
Headers
| Clé | Value |
|---|---|
| Authorization | Bearer <api_token> |
| Content-Type | application/json |
| Accept | application/json |
| User-Agent | netskope-ce-7.0.0-cre-knowbe4-v2.0.0 |
Payload
| Requête GraphQL | Variables |
|---|---|
| query CoachUsers($search: String!, $draw: Int!, $start: Int!, $length: Int!) { securityCoachListMappedUsers( search: $search, draw: $draw, start: $start, length: $length ) { recordsTotal data { id email awarenessScore antiPhishingScore phishingReportScore trainingScore } } } | { “search”: “”, “draw”: 1, “start”: 0, “length”: 100 } |
Sample Response
{
"data": {
"securityCoachListMappedUsers": {
"recordsTotal": 250,
"data": [
{
"id": 1234567,
"email": "sample_user@netskope.com",
"awarenessScore": 78,
"antiPhishingScore": 64,
"phishingReportScore": 55,
"trainingScore": 90
}
]
}
}
}
Liste des groupes
Méthode : POST
Point de terminaison : /graphql
Headers
| Clé | Value |
|---|---|
| Authorization | Bearer <api_token> |
| Content-Type | application/json |
| Accept | application/json |
| User-Agent | netskope-ce-7.0.0-cre-knowbe4-v2.0.0 |
Payload
| Requête GraphQL | Variables |
|---|---|
| query Groups($per: Int, $page: Int, $status: GroupStatuses, $type: GroupTypes) { groups(per: $per, page: $page, status: $status, type: $type) { nodes { id name } pagination { page pages totalCount } } } | { “per”: 100, “page”: 1, “status”: “ACTIVE”, “type”: “CONSOLE” } |
Sample Response
{
"data": {
"groups": {
"nodes": [
{ "id": 5001, "name": "Finance" },
{ "id": 5002, "name": "Netskope High Risk" }
],
"pagination": { "page": 1, "pages": 1, "totalCount": 2 }
}
}
}
Liste des campagnes de formation
Méthode : POST
Point de terminaison : /graphql
Headers
| Clé | Value |
|---|---|
| Authorization | Bearer <api_token> |
| Content-Type | application/json |
| Accept | application/json |
| User-Agent | netskope-ce-7.0.0-cre-knowbe4-v2.0.0 |
Payload
| Requête GraphQL | Variables |
|---|---|
| query TrainingCampaigns($per: Int, $page: Int, $statuses: [TrainingCampaignStatuses!]) { trainingCampaigns(per: $per, page: $page, statuses: $statuses) { nodes { id name } pagination { page pages totalCount } } } | { “per”: 100, “page”: 1, “statuses”: [“CREATED”, “ENROLLING”, “IN_PROGRESS”] } |
Sample Response
{
"data": {
"trainingCampaigns": {
"nodes": [{ "id": 7001, "name": "Remedial Phishing Training" }],
"pagination": { "page": 1, "pages": 1, "totalCount": 1 }
}
}
}
Créer un groupe
Méthode : POST
Point de terminaison : /graphql
Headers
| Clé | Value |
|---|---|
| Authorization | Bearer <api_token> |
| Content-Type | application/json |
| Accept | application/json |
| User-Agent | netskope-ce-7.0.0-cre-knowbe4-v2.0.0 |
Payload
| Requête GraphQL | Variables |
|---|---|
| mutation CreateGroup($attributes: GroupAttributes!) { groupCreate(attributes: $attributes) { errors { field reason } node { id name } } } | { “attributes”: { “name”: “Netskope Risque élevé” } } |
Sample Response
{
"data": {
"groupCreate": {
"errors": [],
"node": { "id": 5002, "name": "Netskope High Risk" }
}
}
}
Ajouter des utilisateurs au groupe
Méthode : POST
Point de terminaison : /graphql
Headers
| Clé | Value |
|---|---|
| Authorization | Bearer <api_token> |
| Content-Type | application/json |
| Accept | application/json |
| User-Agent | netskope-ce-7.0.0-cre-knowbe4-v2.0.0 |
Payload
| Requête GraphQL | Variables |
|---|---|
| mutation AddToGroups($userIds: [Int!]!, $groupIds: [Int!]!) { userAddToGroups(userIds: $userIds, groupIds: $groupIds) { errors { field reason } node { id email } } } | { “userIds”: [1234567, 1234568], “groupIds”: [5002] } |
Sample Response
{
"data": {
"userAddToGroups": {
"errors": [],
"node": [
{ "id": 1234567, "email": "sample_user@netskope.com" },
{ "id": 1234568, "email": "sample_user@netskope.com" }
]
}
}
}
Supprimer les utilisateurs du groupe
Méthode : POST
Point de terminaison : /graphql
Headers
| Clé | Value |
|---|---|
| Authorization | Bearer <api_token> |
| Content-Type | application/json |
| Accept | application/json |
| User-Agent | netskope-ce-7.0.0-cre-knowbe4-v2.0.0 |
Payload
| Requête GraphQL | Variables |
|---|---|
| mutation RemoveFromGroup($userIds: [Int!]!, $groupId: Int!) { userDeleteMemberships(userIds: $userIds, groupId: $groupId) { errors { field reason } node { id email } } } | { “userIds”: [1234567], “groupId”: 5002 } |
Sample Response
{
"data": {
"userDeleteMemberships": {
"errors": [],
"node": [{ "id": 1234567, "email": "sample_user@netskope.com" }]
}
}
}
Inscrire l’utilisateur à une campagne de formation
Méthode : POST
Point de terminaison : /graphql
Headers
| Clé | Value |
|---|---|
| Authorization | Bearer <api_token> |
| Content-Type | application/json |
| Accept | application/json |
| User-Agent | netskope-ce-7.0.0-cre-knowbe4-v2.0.0 |
Payload
| Requête GraphQL | Variables |
|---|---|
| mutation EnrollUser($trainingCampaignId: Int!, $userId: Int!) { trainingCampaignAddUser( trainingCampaignId: $trainingCampaignId, userId: $userId ) { errors { field reason } node } } | { “trainingCampaignId”: 7001, “userId”: 1234567 } |
Sample Response
{
"data": {
"trainingCampaignAddUser": {
"errors": [],
"node": true
}
}
}
Mise à jour de l’utilisateur
Méthode : POST
Point de terminaison : /graphql
Headers
| Clé | Value |
|---|---|
| Authorization | Bearer <api_token> |
| Content-Type | application/json |
| Accept | application/json |
| User-Agent | netskope-ce-7.0.0-cre-knowbe4-v2.0.0 |
Payload
| Requête GraphQL | Variables |
|---|---|
| mutation EditUser($userId: Int!, $attributes: UserAttributes!) { userEdit(userId: $userId, attributes: $attributes) { errors { field reason } node { id email } } } | { “userId”: 1234567, “attributes”: { “customField1”: “Netskope: risque élevé” } } |
Sample Response
{
"data": {
"userEdit": {
"errors": [],
"node": { "id": 1234567, "email": "sample_user@netskope.com" }
}
}
}
Matrice de performance
Voici la matrice de performances réalisée sur une grande pile Cloud Exchange avec ces spécifications, lors de l’extraction de 500k utilisateurs.
| Description | Spécifications |
|---|---|
| Taille de la pile | Taille : Grande, RAM : 32 GB, Cœurs : 16 |
| Temps nécessaire pour stocker les dossiers d'utilisateurs extraits et mis à jour | ~15 minutes |
Agent utilisateur
netskope-ce-7.0.0-cre-knowbe4-v2.0.0
Workflow
- Obtenez vos jetons API KnowBe4.
- Configurer le plugin KnowBe4.
- Configurez une règle de gestion.
- Configurer les actions Risk Exchange.
- Valider le plugin KnowBe4.
Regardez une vidéo
Cliquer sur « play » pour regarder une vidéo.
Obtenir vos jetons API KnowBe4
-
Connectez-vous à la console KnowBe4.
-
Allez sur Account Settings > Account Integrations > API > Product API.


-
Cliquez sur Create New API Token pour générer un jeton API KSAT.

-
Saisissez un nom, sélectionnez KSAT pour les produits et Read/Write pour les portées, sélectionnez une date d’expiration et un utilisateur, puis cliquez sur Create Token.

-
Copiez le jeton généré et cliquez sur OK.

-
Si PasswordIQ est sélectionné pour les produits, répétez le processus dans la section API du produit PasswordIQ afin de générer un jeton d’API PasswordIQ.

-
Si SecurityCoach est sélectionné pour Produits, répétez le processus dans la section API du produit SecurityCoach afin de générer un jeton API SecurityCoach.

Configurer le plugin KnowBe4
-
Dans Cloud Exchange, allez sur Settings > Plugin Store. Recherchez et sélectionnez le plugin KnowBe4 v2.0.0 (CRE).

-
Saisir un nom de configuration et modifier l’intervalle de synchronisation si nécessaire.

-
Cliquez sur Next et entrez les paramètres de configuration :
- Base URL: URL de base du compte KnowBe4 du locataire, sans chemin.
- Custom Region URL: URL de base du déploiement KnowBe4 du tenant, sans chemin. Requis uniquement lorsque l’URL de base est définie sur URL de région personnalisée.
- KSAT API Token: jeton API du produit KnowBe4 Security Awareness Training (KSAT).
- Pull Archived Users: Select Yes pour inclure également les utilisateurs archivés en plus des utilisateurs actifs ; select No pour inclure uniquement les utilisateurs actifs.
- Group Action Batch Size: Number of users sent in a single Add User to Group or Remove User from Group API call. Valid range 1–100. Default is 50.
- Pull Additional Details: Select les détails supplémentaires à récupérer pour chaque utilisateur : champs personnalisés, PasswordIQ ou SecurityCoach.
- PasswordIQ API Token: Jeton API du produit PasswordIQ de KnowBe4. Affiché et requis uniquement lorsque PasswordIQ est sélectionné dans « Informations supplémentaires à récupérer ».
- SecurityCoach API Token: jeton API du produit KnowBe4 SecurityCoach. Affiché et requis uniquement lorsque SecurityCoach est sélectionné dans Récupérer des détails supplémentaires.

-
Cliquez sur Next et configurez la source d’entité pour les utilisateurs. Select Users dans la liste déroulante Entité, ou cliquez sur Add New Entity pour créer une nouvelle entité.

-
Associez les champs du plug-in pour l'entité utilisateurs aux champs de Risk Exchange (associez le champ de type chaîne e-mail du plug-in au champ de type chaîne E-mail de l'entité utilisateurs).
Le type de données du champ sera entouré de "()" -
Cliquez sur Add pour associer plusieurs champs.
-
Cliquez sur Add Field pour ajouter un champ dans l’entité Users.

-
Ajoutez un libellé de champ, sélectionnez un type de données, une normalisation, activez ou désactivez la restriction d'unicité pour le New champ ajouté, puis sélectionnez une stratégie d'agrégation. Une fois terminé, cliquez sur Save.

-
Mappez tous les champs de l’entité Users.



-
Click Save. Your plugin will appear on the Plugins page.

Configurer une règle métier de Risk Exchange pour KnowBe4
- Dans Risk Exchange, allez à Business Rules et cliquez sur Add Business Rule.
- Configurez les conditions de la source et des filtres.

- Cliquez sur Save.

Configurez une action Risk Exchange pour KnowBe4.
Note
Toutes les actions sont de deux types :
- Source: Ce type représente le champ de l'Entité (comme les Utilisateurs, l'Application, l'Entité périphérique). Ce type peut avoir des valeurs dynamiques pour chaque enregistrement de l'entité.
- Static: Ce type représente la valeur statique d'une action particulière.
Pour configurer des actions :
-
Allez sur Risk Exchange > Actions.
-
Cliquez sur Add Action Configuration.

-
Dans la liste déroulante Règle de gestion, sélectionnez la règle de gestion que vous avez créée.
-
From the Configuration dropdown, select your plugin.
-
Dans la liste déroulante Actions, sélectionnez l'une de ces actions :
- Add User to Group: Lorsqu’elle est déclenchée, elle ajoutera des utilisateurs à un groupe.
- Remove User from Group: Lorsqu’elle est déclenchée, cette action supprimera des utilisateurs d’un groupe.
- Enroll in Training: Lors du déclenchement, les utilisateurs seront inscrits à la formation.
- Update Custom Field: Lorsqu'elle est déclenchée, cette action met à jour l'un des champs personnalisés de l'utilisateur.
- No action: Cela n'effectue aucune action sur les utilisateurs. Lorsque Aucune action est sélectionné, activez le bouton bascule Generate Alert afin que les New alertes soient ajoutées au module Ticket Orchestrator.
Veillez à activer le module CTO (Ticket Orchestrator) sur Settings > General.

-
Si vous souhaitez effectuer une action pendant la fenêtre de maintenance, activez la case à cocher Exécuter une action pendant la fenêtre de maintenance. L'action sera exécutée pendant la fenêtre de maintenance ; sinon, elle sera exécutée instantanément.
-
Désactivez la case à cocher Require Approval. Si vous désactivez cette option, l'action se déclenchera automatiquement sans aucune intervention manuelle. Si l'option est activée, chaque action devra être approuvée manuellement par l'utilisateur de Cloud Exchange.
-
Cliquez sur Save.
-
Pour effectuer ces actions, cliquez sur Sync,, ajoutez une période, puis cliquez sur Fetch. Le nombre d'enregistrements pour l'action sera pris en compte lorsque vous cliquerez à nouveau sur Sync.
Vous pouvez effectuer toutes les actions sur les utilisateurs extraits de KnowBe4 dans le locataire Netskope ou sur toute plateforme tierce, et vice versa. Pour effectuer les actions liées aux utilisateurs sur Netskope ou sur un plugin tiers, consultez le guide des plugins de Netskope ou le guide des plugins tiers.
Ajouter un utilisateur à un groupe
- Dans Risk Exchange, allez à Actions et cliquez sur Add Action Configuration.
- Select une règle métier et votre plugin.
- Pour les actions, sélectionnez Add user to group.
- Pour les paramètres de l’action, saisissez les informations suivantes :
- User ID: ID de l'utilisateur sur lequel l'action doit être effectuée. Select dans la liste déroulante Champ source, ou indiquez des ID utilisateur statiques séparés par des virgules.
- Group: Groupe KnowBe4 auquel ajouter l’utilisateur. Seuls les groupes de la console sont répertoriés. Select le groupe uniquement dans la liste déroulante Champ statique.
- New Group name: Nom du groupe à créer. Cette option est utilisée uniquement lorsque Créer un New groupe est sélectionné dans le paramètre Groupe. 128 caractères maximum sont autorisés.
- Activez la case à cocher Exiger l' approbation si une approbation est nécessaire avant d'effectuer une action sur les utilisateurs.
- Cliquez sur Save.

Supprimer un utilisateur d'un groupe
- Dans Risk Exchange, allez à Actions et cliquez sur Add Action Configuration.
- Select une règle métier et votre plugin.
- Pour les actions, sélectionnez Remove user from group.
- Dans les Paramètres d'action, entrez ces détails :
- User ID: ID de l'utilisateur sur lequel l'action doit être effectuée. Select dans la liste déroulante Champ source, ou indiquez des ID utilisateur statiques séparés par des virgules.
- Group: Groupe KnowBe4 duquel supprimer l’utilisateur. Seuls les groupes de la console sont répertoriés. Select le groupe uniquement dans la liste déroulante Champ statique.
- Activez la case à cocher Exiger l' approbation si une approbation est nécessaire avant d'effectuer une action sur les utilisateurs.
- Cliquez sur Save.

S’inscrire à la formation
- Dans Risk Exchange, allez à Actions et cliquez sur Add Action Configuration.
- Select une règle métier et votre plugin.
- Pour les actions, sélectionnez Enroll in Training.
- Pour les paramètres de l’action, saisissez les informations suivantes :
- User ID: ID de l'utilisateur sur lequel l'action doit être effectuée. Select dans la liste déroulante Champ source, ou indiquez des ID utilisateur statiques séparés par des virgules.
- Training Campaign: Campagne de formation KnowBe4 dans laquelle inscrire l’utilisateur. Seules les campagnes acceptant de New utilisateurs sont répertoriées. Select uniquement la campagne de formation dans le menu déroulant statique.
- Activez la case à cocher Exiger l' approbation si une approbation est nécessaire avant d'effectuer une action sur les utilisateurs.
- Cliquez sur Save.

Mettre à jour un champ personnalisé
- Dans Risk Exchange, accédez à Actions, puis cliquez sur Add Action Configuration.
- Select une règle métier et votre plugin.
- Pour les actions, sélectionnez Update Custom Field.
- Dans les Paramètres d'action, entrez ces détails :
- User ID: ID de l'utilisateur sur lequel l'action doit être effectuée. Select dans la liste déroulante Champ source ou fournissez des ID utilisateur statiques séparés par des virgules.
- Custom Field: Champ personnalisé KnowBe4 dans lequel écrire la valeur. Select le champ personnalisé uniquement dans la liste déroulante statique.
- Value: Valeur à écrire dans le champ personnalisé sélectionné. Elle peut comporter jusqu’à 255 caractères. Saisissez uniquement une valeur statique.
- Activez la case à cocher Exiger l' approbation si une approbation est nécessaire avant d'effectuer une action sur les utilisateurs.
- Cliquez sur Save.

No Action
- Dans Risk Exchange, allez à Actions et cliquez sur Add Action Configuration.
- Select une règle métier et votre plugin.
- Pour les actions, sélectionnez No action.
- Activez la case à cocher Exiger l' approbation si une approbation est nécessaire avant d'effectuer une action sur les utilisateurs.
- Cliquez sur Save.

Valider le plugin KnowBe4
Valider dans Cloud Exchange
Pour vérifier les utilisateurs récupérés depuis KnowBe4, accédez à Logging et recherchez les journaux du plugin CRE KnowBe4.

Pour vérifier les enregistrements récupérés et stockés dans Cloud Exchange, accédez à Records dans Risk Exchange. Select le type d’entité utilisé lors de l’ajout du mappage dans la configuration du plugin.

Actions réalisées
Pour vérifier l’action effectuée, accédez à la page Journaux des actions et approuvez l’action.

Pour vérifier les actions effectuées dans Cloud Exchange, accédez à Logging et recherchez les journaux du plugin CRE KnowBe4.
Add a User to a Group

Remove a User from a Group

Enroll in Training

Update a Custom Field

No Action

Valider sur KnowBe4
Connectez-vous à la console KnowBe4 et accédez à Users.

Toutes les informations concernant l’utilisateur sont extraites de la page Informations utilisateur.

Les détails des formations en retard de l’utilisateur sont récupérés depuis la page Formation :

Les détails de PasswordIQ sont extraits de la page PasswordIQ :

Les détails de SecurityCoach sont récupérés depuis la page Coaching :

Actions réalisées
Pour valider les actions Ajouter un utilisateur au groupe et Supprimer un utilisateur du groupe dans KnowBe4, accédez à Users > Group, puis cliquez sur le groupe auquel vous avez ajouté ou duquel vous avez supprimé l’utilisateur.



Pour valider Inscription à la formation,, accédez à Training et cliquez sur la formation sur laquelle vous avez effectué une action. Accédez à la section Utilisateurs, où vous verrez tous les utilisateurs actuellement inscrits.


Pour valider la Mise à jour du champ personnalisé,, accédez à Users > User Management et cliquez sur l’utilisateur sur lequel vous avez effectué une action. Ensuite, accédez à la section User Information, où vous verrez tous les champs personnalisés de l’utilisateur.


Dépannage du plugin KnowBe4
Réception d'une erreur dans le plugin workflow
CRE KnowBe4 [CRE KnowBe4]: Validation error occurred, Received exit code 401, Unauthorized, Verify Base URL and API Token provided in the configuration parameters.
What to do:
- Vérifiez le jeton API pour KnowBe4. Reportez-vous à Obtenir vos jetons API KnowBe4.
- Vérifiez l’URL de base de la plateforme KnowBe4. Reportez-vous aux conditions préalables.
Les utilisateurs ne sont pas retirés de KnowBe4
Si aucune donnée concernant l’utilisateur n’est récupérée, cela peut être dû à l’une des raisons suivantes :
- Aucun utilisateur n'est disponible sur la plateforme pour tirer.
- La cartographie n'est pas ajoutée dans le plugin.
What to do:
- Accédez à KnowBe4 et vérifiez si les utilisateurs peuvent être récupérés depuis la page Utilisateurs > Gestion des utilisateurs. Ou suivez les étapes.
- Modifiez la configuration du plugin et vérifiez la page Entity Source, il devrait y avoir des champs mappés afin d'obtenir la même chose.
Le plugin ne parvient pas à être validé ou affiche une erreur d’authentification
Si le plugin ne parvient pas à valider ou affiche une erreur d’authentification, cela peut être dû à l’une des raisons suivantes :
- Le jeton API KSAT n’est pas valide ou a expiré.
- Le jeton API PasswordIQ ou SecurityCoach n'est pas valide, et l'option correspondante est sélectionnée dans Pull Additional Details.
- L’URL de base ou l’URL de région personnalisée ne correspond pas à la région KnowBe4 du locataire.
What to do:
- Vérifiez que le jeton API KSAT est valide et qu’il a été généré à partir de Users > Manage User dans la console KnowBe4. Pour cela, suivez les étapes.
- Si PasswordIQ ou SecurityCoach est sélectionné dans « Pull Additional Details », vérifiez que le jeton API correspondant a été généré dans la même section des paramètres API du produit concerné.
- Confirmez que l’URL de base correspond à la région KnowBe4 de votre locataire (par exemple,
https://training.knowbe4.compour les États-Unis ouhttps://eu.knowbe4.compour l’UE).
Les actions de groupe ou de campagne de formation échouent en cours de traitement
Si une action de groupe ou de campagne de formation échoue en cours de traitement, cela peut être dû à l’une des raisons suivantes :
- Une erreur d'authentification (401/403) a été rencontrée lors de l'exécution de l'action.
- La taille du lot d'actions de groupe est trop élevée, ce qui entraîne un délai d'attente de la passerelle.
What to do:
- Vérifiez l’écran de journalisation dans Cloud Exchange pour connaître le message d’erreur spécifique et déterminer s’il s’agit d’un échec d’authentification ou d’un délai d’attente dépassé.
- Régénérez le jeton API KSAT si des échecs d’authentification sont signalés dans les journaux.
- Réduisez le paramètre de configuration Group Action Batch Size (par défaut 50, plage valide 1–100) si des délais d’expiration de la passerelle sont observés pour les actions d’appartenance à un groupe.
Erreur lors de la mise à niveau du plugin vers la dernière version
Si vous obtenez cette erreur lors de la mise à niveau du plugin vers la dernière version,

suivez ces étapes pour configurer le plugin :
- Cliquez sur Skip dans l’écran de mise à jour.
- Accédez à l’écran Risk Exchange > Plugins et modifiez le plugin.
- Fournissez les valeurs de tous les paramètres de configuration, puis cliquez sur Next. Ajoutez les mappages conformément aux exigences. (Notez que le type de données du champ ID utilisateur est passé de Nombre à Chaîne; vous devez donc également mettre à jour le type de données du champ CRE.)
- Cliquez sur Save et activez le plugin.
Les appels API se bloquent par intermittence pendant 5 minutes avant de reprendre
Si des appels API tels que validate ou sync se bloquent par intermittence pendant environ 5 minutes avant de reprendre ou d’échouer, cela peut être dû à l’une des raisons suivantes :
- Le nom d’hôte régional de KnowBe4 pointe vers plusieurs adresses IP derrière un CDN partagé.
- Le pare-feu réseau bloque silencieusement le trafic à destination d’une ou plusieurs adresses IP résolues, ce qui entraîne le blocage de la connexion jusqu’à ce que le délai d’expiration interne de 5 minutes de Cloud Exchange soit atteint.
What to do:
- Exécutez
nslookup <region>.knowbe4.com(par exemple,nslookup ca.knowbe4.com) depuis la machine Cloud Exchange. - Communiquez toutes les adresses IP renvoyées par la commande à votre équipe réseau/informatique.
- Demandez à l’équipe réseau/IT de vérifier que toutes les adresses IP renvoyées sont débloquées pour l’accès sortant depuis la machine Cloud Exchange.
- Débloquez toutes les adresses IP bloquées par le pare-feu.
L'action Update Custom Fields ne met pas à jour les valeurs des champs personnalisés dans l'interface utilisateur KnowBe4
Si l’action « Update Custom Fields » apparaît comme réussie dans Cloud Exchange, mais que la valeur du champ personnalisé n’est pas mise à jour dans l’interface utilisateur de KnowBe4, cela peut s’expliquer par le fait que l’utilisateur est géré par le provisionnement des utilisateurs.
- Les valeurs des champs personnalisés ne peuvent être mises à jour que pour les utilisateurs qui ne sont pas gérés par le provisionnement des utilisateurs.
- Pour les utilisateurs gérés par le provisionnement des utilisateurs, l’API KnowBe4 peut renvoyer une réponse positive. Cloud Exchange indique donc que l’action a réussi, mais la valeur mise à jour ne sera pas visible dans l’interface utilisateur KnowBe4.
What to do:
- Dans l’interface utilisateur de KnowBe4, vérifiez si l’utilisateur affiche “This User is not managed by user provisioning…”.
- Exécutez l’action Mettre à jour les champs personnalisés uniquement pour les utilisateurs qui ne sont pas gérés par le provisionnement des utilisateurs.
- Si l’utilisateur est géré par le système de provisionnement des utilisateurs, mettez plutôt à jour le champ personnalisé via ce système.
Paramètres supplémentaires indisponibles lors de la mise à niveau du plugin
Lors de la mise à niveau du plugin CRE KnowBe4 de la version 1.0.0 à la version 2.0.0 dans Cloud Exchange v7.0.0, les utilisateurs peuvent définir uniquement le required parameters pendant la mise à niveau.
What to do:
Pour configurer des paramètres supplémentaires (comme l'URL de région personnalisée), modifiez le plugin après la mise à niveau depuis la page Risk Exchange > Plugin.

