Passer au contenu principal

Migration de la vérification d'identité à la sécurité Messenger avec JWTs

Comment protéger les sessions Messenger de vos users contre l'usurpation d'identité, le vol de session et les mises à jour non autorisées des attributs de données

Écrit par Penny Gray

Si vous avez installé Messenger sur votre site pour les users connectés, il est essentiel de le sécuriser et d'empêcher les acteurs malveillants d'usurper l'identité de vos users ou d'envoyer des données non autorisées.

Pour améliorer la sécurité et la flexibilité pour nos clients, nous avons introduit JSON Web Tokens (JWTs) comme méthode plus sûre et évolutive pour authentifier les users dans Messenger.

Si vous utilisez actuellement Identity Verification (IDV) pour vérifier les users, passer aux JWTs vous offrira :

  • Un meilleur contrôle de l'authentification – Gérez vous-même l'expiration et la révocation des sessions, plutôt que de dépendre de configurations fixes.

  • Une sécurité renforcée – Les JWTs permettent des tokens signés et limités dans le temps, réduisant le risque d'attaques par rejeu.

  • Une meilleure sécurité des données – Définissez précisément quels attributs users peuvent être mis à jour, réduisant l'exposition des données sensibles.

  • Une solution pérenne – Les JWTs sont le remplacement recommandé pour IDV, garantissant que votre système d'authentification reste conforme aux meilleures pratiques.


Qui doit migrer ?

Cette migration concerne tous les clients utilisant actuellement IDV, surtout si vous :

✅ Besoin d'un meilleur contrôle de l'expiration des sessions et de la révocation des tokens

✅ Souhaitez appliquer des mises à jour sécurisées et spécifiques aux users des attributs

✅ Gérez des données clients sensibles et exigez une authentification renforcée

✅ Prévoyez des améliorations de sécurité à long terme dans votre espace de travail

Bien que IDV fonctionne encore pour l'instant, les JWTs offrent une approche plus moderne et sécurisée, conforme aux meilleures pratiques d'authentification. Ce guide vous accompagnera étape par étape dans la migration.

Que se passe-t-il avec l'historique des conversations Messenger si je n'utilise pas les JWTs ?

Si votre canal Messenger n'a pas la sécurité Messenger avec JWTs configurée, vos clients ne peuvent voir que leur propre historique de conversation des 14 derniers jours dans Messenger. Cette limite a été introduite en avril 2026 comme mesure de sécurité.

Pour restaurer la visibilité complète de l'historique des conversations pour vos clients, configurez la sécurité Messenger avec JWTs en suivant les étapes de migration ci-dessous. Une fois les JWTs activés sur une plateforme, la limite de 14 jours est supprimée pour cette plateforme.

Les conversations de plus de 14 jours sont cachées aux clients dans Messenger, mais pas supprimées. Elles restent visibles pour vos coéquipiers dans l'Inbox. Pour plus de détails, voir Visibilité de l'historique des conversations utilisateur.

Principales différences entre Identity Verification et la sécurité Messenger avec JWTs

Identity Verification

Sécurité Messenger avec JWTs

Méthode de vérification

Hachage signé HMAC-SHA256

Token JWT signé HMAC-SHA256

Supporte l'expiration ?

Non

Oui

Supporte les mises à jour sécurisées des données ?

Non

Oui

Recommandé pour

Vérification d'identité basique dans Messenger

Authentification sécurisée avec meilleur contrôle des sessions et gestion sécurisée des données


Étapes de migration

Étape 1 : Mettez à jour votre intégration pour générer des JWTs au lieu de hachages

  1. Arrêtez de générer des signatures HMAC-SHA256 (alias user_hashes) pour Identity Verification.

  2. [optionnel] Générez une nouvelle clé secrète pour votre Messenger, en choisissant les plateformes auxquelles elle doit s'appliquer

  3. Générez un JWT en utilisant votre clé secrète.

Si Identity Verification est déjà activé pour votre espace de travail (indiqué par vos paramètres Messenger affichant "securely installed"), Intercom n'acceptera que les requêtes contenant soit un user hash valide, soit un JWT valide.
​
Si vous souhaitez vérifier que votre implémentation JWT fonctionne comme prévu avant de basculer, nous recommandons de faire l'intégration d'abord sur votre espace de test.
​
​Note : les espaces de test et de production ont des clés secrètes Messenger différentes et génèrent donc des user hashes et JSON web tokens différents.

Voici un exemple de configuration côté serveur pour Node.js :

const jwt = require("jsonwebtoken");

const payload = {
user_id: "USER_ID_HERE", // Required
email: "EMAIL_ADDRESS_HERE", // Optional
data_attribute: "YOUR_DATA", // Optional
exp: Math.floor(Date.now() / 1000) + 3600 // Expires in 1hr
};

const secret = process.env.MESSENGER_SECRET_KEY || "YOUR_MESSENGER_SECRET_KEY"; // Secure key storage

