Objectif
Cyber Guru offre la possibilité d’obtenir les classements des utilisateurs et des équipes présents sur la plateforme via une API REST qui renvoie les données au format JSON, prêtes à être intégrées dans les tableaux de bord, portails ou systèmes de reporting du client.
L’automatisation de la récupération des données dépend des processus et de l’architecture du client et, pour cette raison, ne peut pas être prise en charge par Cyber Guru.
Ce guide contient les directives et les paramètres pour l’appel du service.
Périmètre
Les informations s’appliquent à la plateforme de Cyber Security Awareness Cyber Guru 2.0.
Prérequis
- Le client doit disposer des ressources technologiques nécessaires pour pouvoir appeler des API REST.
Procédure
Cyber Guru met à disposition deux API REST :
Obtenir un token :
URL : https://login.platform.cyberguru.eu/realms/{TENANT}/protocol/openid-connect/token
Cette API permet d’obtenir un jeton d’autorisation. Paramètres d’appel (méthode POST) :
- client_id : ext-api
- client_secret : (fourni par Cyber Guru)
- grant_type : client_credentials
Obtenir les classements :
URL : https://<host>/ext/report/rankings
Permet d’obtenir les classements des utilisateurs et des équipes de l’entreprise. Pour appeler l’API, il est nécessaire de fournir le token obtenu précédemment comme Bearer token.
L’API accepte les paramètres suivants (méthode GET) :
| Paramètre | Type | Obligatoire | Description |
| type | entier | Oui | 0 = utilisateurs de l’entreprise, 1 = équipes de l’entreprise, 2 = utilisateurs d’une équipe spécifique |
| team | chaîne | Uniquement si type = 2 | Nom de l’équipe dont on souhaite obtenir le classement |
| limit | entier | Non | Nombre maximum de résultats par page (min : 1, max : 1000) |
| page | entier | Non | Page de résultats à récupérer (utilisé avec limit) |
Exemples de réponse
Classement des utilisateurs de l’entreprise (type = 0) :
{
"accounts": [
{ "position": "1", "firstname": "Mario", "lastname": "Rossi", "team": "Sales EMEA", "points": "36" },
{ "position": "2", "firstname": "Alessandro", "lastname": "Bianchi", "team": "IT Operations", "points": "32" }
]
}
Classement des équipes de l’entreprise (type = 1) :
{
"teams": [
{ "position": "1", "team": "Sales EMEA", "members": "23", "points": "31" },
{ "position": "2", "team": "IT Operations", "members": "34", "points": "26" }
]
}
Classement des utilisateurs d’une équipe spécifique (type = 2, ex. team = IT Operations) :
{
"accounts": [
{ "position": "1", "firstname": "Mario", "lastname": "Bianchi", "team": "IT Operations", "points": "36" },
{ "position": "2", "firstname": "Ciccio", "lastname": "Verdi", "team": "IT Operations", "points": "32" }
]
}
Réponse avec pagination :
Lorsque les paramètres limit et page sont utilisés, la réponse inclut un objet pagination avec les informations suivantes :
| Champ | Description |
| current_page | Page courante |
| per_page | Éléments par page |
| total_items | Nombre total d’éléments disponibles |
| total_pages | Nombre total de pages disponibles |
| has_next / has_prev | Indique s’il existe une page suivante/précédente |
| next_page / prev_page | Numéro de la page suivante/précédente (null si non présente) |
| first_page / last_page | Première et dernière page disponible |
Erreurs
| Code HTTP | Code erreur | Description |
| 400 | EXT_1000 | Paramètre d’entrée non valide (le message indique lequel) |
| 404 | EXT_1003 | Erreur lors de la récupération des données |
| 422 | EXT_1007 | Le parcours (level_uuid) indiqué n’existe pas |
| 422 | EXT_1008 | L’équipe indiquée n’existe pas dans l’entreprise |
| 500 | EXT_1001 | Token expiré ou non valide |
Cyber Guru est disponible pour accompagner le client lors de la phase de configuration et de test sur l’environnement de staging et, après validation, sur l’environnement de production.