Vérification d'identité des clients connectés

Mis à jour le 9 nov. 20268 min de lecture
Français
Sur cette page

La vérification d'identité indique au widget de chat qui écrit quand un client est connecté sur votre site web. Votre serveur signe l'identifiant utilisateur du client avec une clé secrète de Deskwoot, et votre page transmet l'utilisateur et cette signature au widget. Le client discute alors sous son vrai nom et son vrai e-mail, passe le formulaire avant le chat, et votre équipe le voit comme un utilisateur vérifié. Vous trouvez la clé dans votre boîte de réception de chat en direct, sous Reconnaître les clients connectés. Sans signature valide, le chat fonctionne toujours, mais le client écrit comme un visiteur anonyme.

À quoi elle sert

Un chat dans un espace client, un espace membre ou votre application en a le plus besoin. Vos clients y sont déjà connectés. Leur redemander leur nom et leur e-mail n'a pas de sens, et votre équipe veut savoir avec certitude qui écrit. Avec la vérification d'identité :

  • Le client discute sous son vrai nom et son vrai e-mail. Le formulaire avant le chat et la question sur son e-mail sont sautés.
  • Chaque visite, depuis n'importe quel appareil, arrive sur le même contact : votre équipe voit tout de suite les conversations passées, les notes et les attributs.
  • Dans la conversation et sur la page du contact, une coche à côté du nom indique que l'identité est vérifiée. Survolez-la pour voir Utilisateur vérifié.
  • Personne ne peut se faire passer pour l'un de vos clients. Le widget n'accepte une identité qu'avec une signature de votre serveur, et seul votre serveur connaît la clé. Deskwoot vérifie la signature sans aucun accès à vos systèmes.

Étape 1 : créez votre clé secrète

  1. Allez dans Paramètres > Boîtes de réception et ouvrez votre boîte de réception de chat en direct.
  2. Sous Configuration et confidentialité, cliquez sur Reconnaître les clients connectés.
  3. Sous Clé secrète, cliquez sur Créer une clé. Deskwoot crée la clé et l'affiche tout de suite.
  4. Cliquez sur Copier et enregistrez la clé sur votre serveur, par exemple dans une variable d'environnement nommée DESKWOOT_IDENTITY_SECRET.

Dès lors, la ligne affiche Configuré. Vous pouvez revenir à tout moment : Afficher montre de nouveau la clé et Copier la copie. Chaque boîte de réception de chat en direct a sa propre clé, et une signature faite avec elle ne fonctionne que pour le widget de cette boîte de réception.

La clé doit rester sur votre serveur. Ne la mettez jamais dans du code qui s'exécute dans le navigateur et n'y calculez jamais la signature. Toute personne qui a la clé peut se faire passer pour n'importe lequel de vos clients.

Étape 2 : signez l'identifiant utilisateur sur votre serveur

Pour chaque client connecté, votre serveur calcule un HMAC SHA256 de son identifiant utilisateur avec la clé secrète et l'écrit en hexadécimal. Cette valeur est le identifierHash. Utilisez un identifiant qui ne change jamais, comme l'identifiant de votre base de données, et utilisez la clé exactement comme Deskwoot l'affiche, en texte.

Node.js :

import crypto from "crypto";

const identifierHash = crypto
  .createHmac("sha256", process.env.DESKWOOT_IDENTITY_SECRET)
  .update(userId)          // your stable user id, as a string
  .digest("hex");

Python :

import hashlib, hmac, os

identifier_hash = hmac.new(
    os.environ["DESKWOOT_IDENTITY_SECRET"].encode(),
    user_id.encode(),
    hashlib.sha256,
).hexdigest()

PHP :

$identifierHash = hash_hmac("sha256", $userId, getenv("DESKWOOT_IDENTITY_SECRET"));

Le résultat fait toujours 64 caractères. Le panneau de Deskwoot montre aussi l'exemple Node.js, sous Étape 1 : sur votre serveur.

Étape 3 : transmettez l'utilisateur au widget

Dans le code du widget de votre page, ajoutez un objet user à window.deskwootSettings. Votre serveur remplit les valeurs quand il génère la page pour un client connecté.

window.deskwootSettings = {
  widgetToken: "YOUR_WIDGET_TOKEN",
  user: {
    identifier: "user_4711",            // your stable user id
    identifierHash: "<HMAC-SHA256 of identifier, computed on your server>",
    email: "jane@example.com",          // optional
    name: "Jane Doe"                    // optional
  }
};
  • identifier : l'identifiant stable de votre utilisateur, en texte. C'est le seul champ signé, alors envoyez exactement le texte que vous avez signé. Un nombre se met aussi entre guillemets, comme "4711". Jusqu'à 128 caractères.
  • identifierHash : la signature de l'étape 2.
  • email et name : facultatifs. Ils s'affichent sur le contact dans Deskwoot.
  • attributes : des informations facultatives comme un forfait, voir « Envoyez plus d'informations avec des attributs » plus bas.

Pour les visiteurs qui ne sont pas connectés, laissez user de côté : ils discutent comme visiteurs anonymes, comme avant. Le panneau de Deskwoot montre ce code avec votre propre jeton de widget, sous Étape 2 : sur votre page. Si le widget n'est pas encore sur votre site, commencez par Intégrer le widget.

Quand votre application connecte les gens après le chargement de la page

Dans une application qui connecte le client sans charger de nouvelle page, appelez window.deskwoot.identify(user) avec le même objet dès que votre serveur l'a signé. Cela met à jour le visiteur actuel sans rechargement.

