Use Cases

Utiliser l'extension CaptchaAI dans une session Citrix VDI

Périmètre sûr : ce guide s'applique exclusivement à vos propres applications, à vos environnements de QA, de préproduction ou de production, ou à des systèmes que vous êtes autorisé à tester par écrit. Il ne couvre ni l'automatisation de sites tiers, ni la neutralisation de protections, ni l'évasion de systèmes anti-bot.

Dans une session Citrix VDI, l'extension CaptchaAI reste fiable à une condition : la traiter comme un profil de navigateur reproductible, provisionné à chaque ouverture de session, et non comme un bouton activé une fois. Selon la configuration du poste, l'état du navigateur disparaît à la déconnexion ; l'enjeu est de le rendre déterministe d'une session à l'autre.

Pourquoi une session Citrix VDI change la donne

En VDI, deux modèles de poste coexistent :

  • Persistant : le profil de navigateur est conservé entre les sessions.
  • Non persistant : le poste repart d'une image dorée à chaque connexion ; tout ce qui n'est pas redéployé est perdu (extension, clé).

La parade n'est pas de figer un poste, mais de scripter le chargement de l'extension et du profil au démarrage. Citrix Profile Management ou FSLogix conservent le répertoire, mais reconstruire l'état à l'ouverture reste le plus robuste.

Scénario réel : un poste VDI non persistant

Prenons un cas concret : une suite de tests QA qui doit franchir un défi CAPTCHA sur un poste Citrix non persistant recyclé chaque nuit. Le premier lancement passe en cinq minutes ; l'intégration ci-dessous garde ce comportement stable.

Étapes de l'intégration

  1. L'orchestrateur déclenche le workflow ; CaptchaAI n'intervient qu'aux étapes où un défi apparaît.
  2. Votre code envoie la tâche à l'API, puis interroge le résultat.
  3. Appliquez le token dans le contexte de navigateur qui a déclenché le défi, avec le même cookie jar : une session non persistante multiplie les rejets.
  4. Les autres étapes sont des appels HTTP vers votre backend.

Exemple de code

Création de la tâche depuis votre propre suite de tests, avant de charger la page qui porte le défi :

import fetch from 'node-fetch';

const API_KEY = process.env.CAPTCHAAI_KEY;

export async function createTurnstileTask(siteKey, pageUrl) {
  const res = await fetch('https://api.captchaai.com/createTask', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      clientKey: API_KEY,
      task: {
        type: 'TurnstileTaskProxyless',
        websiteURL: pageUrl,
        websiteKey: siteKey,
      },
    }),
  });
  const data = await res.json();
  return data.taskId;
}

Observabilité et journalisation

Remontez ces signaux vers vos tableaux de bord :

  • durée d'obtention du token, code retour HTTP, identifiant de tâche, taille de la file ;
  • journaux séparés par environnement et corrélés à votre traçage distribué (OpenTelemetry) ;
  • données personnelles minimisées : identifiants techniques, pas le contenu des formulaires (RGPD).

Mesurer la réussite

Suivez ces indicateurs :

  • Latence de première résolution (médiane, P95) : révèle les retries.
  • Taux de réussite par famille : vos paramètres collent au défi réel.
  • Acceptation en aval : résoudre le défi diffère de réussir le workflow.
  • Coût par résolution acceptée : stable si les paramètres restent corrects.

Liste de contrôle

  • Le périmètre est limité à vos propres applications ou à des sources autorisées.
  • L'extension et le profil sont provisionnés au lancement, sans dépendre d'un état de poste conservé.
  • La clé CaptchaAI est stockée dans un secret CI ou un coffre, jamais dans le code ni l'image du poste.
  • Un retry idempotent borne les erreurs transitoires (trois tentatives, backoff, plafond).

Dépannage

Symptôme Cause probable Correctif
Extension absente après connexion Poste non persistant : profil réinitialisé. Chargez extension et profil au démarrage par script.
Token refusé après résolution Token appliqué dans une autre session que le défi. Gardez résolution et envoi dans le même contexte de navigateur.
Latence en hausse en fin de journée File saturée ou threads insuffisants. Vérifiez l'allocation de threads de votre offre.

FAQ

Comment provisionner l'extension sur un poste Citrix VDI non persistant ?

Chargez l'extension et son répertoire de profil au lancement du navigateur, via un script exécuté à chaque ouverture de session : sur une image recréée chaque nuit, seul le redéployé survit.

Le profil de navigateur doit-il persister entre les sessions ?

Pas si vous le reconstruisez au démarrage. Un profil persistant accélère le lancement, mais un profil scripté reste plus prévisible.

Peut-on utiliser l'extension avec un navigateur headless dans le VDI ?

Une extension a besoin d'un contexte de navigateur réel. Privilégiez un contexte non headless piloté par votre orchestrateur ; sinon, passez par l'API CaptchaAI.

Comment le coût évolue-t-il quand le volume augmente ?

La facturation est basée sur les threads, avec des résolutions illimitées par thread. Démarrez avec l'offre BASIC ($15/mois, 5 threads), puis montez selon votre parallélisme.

Guides connexes

Fiabilisez vos workflows CAPTCHA avec une approche méthodique et reproductible. – Obtenez votre clé CaptchaAI.

Les commentaires sont désactivés pour cet article.