Créer des paramètres d’authentification de la conversation instantanée

Omnichannel for Customer Service offre une suite de fonctionnalités qui étendent la puissance de Dynamics 365 Customer Service Enterprise pour permettre aux organisations de se connecter et de dialoguer instantanément avec leurs clients sur les canaux de messagerie numérique. Une licence supplémentaire est requise pour accéder à Omnichannel for Customer Service. Pour plus d’informations, consultez les pages Vue d’ensemble de la tarification de Dynamics 365 Customer Service et Plan de tarification de Dynamics 365 Customer Service.

Wichtig

L’application Administration Omnicanal ne sera plus prise en charge après le 30 avril 2022 et sera abandonnée dans une future version. Nous vous recommandons d’utiliser l’application Centre d’administration Omnicanal. Les dernières fonctionnalités, telles que l’acheminement unifié et le canal vocal, peuvent être configurées et utilisées uniquement dans cette application d’administration. Pour plus d’informations sur l’annonce d’abandon, consultez L’application Administration Omnicanal est obsolète.

Introduction

Vous pouvez créer des paramètres d’authentification pour valider un client connecté depuis un domaine et extraire les informations selon les variables contextuelles définies. Vous pouvez différentier vos clients anonymes depuis les clients authentifiés et vous pouvez créer des règles selon les variables contextuelles.

Par exemple, vous pouvez avoir des files d’attente distinctes pour les clients anonymes et les clients authentifiés. Parce que vous avez plus d’informations concernant vos clients authentifiés, vous pouvez également les classer par priorité selon des variables spécifiques, comme la valeur du panier ou un statut privilégié.

Après avoir créé un enregistrement de paramètres d’authentification, vous devez l’ajouter à l’onglet Détails de base du widget de conversation instantanée appropriée pour qu’il fonctionne.

Un agent recevra une notification dans la section Résumé de la conversation lorsqu’un client est authentifié ou non. Le champ Authentifié est défini sur Oui ou Non selon l’authentification du client. Si un widget de conversation instantanée n’a pas de paramètre d’authentification associé, le champ Authentifié est défini sur Non même si un client est connecté au portail. Pour plus d’informations sur le résumé de la conversation, voir Résumé de la conversation.

Conditions préalables

Assurez-vous que votre organisation possède une connaissance pratique d’OAuth 2.0 et des jetons web JSON (JWT).

Créer un enregistrement de paramètre d’authentification de la conversation instantanée

Vous pouvez créer un paramètre d’authentification de conversation instantanée dans Customer Service admin center ou l’application Centre d’administration Omnicanal.

  1. Accédez à l’une des applications et procédez comme suit.

    1. Dans le plan du site, sélectionnez Paramètres client dans Support client. La page Paramètres généraux s’affiche.
    2. Dans la section Paramètres d’authentification, sélectionnez Gérer.

    La page Paramètres d’authentification actifs s’affiche.

  2. Sélectionnez Nouveau pour ajouter un enregistrement de paramètres d’authentification.

  3. Sur la page Nouveau paramètre d’authentification de la conversation instantanée, fournissez les informations suivantes :

    • Nom : entrez un nom pour le paramètre d’authentification.

    • Propriétaire : Acceptez la valeur par défaut ou remplacez-la par une valeur requise.

    • Type d’identification : par défaut, c’est le flux implicite OAuth 2.0 qui ne peut pas être modifié.

    • URL de clé publique : spécifiez l’URL de clé publique du domaine. Cette URL est utilisée pour valider les informations qui proviennent du jeton Web JavaScript Object Notation (JSON) du domaine auquel un client est connecté.

    • Fonction JavaScript client : spécifiez la fonction de client JavaScript à utiliser pour l’authentification. Cette fonction extrait un jeton du point de terminaison du jeton.

      Créer un enregistrement de paramètre d’authentification de la conversation instantanée.

    Pour en savoir plus sur la manière de trouver l’URL de clé publique et une fonction JavaScript client, voir la section Configuration des portails Power Apps ou la section Configuration des portails personnalisés non créés à l’aide de Power Apps, plus loin dans cet article.

  4. Cliquez sur Enregistrer.

