Moniteur EUM (Web UI)
Le type de moniteur EUM (End User Monitoring) execute des parcours utilisateur multi-etapes dans un vrai navigateur web, exactement comme un utilisateur final les vivrait. Cette page est la specification complete du moteur EUM : capacites, fonctions de script des scenarios, support TOTP/MFA et integration des secrets/coffres-forts.
Vue d’ensemble
| Propriete | Valeur |
|---|---|
| Moteur | Selenium 4 WebDriver + proxy BrowserMob |
| Navigateurs | Chrome, Firefox, Edge |
| Source du scenario | Enregistre avec MNS IDE (ou Selenium IDE) |
| Base de donnees | exec.db |
| Execute sur | La sonde Monitor |
Les scenarios EUM sont executes en mode headless par defaut sur la sonde ; chaque execution rejoue le parcours enregistre, mesure chaque transaction declaree et remonte les temps, captures d’ecran, video et donnees HAR vers le Webserver.
Capacites
- Enregistrement de transactions multi-etapes (via MNS IDE ou Selenium IDE)
- Chronometrage individuel des transactions avec seuils critique/majeur, enrichi des metriques navigateur
window.performance - Capture d’ecran : sur erreur, par transaction, ou a chaque etape (mode photo)
- Enregistrement video de l’execution complete
- Capture HAR (HTTP Archive) de tout le trafic reseau via le proxy embarque
- Support TOTP (Time-based One-Time Password) pour le 2FA / MFA
- Identifiants chiffres — embarques (AES) ou recuperes depuis un coffre-fort externe a l’execution
- Configuration de proxy d’entreprise
- Verification de similarite visuelle
Fonctions de script des scenarios
Les fichiers de scenario sont generes par l’enregistreur MNS IDE et appellent les fonctions integrees suivantes :
| Fonction | Role |
|---|---|
mnsStartTransaction(name, timeout, critical_ms, major_ms) |
Demarre une transaction nommee et chronometree avec seuils |
mnsStopTransaction() |
Arrete la transaction courante et enregistre son temps + les metriques window.performance |
captureScreenshotReport(...) |
Capture une capture d’ecran dans le rapport d’execution |
highlightElement(element) |
Met en evidence visuellement un element avant d’interagir avec lui |
acceptCookie(...) |
Ferme les bandeaux de consentement aux cookies |
waitForWindow(...) |
Attend et bascule vers une nouvelle fenetre/onglet du navigateur |
MNSDecrypt("...") |
Dechiffre un identifiant chiffre embarque a l’execution |
Exemple :
mnsStartTransaction("Login Page", 30, 5000, 3000) // name, timeout, critical_ms, major_ms
driver.findElement(By.id("username")).sendKeys("user")
driver.findElement(By.id("password")).sendKeys(MNSDecrypt("q1hjZXR0ZSBjbGUgZXN0..."))
driver.findElement(By.id("submit")).click()
mnsStopTransaction()
Support TOTP / MFA
Le moteur EUM peut generer des codes TOTP pendant un scenario, permettant aux moniteurs de se connecter a des applications protegees par une authentification a deux facteurs.
Specification supportee : RFC 6238
| Parametre | Valeur |
|---|---|
| Algorithme | HMAC-SHA1 |
| Longueur du code | 6 chiffres |
| Pas de temps | 30 secondes |
| Encodage du secret partage | Base32 |
Ce sont les memes parametres que Google Authenticator : tout fournisseur d’identite proposant un enrolement TOTP de type “Google Authenticator” est donc compatible — y compris Okta, Microsoft Entra ID, Google et Duo.
Le secret partage TOTP est stocke chiffre en AES et transmis au moteur a l’execution via la variable d’environnement TOTP_SECRET_<urlTitle>.
Compatibilite Okta
| Facteur Okta | Supporte |
|---|---|
| Facteur Google Authenticator (TOTP standard) | ✅ Correspondance exacte avec les parametres supportes |
| Okta Verify — mode TOTP | ✅ Capturer le secret partage au moment de l’enrolement |
| Okta Verify — Push | ❌ Protocole push proprietaire, pas du TOTP |
| Facteur Custom TOTP avec parametres non standard (SHA-256/512, 8 chiffres, pas de temps ≠ 30 s) | ❌ Non supporte actuellement |
Secrets et integration avec les coffres-forts
Les scenarios EUM ne stockent jamais de mots de passe en clair. Deux mecanismes sont disponibles :
1. Identifiants chiffres embarques
Les mots de passe peuvent etre embarques directement dans le scenario sous forme de chaines chiffrees en AES et dechiffres a l’execution avec MNSDecrypt("..."). Les operateurs generent les chaines chiffrees avec le mode de chiffrement de mot de passe du moteur et les collent dans le scenario.
2. Coffres-forts externes
Les identifiants peuvent etre recuperes a l’execution depuis un gestionnaire de secrets externe, de sorte qu’ils n’apparaissent jamais dans le scenario :
| Fournisseur | vaultType |
|---|---|
| HashiCorp Vault | hashicorp |
| Azure Key Vault | azure |
| CyberArk Conjur | cyberark |
A l’execution, les identifiants recuperes sont transmis au scenario via des variables d’environnement par moniteur :
| Variable d’environnement | Contenu |
|---|---|
VAULT_USERNAME_<urlTitle> |
Nom d’utilisateur recupere depuis le coffre-fort |
VAULT_PASSWORD_<urlTitle> |
Mot de passe recupere depuis le coffre-fort |
TOTP_SECRET_<urlTitle> |
Secret partage TOTP chiffre |
Les parametres de connexion au coffre-fort (vaultType, URLs, jetons) se configurent sur la sonde Monitor — voir Configuration du Monitor → Integration avec les coffres-forts.