This document explains how to configure the CyberArk integration with the User Risk Exchange module of the Netskope Cloud Exchange platform.
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.
- Compte ACyberArk contenant l'accès à l'administration des identités.
- Connectivity to the following host: CyberArk login URL.
For example: https://abd4143.id.cyberark.cloud/
Compatibilité des versions CE
This plugin is compatible with these Netskope CE versions:v4.2.0, v5.0.0
Support des plugins CyberArk
Le plugin URE CyberArk est utilisé pour ajouter ou supprimer un utilisateur CyberArk aux rôles CyberArk. Ce plugin ne permet pas d'extraire de CyberArk des scores risqués pour les utilisateurs/hôtes.
|
Score tiré par l'utilisateur | Non pris en charge |
|
Tirer le score de l'hôte |
Non pris en charge |
| Actions |
|
Mises en correspondance
- NA
Permissions
Vous trouverez ci-dessous les autorisations nécessaires pour utiliser le plugin CyberArk.
- l'autorisation de l'administrateur du système (pour l'accès à la plate-forme).
- Est un client confidentiel OAuth (pour la configuration du plugin).
Détails de l'API
Liste des API utilisées
| Point final de l'API | Méthode | Cas d'utilisation |
|---|---|---|
|
/oauth2/platformtoken | PUBLIER | Generate Auth Token |
|
/RedRock/query | PUBLIER |
Obtenir tous les rôles |
| /RedRock/query | PUBLIER |
Recherche d'un utilisateur par son nom d'utilisateur |
|
/RedRock/query | PUBLIER | Trouver un rôle par nom de rôle |
| /Roles/StoreRole | PUBLIER |
Créer un rôle |
|
/UserMgmt/GetUserInfo | PUBLIER | Obtenir des informations sur l'utilisateur |
| /SaasManage/AddUsersAndGroupsToRole | PUBLIER |
Ajouter un utilisateur à un rôle |
| /SaasManage/RemoveUsersAndGroupsFromRole | PUBLIER |
Supprimer un utilisateur d'un rôle |
Generate Token
API Endpoint: /oauth2/platformtoken
Method: PUBLIER
Data:
grant_type : client_credentials
champ d'application : tous
client_id : cyberark_service_user
secret_client : cyberark_service_password
Headers:
Accepter : application/json
Content-Type : application/x-www-form-urlencoded
API Request Endpoint:
https://<tenant_url>/oauth2/platformtoken
Sample API Response:
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkRDRTVENUI3MTBEMzc3MEYwNkNCRTUyQzY3RTVGRjY2QTA3MjZFNzUiLCJ4NXQiOiIzT1hWdHhEVGR3OEd5LVVzWi1YX1pxQnliblU*******************************************************************Ef1M6Frjux1pLS4FBFBfb4_IZYbUoA9oNvKN82nL2Wv3ErV7x87gOvmrc63liBYx5-BHH8fXIUN8kA",
"token_type": "Bearer",
"expires_in": 900,
"scope": "all"
}
Obtenir tous les rôles
API Endpoint: /RedRock/query
Method: PUBLIER
Data:
{“Script”: “Select ID, Name from Role order by Name”}
Headers:
Autorisation : Jeton porteur <bearer token>
API Request Endpoint:
https://<tenant_url>/RedRock/query
Sample API Response:
{
"success": true,
"Result": {
"IsAggregate": false,
"Count": 13,
"Columns": [
{
"Name": "ID",
"IsHidden": false,
"DDName": "_ID",
"Title": "ID",
"DDTitle": "ID",
"Description": "Row Identifier (primary key)",
"Type": 12,
"Format": null,
"Width": 0,
"TableKey": "Primary",
"ForeignKey": null,
"TableName": "Role"
},
{
"Name": "Name",
"IsHidden": false,
"DDName": "Name",
"Title": "Name",
"DDTitle": "Name",
"Description": null,
"Type": 12,
"Format": null,
"Width": 0,
"TableKey": "NotAKey",
"ForeignKey": null,
"TableName": "Role"
}
],
"FullCount": 2,
"Results": [
{
"Entities": [
{
"Type": "Role",
"Key": "d47336b0_d7bd_4a65_989e_95606e878cb7",
"IsForeignKey": false
}
],
"Row": {
"_TableName": "roles",
"Name": "Add role to CE users",
"ID": "d47336b0_d7bd_4a65_989e_95606e878cb7"
}
},
{
"Entities": [
{
"Type": "Role",
"Key": "bbf1d29f_7f69_45af_8555_aca99ded577b",
"IsForeignKey": false
}
],
"Row": {
"_TableName": "roles",
"Name": "testuser",
"ID": "bbf1d29f_7f69_45af_8555_aca99ded577b"
}
}
],
"ReturnID": ""
},
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
Recherche d'un utilisateur par son nom d'utilisateur
API Endpoint: /RedRock/query
Method: PUBLIER
Data:
{"Script » : « sélectionnez ID, Nom d’utilisateur à partir des Utilisateurs où Nom d’utilisateur = <user><suffix>@'"}
Headers:
Autorisation : Jeton porteur <bearer token>
API Request Endpoint:
https://<tenant_url>/RedRock/query
Sample API Response:
{
"success": true,
"Result": {
"IsAggregate": false,
"Count": 1,
"Columns": [
{
"Name": "ID",
"IsHidden": false,
"DDName": "_ID",
"Title": "ID",
"DDTitle": "ID",
"Description": "Row Identifier (primary key)",
"Type": 12,
"Format": null,
"Width": 0,
"TableKey": "Primary",
"ForeignKey": null,
"TableName": "User"
},
{
"Name": "Username",
"IsHidden": false,
"DDName": "Username",
"Title": "Username",
"DDTitle": "Username",
"Description": "User name.",
"Type": 12,
"Format": null,
"Width": 0,
"TableKey": "NotAKey",
"ForeignKey": null,
"TableName": "User"
}
],
"FullCount": 1,
"Results": [
{
"Entities": [
{
"Type": "User",
"Key": "d3530f17-0e7f-4114-aeea-b8fbe678814e",
"IsForeignKey": false
}
],
"Row": {
"_TableName": "users",
"ID": "d3530f17-0e7f-4114-aeea-b8fbe678814e",
"Username": "@"
}
}
],
"ReturnID": ""
},
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
Trouver un rôle par Rolename
API Endpoint: /RedRock/query
Method: PUBLIER
Data:
{“Script”: “select ID, Name from Role where Name = ‘System Administrator'”}
Headers:
Autorisation : Jeton porteur <bearer token>
API Request Endpoint:
https://<tenant_url>/RedRock/query
Sample API Response:
{
"success": true,
"Result": {
"IsAggregate": false,
"Count": 1,
"Columns": [
{
"Name": "ID",
"IsHidden": false,
"DDName": "_ID",
"Title": "ID",
"DDTitle": "ID",
"Description": "Row Identifier (primary key)",
"Type": 12,
"Format": null,
"Width": 0,
"TableKey": "Primary",
"ForeignKey": null,
"TableName": "Role"
},
{
"Name": "Name",
"IsHidden": false,
"DDName": "Name",
"Title": "Name",
"DDTitle": "Name",
"Description": null,
"Type": 12,
"Format": null,
"Width": 0,
"TableKey": "NotAKey",
"ForeignKey": null,
"TableName": "Role"
}
],
"FullCount": 1,
"Results": [
{
"Entities": [
{
"Type": "Role",
"Key": "sysadmin",
"IsForeignKey": false
}
],
"Row": {
"_TableName": "roles",
"Name": "System Administrator",
"ID": "sysadmin"
}
}
],
"ReturnID": ""
},
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
Créer un rôle
API Endpoint: Roles/StoreRole
Method: PUBLIER
Data:
{"Description » : « Créé à partir de Netskop URE », « Nom » : <Nom du rôle> <Role Name> }
Headers:
Autorisation : Jeton porteur <bearer token>
API Request Endpoint:
https://<tenant_url>/Roles/StoreRole
Sample API Response:
{
"success": true,
"Result": {
"_RowKey": "8a67f7e2_a9f6_4a9a_bfbb_a11f673323b2"
},
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
Obtenir des informations sur l'utilisateur
API Endpoint: UserMgmt/GetUserInfo
Method: PUBLIER
Data:
NA
Headers:
Autorisation : Jeton porteur <bearer token>
API Request Endpoint:
https://<tenant_url>/UserMgmt/GetUserInfo
Sample API Response:
{
"success": true,
"Result": {
"TenantId": "ABD4143",
"Id": "6c32a200-010d-432a-9b72-f1bbf7b66dd7",
"ExternalUuid": "6c32a200-010d-432a-9b72-f1bbf7b66dd7",
"Name": "tanushree@crest_netskope",
"DisplayName": "tansuhree",
"EmailAddress": "tanushree.kurup@crestdatasys.com",
"MobileNumber": null,
"DirectoryServiceType": "CDS",
"DirectoryServiceId": "09B9A9B0-6CE8-465F-AB03-65766D33B05E",
"DirectoryServiceName": "CDS",
"DirectoryServiceLocalizedName": "CyberArk Cloud Directory",
"IsSysAdmin": true,
"CanChangePassword": true,
"PasswordExpDate": "/Date(253402300799999)/",
"LastPasswordChangeDate": "/Date(-62135596800000)/",
"ThirdPartyOathConfigured": false,
"SqEnabled": true,
"SecurityQuestion": null,
"SecurityQuestionsLastUpdate": null,
"PhonePinLastChangeDate": null,
"LastLoginDate": "/Date(1701671479876)/",
"LastLastLoginDate": "/Date(1701671164189)/",
"PasswordChangeSoftDays": 14,
"PasswordChangeHardHours": 48,
"PasswordResetFlag": 0,
"SelfUnlocked": false,
"HasPicture": false,
"Settings": {
"uisection": {
"doNotShowIdaptiveWelcomeWizard": true
}
},
"HasU2fDeviceWithFacetIdMatched": false,
"SecurityKeyConfigured": false,
"OnDeviceAuthenticatorConfigured": false,
"PreferredCulture": null,
"PreferredTimeZone": null,
"DisplayPreferredCulture": null,
"EnablePurchasedLicenseMenu": false,
"MfaSetupWizardSettings": {
"ShowYubikeyOtpInMfaSetupWizard": false,
"ShowMfaSetupWizard": false,
"ShowPasskeysInMfaSetupWizard": false,
"MobileNumberAttribute": "",
"ShowU2fInMfaSetupWizard": false,
"ShowSecurityQuestionInMfaSetupWizard": false,
"SaveMobileNumberToCloud": false,
"RequiredFactorSetupCount": 0,
"ShowSmsMessageInMfaSetupWizard": false,
"ShowOathPassCodeInMfaSetupWizard": false
},
"IsMobileAttributeConfigured": false,
"MobileDeviceAuthCapableCount": 0,
"SlackAuthEnabled": false,
"SlackMemberIdSet": false,
"YubikeyOtpConfigured": false,
"PasskeyConfigured": false
},
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
Ajouter un utilisateur à un rôle
API Endpoint: /SaasManage/AddUsersAndGroupsToRole
Method: PUBLIER
Data:
{“Utilisateurs”: [“<user_id>”],”Nom”: “<role_id>”}
Headers:
Autorisation : Jeton porteur <bearer token>
API Request Endpoint:
https://<tenant_url>/SaasManage/AddUsersAndGroupsToRole
Sample API Response:
{
"success": true,
"Result": null,
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
Retirer un utilisateur d'un rôle
API Endpoint: SaasManage/RemoveUsersAndGroupsFromRole
Method: PUBLIER
Data:
{“Utilisateurs”: [“<user_id>”],”Nom”: “<role_id>”}
Headers:
Autorisation : Jeton porteur <bearer token>
API Request Endpoint:
https://<tenant_url>/SaasManage/RemoveUsersAndGroupsFromRole
Sample API Response:
{
"success": true,
"Result": null,
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
Matrice de performance
Cette analyse des performances a été réalisée sur un CE à grande pile avec les spécifications de VM ci-dessous.
| Détails de la pile | Taille : Grand
RAM : 32 GO CPU : 16 cœurs |
| Utilisateurs ajoutés/supprimés du rôle | ~ 70 per minute |
Agent utilisateur
L'agent utilisateur ajouté pour ce plugin est au format suivant :
netskope-ce-5.0.0-ure-cyberark-v1.0.0
Workflow
- Add API permissions to CyberArk for a user.
- Configure CyberArk plugin.
- Ajouter une règle de gestion.
- Configurez les correspondances SIEM.
- Validez le plugin.
Cliquer sur « play » pour regarder une vidéo.
Ajouter des autorisations API à l'utilisateur
Suivez ces étapes pour ajouter les autorisations API nécessaires à une intégration réussie du plugin.
- Connectez-vous à votre plateforme CyberArk et allez sur Admin Portal.

- Allez dans Utilisateurs et cliquez sur Tous les utilisateurs dans le panneau de gauche.

- Cliquez sur l'utilisateur que vous utiliserez pour configurer le plugin, faites défiler vers le bas jusqu'au statut et donnez l'autorisation "Is OAuth confidential client" à l'utilisateur, cliquez sur save.

Configurer le plugin CyberArk
- Connectez-vous à Cloud Exchange et accédez à Settings > Plugins. Recherchez et sélectionnez la case CyberArk pour configurer le plugin.

- Entrez ces valeurs :
- Nom de la configuration : Saisissez un nom pour la configuration.
- Sync Interval : Entrez l'heure à laquelle le plugin sera synchronisé.

- Cliquez sur Next.
- Entrez ces valeurs :
- Tenant URL: URL of your CyberArk platform.
- Nom d'utilisateur : Nom d'utilisateur utilisé lors de la connexion à la plate-forme CyberArk.
- Password: Password associated with the CyberArk Username.

- Cliquez sur Next puis sur Save.

Ajouter une règle métier pour CyberArk
Utilisez la règle de gestion pour filtrer les utilisateurs sur lesquels vous souhaitez effectuer des actions. Procédez comme suit pour configurer une règle de gestion :
- Allez à User Risk Exchange > Business Rule et cliquez sur Create New Group.
- Ajoutez les filtres en fonction de vos besoins et cliquez sur Save.



Ajouter des actions
Vous trouverez ci-dessous la liste des actions disponibles pour le plugin CyberArk.
Ajouter à un rôle
Lorsqu'une action se déclenche, cette action ajoute des utilisateurs au rôle qui a été mentionné lors de la création de la configuration de l'action.
- Allez à User Risk Exchange > Actions et cliquez sur Add Action Configuration.

- Select les règles de gestion que vous avez ajoutées.
- Select le plugin CyberArk en tant que configuration.
- Select Action comme Ajouter au rôle.

- Select un rôle existant dans la liste déroulante Nom du rôle pour ajouter l'utilisateur à un rôle existant, ou sélectionnez Create new Role.
- Saisissez un nom de rôle si vous avez sélectionné l'option Créer un rôle New dans le paramètre Groupe.
- Cliquez sur Save.
Retirer d'un rôle
Lorsqu'une action se déclenche, cette action supprime les utilisateurs du rôle qui a été mentionné lors de la création de la configuration de l'action.
- Allez à User Risk Exchange > Actions et cliquez sur Add Action Configuration.
- Select une règle de gestion.
- Select le plugin CyberArk en tant que configuration.
- Select Action comme Remove from the Role.
- Select un rôle dans la liste déroulante Nom du rôle pour supprimer les utilisateurs qui correspondent à la règle de gestion du rôle sélectionné.

- Cliquez sur Save.

No Action
Cette action n'effectuera aucune action sur les utilisateurs. Vous pouvez utiliser cette action pour générer des alertes UBA dans le module Netskope Ticket Orchestrator.
Validation du plugin CyberArk
Dans Cloud Exchange
- Allez dans User Risk Exchange > Logging et recherchez les journaux du plugin CyberArk.

In CyberArk
- Connectez-vous à votre plateforme CyberArk et accédez au portail d'administration.
- Go to Roles under Core Services and select the Role you have used while configuring the action.

- Allez dans Membres et vérifiez les utilisateurs listés dans le membre en fonction des actions "Ajouter au rôle" et "Retirer du rôle".

Dépannage
Impossible de récupérer les rôles lors de la configuration de l'action Ajouter au rôle
While configuring the plugin no roles are fetched in the Add to Role action, it could be due to one of the below reasons.
- Aucun rôle n'est disponible sur la plateforme CyberArk.
- Autorisation insuffisante de l'utilisateur.
What to do:
Pour le premier point "Aucun rôle n'est disponible sur la plateforme CyberArk", vérifiez si le rôle est présent sur le CyberArk ou non, en suivant les étapes ci-dessous :
- Connectez-vous à CyberArk et accédez au portail d'administration.
- Allez dans Rôles sous Core Services et vérifiez la liste des rôles.
Si aucun rôle n'est listé, cela signifie que la plateforme elle-même n'a pas de rôle disponible. Créez donc un rôle New à l'aide de la configuration d'action sur CE ou directement sur la plateforme CyberArk.
Si le rôle est présent sur CyberArk mais qu'il n'est pas tiré/cherché dans la configuration de l'action, cela peut être dû à une "autorisation insuffisante de l'utilisateur". Pour cela, vérifiez les droits d'utilisateur requis pour le plugin.
L'action est ignorée pour l'utilisateur
Vous trouverez ci-dessous les scénarios dans lesquels l'action n'est pas effectuée.
- Les utilisateurs ne sont pas présents sur CyberArk.
- Rôles sur CyberArk avec accès en lecture seule
- Les groupes sur CyberArk ont un rôle dynamique
NOTE: Il a été remarqué que les journaux des actions effectuées avec succès sur l'utilisateur sont reçus dans l'EC pour l'ajout d'un utilisateur à un rôle/groupe. Mais les utilisateurs ne sont pas ajoutés dans les groupes, peut-être parce que le type de rôle est dynamique. L'action ne sera pas non plus exécutée si le groupe a un accès en lecture seule.
You will receive an error shown in the below screenshot if the group is Dynamic with ReadOnly access.

De plus, CyberArk ne permet pas d'effectuer des actions sur les rôles ci-dessous, ils seront disponibles sur la plateforme CyberArk et dans CE, mais aucune action ne sera effectuée pour ces rôles même s'ils sont statiques et ne sont pas en lecture seule.
- Utilisateurs Admin CyberArk Remote Access
- SWS Admin
- Auditeur SWS


What to do: Vérifiez le domaine de l'utilisateur sur la page Utilisateurs de CE et vérifiez le suffixe ajouté sur la plateforme CyberArk. Le plugin CyberArk n'effectue que les actions d'ajout et de suppression de rôle sur les utilisateurs correspondant à la règle métier déjà présente sur la plateforme CyberArk. Les utilisateurs sont mis en correspondance en fonction de leur nom d'utilisateur, qui est une combinaison de (utilisateur + domaine). Par conséquent, les utilisateurs doivent s'assurer de créer le même domaine (suffixe) sur CyberArk que leur domaine de messagerie afin que les actions soient effectuées.
Sur CE, allez à Risk Exchange > User Risk Exchange > Users.

Sur la plateforme CyberArk, cliquez sur l’utilisateur listé sous Tous les utilisateurs (Core Services > Users > All Users).

Vérifiez le suffixe et comparez le suffixe avec le domaine de l'utilisateur présent sur le Netskope CE.
Par exemple : si l’adresse e-mail de l’utilisateur récupérée dans Netskope CE est de la forme abc@netskope.com, et le domaine (suffixe) créé sur la plateforme Cyber doit être Netskope.
If the domain and suffix do not match, the user is not considered to be present on CyberArk and the action will not be performed.