Ajouter l’authentification au widget de la conversation instantanée

  1. Ouvrez le widget de chat auquel vous souhaitez ajouter une authentification et effectuez l’une des étapes suivantes :
    • Dans Customer Service admin center ou le Centre d’administration Omnicanal, accédez à l’onglet Comportements.
    • Dans Administration Omnicanal, accédez à l’onglet Détails de base.
  2. Dans la zone Paramètres d’authentification, naviguez et sélectionnez l’enregistrement d’authentification de la conversation instantanée.

Lorsqu’un client connecté sur un portail ouvre le widget de conversation instantanée, la fonction JavaScript client transmet le jeton Web JSON du client vers le serveur. Le jeton Web JSON est déchiffré et validé à l’aide de la clé publique et les informations sont ensuite transmises à l’agent de conversation instantanée dans Omnichannel for Customer Service. En tant qu’administrateur, vous pouvez également transmettre les informations supplémentaires concernant le client connecté dans le jeton Web JSON en définissant les variables contextuelles personnalisées. Les variables contextuelles doivent être définies exactement comme elles sont définies dans le flux de travail associé avec le widget de conversation instantanée.

Configuration des portails Power Apps

Si vous ajoutez l’authentification pour un widget de conversation instantanée sur un site Web développé avec les portails Power Apps, l’URL de clé publique, la fonction JavaScript client et le jeton Web JSON prédéfinis sont disponibles. Voici comment obtenir les valeurs requises :

  • URL de la clé publique :<portal_base_URL>/_services/auth/publickey
  • Fonction JavaScript client :auth.getAuthenticationToken
  • Point de terminaison de jeton : <portal_base_URL>/_services/auth/token

Le portail Power Apps essaiera de lier automatiquement un enregistrement de contact à la conversation via le contexte passé dans sa fonction client JavaScript.

Configuration des portails personnalisés non créés à l’aide de Power Apps

Si vous ajoutez une expérience de conversation authentifiée à un site Web personnalisé, votre équipe de développement Web devra effectuer une configuration initiale avant que vos administrateurs ne puissent configurer la conversation authentifiée.

  1. Générez une paire de clés publique/privée dans leurs serveurs d’authentification. Les clés doivent être générées à l’aide de RSA256.

    Voici un exemple de code pour générer des paires de clé privées/publiques.

    openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
    openssl rsa -pubout -in private_key.pem -out public_key.pem
    
  2. Créez un point de terminaison qui renverra vos clés publiques. Les clés publiques seront utilisées par les serveurs Omnicanal pour valider le jeton JWT transmis dans le cadre de l’autorisation de la demande de conversation. L’URL de ce point de terminaison sera saisie dans l’application d’administration Omnicanal lors de la création d’un enregistrement de paramètre d’authentification.

    Votre point de terminaison de clé publique ressemblera à cet exemple :

      -----BEGIN PUBLIC KEY----- 
      NIIBIjANBgkqhkiG9w0BAQEFABCOPQ8AMIIBCgKCAQEAn+BjbrY5yhSpLjcV3seP 
      mNvAvtQ/zLwkjCbpc8c0xVUOzEdH8tq4fPi/X5P/Uf2CJomWjdOf1wffmOZjFasx 
      ELG+poTqy5uX2dNhH6lOMUsV31QGG36skLivpLBCSK6lWlzsV6WGkb/m8r86aGzp 
      jtNhw8yvoTYB4updDrJ8pC+tx4EWK0WEmKn1GsW6TjUtxJjcTLI1puSbmcGHbkSi 
      RSbWkKPqaEVFALprw+W5ZCung5QX3KOkY/rJd+2JwULm7okyQCQaF7qwa5i9Uf65 
      7M6ZL4vsDevq7E/v3tf6qxpSSHzt4XspXVQty9QHhqDqBEY3PfI4L2JjgIGuPhfS 
      YQIDAQAB 
      -----END PUBLIC KEY-----   
    
    