window.deskwoot.identify({
  identifier: "user_4711",
  identifierHash: "<HMAC-SHA256 of identifier, computed on your server>",
  email: "jane@example.com",
  name: "Jane Doe"
});

Si le client est déjà connecté au chargement de la page, définissez plutôt user dans window.deskwootSettings avant le code du widget. Le chat reste alors ouvert d'un rechargement à l'autre. Avec identify() après le chargement, chaque rechargement commence par un chat vide, qui revient dès que le client est vérifié.

Envoyez plus d'informations avec des attributs

Avec attributes, vous pouvez envoyer une liste simple d'informations, comme { plan: "Pro" } ou un identifiant d'entreprise. Elles s'affichent sur le contact pour votre équipe.

La signature ne couvre que l'identifiant utilisateur, un visiteur pourrait donc modifier ces attributs dans le navigateur. C'est pourquoi le bot IA ne lit jamais les attributs non signés. Pour que l'IA réponde à partir de ces attributs, signez-les aussi sur votre serveur et envoyez attributesHash et attributesIssuedAt (l'heure unix en secondes à laquelle vous les avez signés) avec eux. De plus, l'IA ne les lit que si elle a le droit de consulter les contacts. Signez de nouveau à chaque chargement de page : Deskwoot utilise un ensemble signé pendant 24 heures au maximum. Ne signez que ce que le client a le droit de voir, car l'IA peut lui dire ce que contient un attribut signé.

Le format exact, avec du code pour Node.js et Python et un vecteur de test pour vérifier votre code, se trouve dans la documentation du widget.

Sans vérification d'identité, ou quand la signature est fausse

  • Pas de user dans les réglages : le visiteur discute de façon anonyme, et le formulaire avant le chat et la question sur l'e-mail s'affichent comme vous les avez configurés sous Avant le chat.
  • Signature fausse : Deskwoot refuse l'identité. Le chat fonctionne toujours, mais le client discute comme visiteur anonyme et voit le formulaire avant le chat si vous en utilisez un. Le client ne voit aucun message d'erreur. Il se passe la même chose quand la boîte de réception n'a pas encore de clé, quand l'identifiant utilisateur n'est pas exactement le texte que vous avez signé, quand il dépasse 128 caractères ou quand l'adresse e-mail n'est pas valide.
  • Nouvelle clé : quand vous cliquez sur Créer une nouvelle clé et confirmez avec Oui, créer une nouvelle clé, l'ancienne clé cesse aussitôt de fonctionner. Tant que vous n'avez pas mis la nouvelle sur votre serveur, les clients connectés ne sont pas reconnus.
  • Attributs signés : un attributesHash faux fait refuser toute l'identité, comme une signature fausse, tout comme un ensemble signé qui dépasse les limites (30 clés, des clés de 64 caractères au plus, des valeurs de 1024 caractères au plus). Un ensemble signé de plus de 24 heures, lui, ne la fait pas refuser : le client reste vérifié, mais ces attributs sont ignorés.

Pour trouver la cause, ouvrez les outils de développement de votre navigateur, allez dans l'onglet réseau et regardez la réponse à la requête vers /api/widget/identity/verify. invalid_identifier_hash signifie que la signature ne correspond pas à l'identifiant utilisateur, et identity_verification_not_configured que la boîte de réception n'a pas encore de clé.

Questions fréquentes

Ai-je besoin de la vérification d'identité pour que le chat fonctionne ?

Non. Elle est facultative. Sans elle, tout le monde discute comme visiteur anonyme et remplit le formulaire avant le chat si vous en utilisez un. La vérification d'identité ajoute seulement la reconnaissance des clients connectés.

Puis-je mettre la clé secrète dans le JavaScript de ma page ?

Non. Tout ce qui est dans le navigateur peut être lu par n'importe qui, et toute personne qui a la clé peut se faire passer pour n'importe lequel de vos clients. Gardez la clé sur votre serveur et n'envoyez à la page que la signature déjà calculée.

Que dois-je utiliser comme identifiant utilisateur ?

Un identifiant qui ne change jamais pour ce client, comme l'identifiant de l'utilisateur dans votre base de données. Deskwoot retrouve le contact grâce à cet identifiant à chaque visite, donc un nouvel identifiant signifie un nouveau contact. Une adresse e-mail convient moins bien, car les gens la changent.

Deskwoot associe-t-il un client vérifié par son e-mail ?

Non. Deskwoot associe un client vérifié uniquement par l'identifiant utilisateur que vous avez signé. L'e-mail et le nom ne sont pas signés, donc Deskwoot ne rattache jamais un visiteur à un contact existant à cause d'eux. Si un autre contact a déjà cette adresse e-mail, le contact vérifié est enregistré sans elle.

Une clé fonctionne-t-elle pour toutes mes boîtes de réception ?

Non. Chaque boîte de réception de chat en direct a sa propre clé, et une signature faite avec elle ne fonctionne que pour le widget de cette boîte de réception. Si le widget de 2 boîtes de réception est sur vos sites, créez une clé dans chacune et signez avec la clé de la boîte de réception dont le widget est sur cette page.

Où mon équipe voit-elle qu'un client est vérifié ?

À une coche à côté du nom du client, dans la conversation et sur la page du contact. Survolez-la pour voir Utilisateur vérifié.

Ce guide vous a-t-il aidé ?

Continuer la lecture

Demander à Fynn à propos de ce guide

Obtenez une réponse courte tirée de ce guide et du reste du centre d'aide.

Besoin d'aide supplémentaire ?

Fynn répond dans le chat à partir de ces guides, et vous pouvez aussi y joindre l'équipe.

Écrivez-nous par e-mail