const intercomUserJwt = jwt.sign(payload, secret, { algorithm: "HS256" });

Que mettre dans la charge utile de votre JWT :

  • user_id pour identifier le user. Ce champ est obligatoire.

  • Un horodatage optionnel (exp) pour l'expiration

  • Tous les autres attributs de données que vous souhaitez envoyer de manière sécurisée pour vos users

Pour des instructions détaillées sur la génération de JWTs pour votre espace de travail, consultez notre article principal du help center ou visitez vos paramètres de sécurité.

Étape 1a : Une note sur les attributs de données

Si vous envoyez actuellement des attributs de données sur vos users via Messenger, vous devez mettre à jour votre intégration pour envoyer ces attributs de manière sécurisée dans votre JWT user. Pour ce faire, ajoutez les attributs à votre charge utile et assurez-vous que toutes les requêtes Messenger non sécurisées soient bloquées.

Dans l'exemple de code ci-dessus, notre charge utile signe le user_id et le email. Elle inclut également une expiration, qui doit aussi être dans la charge utile.

Pour ces attributs, nous devons maintenant désactiver les mises à jour Messenger non sécurisées. Cela signifie qu'ils ne peuvent être mis à jour que via un JWT valide et jamais sans.

Nous vous recommandons d'activer ce bouton pour tout attribut envoyé dans votre JWT. Vous pouvez consulter les attributs de votre espace de travail sous Paramètres > Données > People

Note : Ce bouton de mise à jour des attributs ne vous empêche pas de collecter des données directement auprès des leads avec un bot. Ces données proviennent directement de l'user.

Étape 2 : Mettez à jour votre extrait frontend pour envoyer des JWTs pour les users

Au lieu de passer une signature HMAC pour IDV, passez le JWT dans les paramètres Messenger sous intercom_user_jwt

Pour le Web (SDK JavaScript) :

window.Intercom("boot", {
api_base: "https://api-iam.intercom.io",
app_id: "<YOUR_APP_ID_HERE",
intercom_user_jwt: "<YOUR_USER_JWT_HERE>"
};

React : Si vous utilisez le SDK React, api_base n'est pas nécessaire dans l'appel de démarrage comme pour l'extrait JavaScript vanilla montré ci-dessus — le SDK React gère cela en interne. Incluez api_base uniquement si vous utilisez l'extrait JavaScript simple.

Comme indiqué dans la section précédente, nous envoyons désormais nos attributs de données dans le JWT et ils ont été retirés de l'extrait.

Pour des instructions détaillées sur la génération de JWTs pour votre espace de travail, consultez notre article principal du help center ou visitez vos paramètres de sécurité. Pour les instructions mobiles, veuillez consulter notre documentation développeur pour iOS et Android.


Application obligatoire des JWTs sur toutes les requêtes

Obtenir un JWT valide accepté sur des requêtes individuelles est une étape distincte de l'exiger sur chaque requête. Pour exiger un JWT valide pour chaque requête Messenger à l'avenir, vous devez également activer Appliquer la sécurité Messenger dans Paramètres > Messenger > Sécurité. Tant que ce bouton n'est pas activé, l'authentification JWT peut fonctionner correctement sans être appliquée à l'ensemble de l'espace de travail.

Dépannage

Il existe des journaux d'échec détaillés et des outils de débogage de token dans vos paramètres de sécurité pour aider à la migration vers les JWTs.

Pourquoi ai-je une erreur 403 Forbidden après la migration vers les JWTs ?

Une erreur 403 "Forbidden request" après la migration vers la sécurité Messenger avec JWTs, même si votre JWT est valide, se produit lorsque l'API Messenger pour le web est désactivée dans votre espace de travail. Tant qu'elle est désactivée, Messenger rejette tous les users connectés et n'accepte que les visiteurs anonymes, peu importe si le user_id du JWT correspond à l'external_id du contact.

Pour corriger l'erreur 403, allez dans Paramètres > Canaux > Messenger > Installation, sélectionnez For users with logins et activez l'option Enable the Messenger API to continue installation pour le web. Redémarrez ensuite Messenger avec votre JWT.


FAQ

Que se passe-t-il si je ne migre pas ?

Identity Verification continuera de fonctionner pour l'instant, mais les JWTs offrent une sécurité renforcée et un meilleur contrôle.

Comment révoquer une session JWT ?

Vous pouvez définir une courte expiration (exp) ou faire tourner les clés de signature pour invalider les anciens tokens.

Puis-je utiliser Identity Verification et JWTs ensemble ?

Une fois l'authentification JWT activée pour une plateforme, Identity Verification n'est plus nécessaire. Cependant, vous pouvez utiliser JWTs et Identity Verification indépendamment sur le web, iOS et Android car ils sont configurés individuellement.

Avez-vous trouvé la réponse à votre question ?