If you need to use multiple public keys, your public key endpoint can return a set of <kid, publickey > pairs. (Note that key ID pairs must be unique.) The kid will need to be passed in the JWT token in step 4. If you're using multiple keys, your public key endpoint should return something that looks like this. The public key is base 64 encoded:

 [      {          "kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp4in7hu4=",          "publicKey": LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbjFLdXhtSEh3V3hjelZSWGRBVmMNCnBEaFZwa0FnYklhTGZBUWc1bFpvemZqc29vcWRGWkl0VlFMdmRERWFVeDNqTytrTkxZM0JFRnBYVDZTN3ZNZCsNCnZoM2hpMDNsQ1dINnNCTWtaSWtuUUliMnFpekFsT0diU2EvK3JrUElnYnpXQjRpT1QyWVhyOVB4bXR5d2o4WUINCnYram55VU5DSzMyZy9FYWsvM0k3YW1vZ2pJY0JISjNFTjVuQWJBMExVVnJwMW5DODJmeEVPOHNJTzNYdjlWNVUNCnc5QnVTVVFRSmtMejNQYVI5WTdRZUEyNW5LUGtqTXZ2Y0UxVU5oeVpIYlNLbmorSitkZmFjb1hsSGtyMEdGTXYNCldkSDZqR0pWcGNQMHBkNjFOa3JKa2c0aStheThwS2ZqdjNUOHN3NWdaVHFweFFaaitVRWxqaVM0SHRPTlhkNlENCnZRSURBUUFCDQotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0NCg==",          "expiry": 1608495423      }, {          "kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp__valid=",          "publicKey": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbjFLdXhtSEh3V3hjelZSWGRBVmMNCnBEaFZwa0FnYklhTGZBUWc1bFpvemZqc29vcWRGWkl0VlFMdmRERWFVeDNqTytrTkxZM0JFRnBYVDZTN3ZNZCsNCnZoM2hpMDNsQ1dINnNCTWtaSWtuUUliMnFpekFsT0diU2EvK3JrUElnYnpXQjRpT1QyWVhyOVB4bXR5d2o4WUINCnYram55VU5DSzMyZy9FYWsvM0k3YW1vZ2pJY0JISjNFTjVuQWJBMExVVnJwMW5DODJmeEVPOHNJTzNYdjlWNVUNCnc5QnVTVVFRSmtMejNQYVI5WTdRZUEyNW5LUGtqTXZ2Y0UxVU5oeVpIYlNLbmorSitkZmFjb1hsSGtyMEdGTXYNCldkSDZqR0pWcGNQMHBkNjFOa3JKa2c0aStheThwS2ZqdjNUOHN3NWdaVHFweFFaaitVRWxqaVM0SHRPTlhkNlENCnZRSURBUUFCDQotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0NCg==",          "expiry": 1608495423      } ]
  1. You'll need a service that generates the JWT to send to Omnichannel’s servers as a part of starting a chat for an authenticated user.

    a. The JWT header will look similar to the following example.

    { 
      "alg": "RS256", 
      "typ": "JWT", 
    } 
    

    Si vous utilisez plusieurs clés publiques, vous devrez transmettre l’ID de clé (kid). L’en-tête JWT ressemblera à cet exemple : .

    { 
      "alg": "RS256", 
      "typ": "JWT",
      "kid": "qWO4EaKT1xRO7JC/oqALz6DCVr41B/qL0Hqp4in7hu4="
    } 
    

    b. La charge utile JWT doit inclure ce qui suit :

    • Au minimum les réclamations suivantes.

      Revendication Définition
      Iss L’émetteur du jeton.
      Iat La date d’émission du jeton. Il s’agit d’un format de date numérique.
      Exp La date d’expiration de ce jeton. Au-delà de cette date, il n’est plus valable. Il s’agit d’un format de date numérique.
      sous L’objet de la revendication.
      REMARQUE : Nous vous recommandons de transmettre le GUID de l’enregistrement de contact ou de compte dans Customer Service pour l’utilisateur connecté. Ce GUID sera utilisé pour identifier et lier l’enregistrement de contact à la conversation.
    • Les lwicontexts : les variables de contexte à transmettre dans le cadre de la conversation, soit à des fins d’acheminement, soit à afficher à l’agent. Pour en savoir plus sur les lwicontexts, consultez Gérer le contexte personnalisé.

      Hinweis

      Vous pouvez également identifier automatiquement les enregistrements à l’aide de variables de contexte. Pour en savoir plus : Identifier automatiquement les clients avec les réponses préalables à une conversation instantanée et la méthode API setContext

    • Toutes les autres données que vous souhaitez transmettre.

      Votre charge utile ressemblera à cet exemple : .

      { 
      
        "sub" : "87b4d06c-abc2-e811-a9b0-000d3a10e09e",  
        "lwicontexts" :"{\"msdyn_cartvalue\":\"10000\", \"msdyn_isvip\":\"false\", \"portalcontactid\":\"87b4d06c-abc2-e811-a9b0-000d3a10e09e\"}", 
        "iat" : 1542622071, 
        "iss" : "contosohelp.com", 
        "exp" : 1542625672, 
        "nbf" : 1542622072 
      } 
      

    c. La signature JWT doit être signée par votre clé privée.

    Hinweis

    • Si le jeton a expiré ou n’est pas valide, le widget de conversation lancera un événement d’erreur.
    • La méthode setContextProvider n’a pas besoin d’être utilisée pour la conversation avec authentification. Vous devez transmettre vos lwicontexts dans le cadre de la charge utile JWT.
  2. Créez une fonction javascript sur votre site Web qui acceptera une fonction de rappel et renverra un JWT à la fonction de rappel. Pour éviter l’expiration du délai, cette fonction javascript doit renvoyer un JWT dans les 10 secondes. Ce JWT devra :

    • Contenir l’en-tête, la charge utile et la signature de l’étape 3.

    • Être signé par la clé privée de la paire de clés à l’étape 1.

      Nous vous recommandons de générer votre JWT sur votre serveur Web.

      Le nom de cette méthode javascript sera utilisé pour créer l’enregistrement des paramètres d’authentification dans l’application d’administration Omnicanal.

      // This is a sample javascript client function  
      
      auth.getAuthenticationToken = function(callback){ 
      
        var xhttp = new XMLHttpRequest(); 
        xhttp.onreadystatechange = function() { 
            if (this.readyState == 4 && this.status == 200) { 
                callback(xhttp.responseText); 
            } 
        }; 
        xhttp.onerror = function(error) { 
            callback(null); 
        }; 
      //Replace this with a call to your token generating service 
        xhttp.open("GET", "https://contosohelp.com/token", true); 
        xhttp.send(); 
      } 
      
  3. Votre développeur devra partager les informations suivantes avec votre administrateur Omnicanal :

    a. L’URL du service de clé publique de l’étape 2.

    Exemple : https://www.contoso.com/auth/publickey

    b. Le nom de la fonction client javascript de l’étape 4. Ces éléments seront appelés en interne par le widget de conversation lors du démarrage d’une conversation.

    Exemple : auth.getAuthenticationToken

    Hinweis

    Si votre expérience utilisateur expose le bouton de conversation avant que les utilisateurs ne soient authentifiés, assurez-vous de les rediriger vers votre page d’authentification si nécessaire. Cela peut être fait dans la méthode de l’étape 4 ou en tant qu’étape précédente de votre flux d’utilisateurs.

    Ce diagramme résume la configuration :

    Configuration d’une conversation avec authentification.

    Ensuite, vous pouvez configurer une conversation authentifiée en procédant comme suit :

  4. Accédez au centre d’administration Omnicanal ou à l’application d’administration Omnicanal et créez un enregistrement de paramètres d’authentification avec les informations de l’étape 5. Voir Créer un enregistrement de paramètres d’authentification de conversation pour plus d’informations.

  5. Associez les paramètres d’authentification au widget de conversation qui aura une expérience authentifiée. Voir Ajouter l’authentification au widget de conversation instantanée pour plus d’informations.

    Ce diagramme résume la séquence d’appels lorsqu’un utilisateur accède à votre conversation dans une configuration authentifiée :

    Runtime d’une conversation instantanée avec authentification.

Voir aussi

Ajouter un widget de conversation
Configurer une enquête préalable à une conversation
Créer des réponses rapides
Créer et gérer les heures de travail
Intégrer le widget de conversation instantanée dans les portails Power Apps
Identifier automatiquement les clients

Hinweis

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).