Configurer le client Web portable Agent virtuel

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 5 minutes de lecture
  • Configurez le widget de messagerie instantanée Client Web portable pour qu’il s’exécute Agent virtuel sur les pages Web tierces.

    Avant de commencer

    Remarque :
    Pour les nouveaux clients qui s’intègrent à partir de Vancouver, le client Web n’est accessible que par défaut aux utilisateurs authentifiés. Pour permettre aux utilisateurs non authentifiés d’accéder au client Web, vous devez activer la page sn_va_web_client_app_embed pour un accès public. Pour plus d'informations, consultez Make UI pages public or private.

    Rôle requis : administrateur

    Pourquoi et quand exécuter cette tâche

    ServiceNow ne prend en charge l’ordinateur portable Agent virtuel que lorsque le domaine de niveau supérieur et le nom de domaine correspondent au site qui charge le client Web. L’authentification unique (SSO) n’est prise en charge que via l’URL service-now.com. Tout ce qui va au-delà nécessitera une solution et une mise en œuvre personnalisées.

    Procédure

    1. Accédez à Tous, puis entrez sys_properties.list dans le filtre.
    2. Dans la table Propriétés système [sys_properties], recherchez la com.glide.cs.embed.csp_frame_ancestors propriété par son nom.
    3. Cliquez sur le nom de la propriété pour ouvrir le formulaire et spécifier les valeurs de la directive.
      Champ Description
      Type chaîne

      Il s’agit de la valeur par défaut.

      Valeur Valeur source de la directive d’en-tête HTTP : Content-Security-Policy :frame-ancestors<source>Cette propriété s’applique à la plupart des principaux navigateurs, à l’exception d’Internet Explorer.
      Indiquez une ou plusieurs sources, dont les suivantes :
      • 'self' : indique que l’origine est la même que celle de la page diffusée. Par exemple, si la valeur est 'self' http://mywebsite.com, alors l’iframe est incorporé dans le domaine parent ainsi que mywebsite.com. Il s’agit de la valeur par défaut.
      • host-source : les domaines dans lesquels la page web externe peut être intégrée. Spécifiez le site hôte Internet par nom, adresse IP ou URL et/ou numéro de port facultatif. L’adresse du site peut commencer par un caractère générique (astérisque). Exemple de valeur : http ://*.example.com
      • scheme-source : un schéma. Par exemple : http : ouhttps :
      • none : aucune URL correspondante.

      Pour plus d’informations sur les valeurs source que vous pouvez spécifier, consultez CSP :frame-ancestors et la politique de sécurité du contenu du client Virtual Agent incorporé (renforcement de la sécurité de l’instance) dans les paramètres de renforcement de la sécurité de l’instance.

    4. Revenez à la table Propriétés système [sys_properties] pour rechercher la com.glide.cs.embed.xframe_options propriété par nom.
    5. Cliquez sur le nom de la propriété pour ouvrir le formulaire et spécifier les valeurs de la directive.
      Champ Description
      Type chaîne

      Il s’agit de la valeur par défaut.

      Valeur Valeur de la directive d’en-tête X-Frame-Options, pour indiquer si le navigateur peut rendre une page Web externe dans un cadre.
      Spécifiez l’une des valeurs suivantes :
      • sameorigin : affiche la page dans un cadre qui a la même origine que la page elle-même. Il s’agit de la valeur par défaut. Cette propriété s’applique aux navigateurs plus anciens, tels qu’Internet Explorer 11. Exemple de valeur : autoriser à partir de https://example.com
      • refuser : n’affiche pas la page dans un cadre.
      • autoriser de l’URI : affiche la page uniquement dans un cadre sur l’origine spécifiée.
        Remarque :
        Cette valeur ne fonctionne plus dans les navigateurs modernes.

      Pour plus d’informations sur les valeurs source que vous pouvez spécifier, consultez X-Frame-Options et X-Frame-Options du client intégré de l’agent virtuel (renforcement de la sécurité de l’instance) dans les paramètres de renforcement de la sécurité de l’instance.

    6. Configurez les règles CORS pour l’API REST afin de donner l’accès à tous les domaines.
      Cette règle donne au domaine Web que vous spécifiez les droits d’appel de l’API qui lui permet d’accéder au widget de messagerie instantanée sur la page Web sans restriction de sécurité. Tous les domaines doivent partager un domaine parent commun. En outre, vous devez créer une nouvelle règle CORS pour chaque sous-domaine que vous souhaitez prendre en charge.
      1. Accédez à la Tout > Services web du système > REST > Règles CORS.
      2. Cliquez sur Nouveau.
      3. Sur le formulaire, renseignez les champs.
        Champ Description
        Nom Nom unique de la règle.
        Application Périmètre de l'application. Global est la valeur par défaut.
        API REST Nom de l’API REST. Sélectionnez Compte de consommateur de conversation [now/cs].
        Domaine Le domaine de votre site web. Par exemple : https://mycompany.com

        Si vous avez plusieurs sous-domaines pour votre site Web, vous devez créer une règle CORS pour chacun d’eux. Par exemple, support.mycompany.com et products.mycompany.com nécessiteraient deux règles CORS distinctes.

        Remarque :
        Les caractères génériques ne sont pas autorisés.
        Durée maximale Nombre de secondes de mise en cache de la session client. Après une demande CORS initiale, d’autres demandes émanant du même client dans le délai spécifié ne nécessitent pas de message de contrôle en amont.

        Si vous ne spécifiez pas de valeur, la valeur par défaut 0 indique que toutes les demandes nécessitent un message de contrôle en amont.

      4. Dans l’onglet Méthodes HTTP , sélectionnez GET.
        Le client Web portable ne recevra que des demandes.
      5. Cliquez sur Envoyer.
      6. Facultatif : Répétez ces étapes si vous souhaitez ajouter le client Web portable à un autre sous-domaine de votre site Web.
    7. Facultatif : Créez un script JavaScript qui utilise la méthode (API Web) pour définir les conditions d’événement qui déclenchent l’authentification window.postMessage() SSO dans une page d’interface utilisateur et renvoient les utilisateurs vers une page de client Web que vous spécifiez.
      Pour rediriger les utilisateurs vers une page de client Web, utilisez la chaîne suivante : « https://<votre-instance>.service-now.com/sn_va_web_client_login.do?sysparm_redirect_uri=' + encodeURIComponent(<votre-page>)
      Remarque :
      Avant d’exécuter le script, utilisez la com.glide.cs.web_client_login_redirect_urls propriété système pour spécifier les URL qui peuvent être transmises dans le script. La redirection fonctionne uniquement lorsque vous spécifiez une ou plusieurs URL autorisées dans la valeur de la propriété. Spécifiez les URL de redirection complètes ou la partie hôte de l’URL. Par exemple : https://example.com .
      Exemple de script
      <script>
          window.addEventListener("message", function(e) {
             // redirect to SSO login if the web client logs in but is logged in as a guest user(unauthenticated)
            if(e.data.type==="SESSION_CREATED" && e.data.authenticated === false)
              window.location.href = "https://<your-instance>.service-now.com/sn_va_web_client_login.do?sysparm_redirect_uri=<’ + encodeURIComponent(<your-page>);
            
            // redirect to SSO login if the ServiceNow platform logs out from underneath the web client
            if(e.data.type==="SESSION_LOGGED_OUT")
              window.location.href = "https://<your-instance>service-now.com/"https://<your-instance>service-now.com/sn_va_web_client_login.do?sysparm_redirect_uri=’ + encodeURIComponent(<your-page>);
          });
        </script>

      Dans cet exemple, l’authentification est déclenchée dans l’instance spécifiée lorsque les événements SESSION_CREATED ou SESSION_LOGGED_OUT se produisent. Après l’authentification (lorsque les informations d’identification SSO pour les utilisateurs sont acceptées), les utilisateurs sont redirigés vers la page du client Web incorporée que vous avez spécifiée dans sn_va-web_client_login.do ?sysparm_redirect_uri=' + encodeURIComponent(<votre-page>), à condition que vous ayez également spécifié l’URL de la page dans la com.glide.cs.web_client_login_redirect_urls propriété.

    Que faire ensuite

    Ajouter le client Web portable Agent virtuel à un site Web tiers.