L'authentification est la méthode utilisée pour vérifier l'identité d'un utilisateur et garantir que seuls des utilisateurs légitimes créent du contenu sur votre site. Grâce à l'authentification, Bazaarvoice peut confirmer l’adresse e-mail de l’utilisateur et lier celle-ci à son profil dans le réseau Bazaarvoice. (Le processus d'authentification ne permet pas de détecter la fraude, contrairement à l'authenticité.)

Remarque : l'authentification hébergée est la méthode recommandée en matière d'authentification. L'authentification sur le site fait considérablement diminuer le volume de contributions des utilisateurs. De plus, votre équipe technique devra également effectuer un travail d'intégration pour lier Ratings & Reviews au processus de connexion de votre site. Utilisez cette méthode seulement si une obligation légale ou commerciale nécessite que vos clients se connectent à Ratings & Reviews.

L'authentification sur le site exige des utilisateurs qu'ils se connectent au système d'authentification de votre site. Avant de pouvoir envoyer des avis sur des produits, des questions ou des réponses, les utilisateurs doivent se connecter avec les mêmes identifiants que ceux qu'ils utilisent pour accéder à votre site. Utilisez cette méthode seulement si une obligation légale ou commerciale nécessite que vos clients se connectent à Ratings & Reviews.

Voici le workflow d'une authentification hébergée et d'une authentification sur site :

Authentification hébergée Authentification sur le site

Intégration avec Ratings & Reviews

Pour réussir l'intégration avec Ratings & Reviews et exiger l'authentification du site, vous devez effectuer les tâches suivantes :

Étape 1 : Activez et configurez l'authentification sur le site.

Effectuez les étapes ci-dessous pour configurer l'authentification sur le site dans Ratings & Reviews :

  1. Connectez-vous au portail Bazaarvoice .
  2. Dans le portail du menu, sélectionnez Configuration.
  3. Sélectionnez l'instance puis cliquez sur Go to Configuration (Aller à Configuration). Le Site Manager (gestionnaire de site) apparaît et liste les zones de déploiement et les implémentations disponibles.
  4. Dans la section Implementations (Implémentations), sélectionnez Edit (Modifier) à côté de l'implémentation que vous souhaitez configurer.
  5. Dans la rubrique Paramètres de la plateforme de configuration, sélectionnez User authentification (Authentification de l'utilisateur).
  6. En haut de la page Authentification de l'utilisateur, sélectionnez l'onglet Site Authentication Integration (Intégration de l'authentification sur le site) pour afficher la page.
  7. Activez l'option Obliger les utilisateurs à se connecter à mon site avant de soumettre leurs avis.
  8. Déterminez si vous souhaitez activer l'option Intégrer les données du pseudo . Reportez-vous à Injecter des données à l'aide de l'authentification sur site pour en savoir plus sur l'injection de données relatives aux pseudos.
  9. Utilisez l'option Fournir une adresse e-mail lors de la soumission pour spécifier si une adresse e-mail est obligatoire, facultative ou non demandée lorsque les utilisateurs envoient des avis, des commentaires, des questions ou des réponses:
    • Obligatoire — Adresse e-mail exigée pour les envois. C'est l'option par défaut.
    • Facultative — Adresse e-mail facultative pour les envois.
    • Non demandée — Adresse e-mail exclue des formulaires de soumission.
  10. Saisissez une adresse Web (URL) pour la connexion au site de pré-production. Avant d'insérer du contenu, les utilisateurs test de votre site de pré-production sont redirigés ici pour se connecter.
  11. Saisissez une adresse Web (URL) pour la connexion au site de production. Avant d'insérer du contenu, les utilisateurs de votre site de production sont redirigés ici pour se connecter.

Étape 2 : hébergez une page de conteneur et référencez son URL à partir de Ratings & Reviews.

La page de conteneur facilite le renvoi vers d'autres pages pour l'authentification sur le site.

Créez la page de conteneur sur le même domaine que celui où Ratings & Reviews est intégré. Il s'agit en général du domaine à partir duquel vos pages produits sont desservies. Si votre implémentation utilise bv.js, le fichier devra intégrer le contenu suivant :

<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title></title> <meta name="robots" content="noindex, nofollow"> <link rel="canonical" href="container.htm"/> <meta name="bv:pageType" content="container"> </head> <body> <script async src="https://apps.bazaarvoice.com/deployments/<client_name>/<site_ID>/<environment>/<locale>/bv.js"></script> </body> </html>

Remarque : Si votre implémentation existante utilise le fichier scout (bvapi.js), le document HTML devrait ressembler à ceci :

<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title></title> <meta name="robots" content="noindex, nofollow"> <link rel="canonical" href="container.htm"/> </head> <body> <script type="text/javascript" src="https://display.ugc.bazaarvoice.com/bvstaging/static/<client_name>/<site_ID>/<locale>/bvapi.js"></script> <script> $BV.container('global', {} ); </script> </body> </html>

Remplacez container.htm par le chemin d’accès relatif à l’URL canonique de cette page, puis remplacez <client_name>, <site_ID>, <environment> et <locale>par vos propres valeurs.

Remarque : Une URL canonique contient des métadonnées sur la page. Les métadonnées dirigent les moteurs de recherche vers l'adresse officielle d'une page. Par exemple, si vous ne voulez pas que les moteurs de recherche traitent https://url.com?page=1 et https://url.com?page=2 comme deux pages différentes, fournissez un lien absolu tel que <link rel="canonical" href="https://url.com"> pour indiquer aux moteurs de recherche de rediriger les deux URL vers https://url.com.

Après avoir créé votre page de conteneur, vous devez saisir son URL dans Ratings & Reviews par la méthode suivante :

  1. Sur la plateforme de configuration, allez à Technical Setup (Configuration technique) > Site Profile (Profil du site).
  2. Saisissez l'URL de la page de conteneur dans URL du conteneur.
  3. Sur la plateforme de configuration, rendez-vous dans Settings (Paramètres) > User Authentication (Authentification de l’utilisateur).
  4. Sélectionnez l'onglet Site Authentication Integration (Intégration de l'authentification du site).
  5. Saisissez l'URL de connexion au site de pré-production dans URL de connexion au site de pré-production.
  6. Saisissez l'URL de connexion au site de production dans URL de connexion au site de production.

Étape 3 : Générez une chaîne d'authentification de l'utilisateur (UAS)

Une chaîne d’authentification de l’utilisateur (UAS) consiste en des paires de clés-valeurs qui sont hachées et encodées (mais non chiffrées). Cette chaîne permet à Bazaarvoice de vérifier que le contenu provient d'une source sûre, évitant donc que des tierces parties n'inventent des utilisateurs ou n'usurpent leur identité. Vous pouvez par exemple utiliser une chaîne d’authentification pour injecter des données dans un formulaire de soumission d'avis si votre implémentation utilise une authentification sur le site.

Remarque : une chaîne d'authentification de l'utilisateur doit être créée côté serveur pour préserver la confidentialité de la clé partagée.

Suivez les étapes ci-dessous pour créer une chaîne d’authentification pouvant être utilisée pour injecter des données :

  1. Déterminez les paires de clés-valeurs à inclure dans l'UAS, qui doivent être séparées par des esperluettes (&). Voici les clés prises en charge :
    Clé Description Obligatoire
    date La date du jour, au format AAAAMMJJ ou AAAA-MM-JJ. Oui
    userid

    User ID du consommateur. N’utilisez pas d’adresse e-mail pour cette valeur.

    Oui
    maxage Nombre de jours avant l'expiration de l'UAS. Le nombre par défaut est 1. Il peut être utile d'augmenter cette valeur pour les URL pré-authentifiées, comme celles utilisées dans les campagnes par e-mail. Non
    verifiedpurchaser Vérifie si l'utilisateur a bien acheté un ou plusieurs produits (True). Ne spécifiez pas ce paramètre ou indiquez False si l’utilisateur n’est pas un acheteur vérifié. Non
    subjectids Liste d'identifiants externes de produits que l’utilisateur a bien achetés, assurant ainsi que la clé VerifiedPurchaser ne puisse être appliquée à d'autres produits. Si vous spécifiez plusieurs identifiants, séparez-les par une barre oblique (/). Non
    Age Tranche d'âge sans espaces, comme par exemple 35to44 ou 65orOver. Non
    Gender Sexe de l'utilisateur (Male ou Female) Non
    emailaddress Adresse e-mail du contributeur. Cette valeur doit être encodée dans l'URL. Oui
    VerifiedPurchaser Indique que le contributeur a reçu un produit ou service gratuit en échange d'un avis (True). Omettez ce paramètre ou indiquez False si l’utilisateur n’a pas reçu de produit ou de service gratuit. Non
    OrderNumber ID de la commande, liée à l'achat du contributeur. Non
    username Nom d'utilisateur du contributeur. Non
    Affiliation Ajoute automatiquement le badge d'affiliation par défaut du Personnel () aux soumissions utilisant cette URL. Ce badge indique que la personne qui a rédigé l'avis est employée par votre société. (en savoir plus sur les badges ici.) Régler ce paramètre sur personnel. Non
  2. Si une paire clé-valeur contient un caractère réservé, vous devez encoder le caractère en URL.

    Ainsi la chaîne Jacob'sLadder doit être écrite Jacob%27sLadder.

Étape 4 : encodez l'UAS.

Hachez et encodez la chaîne d’authentification et la clé de codage partagée de Bazaarvoice pour créer un jeton UAS.

  1. Pour trouver la clé de codage partagée, cliquez sur Configuration technique » Profil du site dans la plateforme de configuration. Dans la section Informations de base, copiez la valeur du champ Clé de codage partagée.
  2. Créez une chaîne de requête encodée en URL qui comprend les paramètres requis et facultatifs, comme dans l’exemple suivant :

    date=20230915&userid=shopper123&maxage=30&verifiedpurchaser=True&subjectids=product1/product2/product3
  3. Créez une signature en hachant la chaîne encodée en URL à l’aide de la clé de codage.
  4. Encodez en hexadécimal la chaîne de paramètres encodée en URL.
  5. Combinez la signature et la chaîne de paramètres.

Voici un exemple de pseudo-code, côté serveur :

function makeUserToken(encodingKey, parameters) { // encode the signature using HMAC SHA-256 signature = hash_hmac('sha256' , parameters, encodingKey) // concatenate the signature and hex-encoded string of parameters uas = signature + hex(parameters) // return the user authentication string return uas } ENCODING_KEY = 'abcd1234' // BV shared key from config hub requiredParameters = 'date=20161225&userid=valuedCustomer' extraParameters = 'maxage=90&verifiedpurchaser=True' allParameters = requiredParameters + '&' + extraParameters userAuthString = makeUserTokenHmac(ENCODING_KEY, allParameters)
import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Hex; import java.nio.charset.StandardCharsets; public String makeUserTokenHmac(String encodingKey, String parameters) { Mac sha256_HMAC = Mac.getInstance("HmacSHA256"); SecretKeySpec secret_key = new SecretKeySpec(encodingKey.getBytes(), "HmacSHA256"); sha256_HMAC.init(secret_key); String hash = Hex.encodeHexString(sha256_HMAC.doFinal(parameters.getBytes())); String hexParameters = Hex.encodeHexString(parameters.getBytes(StandardCharsets.UTF_8)); return hash + hexParameters; }
var crypto = require('crypto');
 
function makeUserTokenHmac(encodingKey, parameters) {
  let hmac  = crypto.createHmac('sha256', encodingKey).update(parameters);
  let signature = hmac.digest('hex');
 
  let hexParameters = parameters.split('')
                                .map(c => c.charCodeAt(0).toString(16))
                                .join('');

  return signature + hexParameters;
}
require 'openssl'
 
def makeUserTokenHmac(encodingKey, parameters)
  hash = OpenSSL::HMAC.digest('sha256', encodingKey, parameters)
  signature = hash.unpack('H*').first
 
  hexParameters = parameters.unpack('H*').first
 
  return "#{signature}#{hexParameters}"
end
<?php
function makeUserTokenHmac($encodingKey, $parameters) {
  // encodez la signature à l'aide de HMAC SHA-256
  $signature = hash_hmac('sha256' , $parameters, $encodingKey);
 
  // concaténez la signature et la chaîne de paramètres encodée en hexadécimal
  $uas = $signature . bin2hex($parameters);
 
  // renvoyez la chaîne d'authentification de l'utilisateur
  return $uas;
}
?>
using System; using System.IO; using System.Text; using System.Security.Cryptography; namespace uasC { class Program { static void Main(string[] args) { const string SharedKey = "SHAREDKEYGOESHERE"; string userId = "date=20190708&userid=9100040964&maxage=30"; using(HMACSHA256 hmac = new HMACSHA256(Encoding.UTF8.GetBytes(SharedKey))) { string userIdSignature = BytesToHexString(hmac.ComputeHash(Encoding.UTF8.GetBytes(userId))); string hexUserId = BytesToHexString(Encoding.UTF8.GetBytes(userId)); Console.WriteLine(userIdSignature + hexUserId); } string BytesToHexString(byte[] input) { StringBuilder sb = new StringBuilder(64); for (int i = 0; i < input.Length; i++) { sb.Append($ "{input[i] :X2}"); } return sb.ToString(); } } } }

Étape 5 : Fournissez un jeton UAS

Si vous utilisez le script de chargement BV (bv.js), paramétrez le code d'intégration de manière à ce qu'il comprenne le jeton d'authentification de l'utilisateur généré dans un élément méta de l'élément d'en-tête de la page. Intégrez ce jeton sur toutes les pages disposant du code d'intégration Ratings & Reviews, telles que vos pages produits. Cette propriété doit être présente lorsque des utilisateurs sont connectés au système d'authentification de votre site, indiquant à Bazaarvoice que l'utilisateur est connecté.

Par exemple :

<head> ... <meta name="bv:userToken" content="17743067190f0343f24f7" > ... </head>

Placer toujours des balises meta (comme userToken) avant la balise du script de chargement BV (bv.js). Lorsque le script de chargement BV charge, il ne voit que ce qui est visible dans le DOM à ce moment-là. Si une balise meta est placée après le script de chargement BV, elle ne pourra être repérée par le script au moment du chargement. En revanche, si elle est insérée avant le script de chargement BV, ce dernier la détectera.

Pour les utilisateurs qui ne sont pas connectés à votre système d'authentification, laissez la propriété userToken vierge (ou ne l'incluez pas dans le code d'intégration).

Remarque : Si votre implémentation existante utilise le fichier scout (bvapi.js), paramétrez le code d'intégration de manière à ce qu'il comprenne le jeton d'authentification de l'utilisateur généré dans la fonction d'appel $BV.configure().

Par exemple :

$BV.configure('global', {
  productId: 'test1',
  userToken: '17743067190f0343f24f75df730dfe58646174653d323031332d30352d3031267573657269643d7465737475736572313233'
});

Étape 6 : Redirigez l'utilisateur vers votre page de conteneur.

Si vous prévoyez d’envoyer des liens aux utilisateurs et que vous souhaitez qu’ils restent connectés, ajoutez le paramètre de requête bveventid pour vous assurer que les pages de connexion (définies sur la plateforme de configuration) redirigent les utilisateurs vers votre page de conteneur hébergée dans Ratings & Reviews. Le paramètre bveventid indique que l'utilisateur a tenté d'écrire un avis avant d'être redirigé vers la page de connexion. La redirection doit comporter :

  • Le paramètre bveventid ainsi que sa valeur complète et non-modifiée. Par exemple :
    bveventid=1234asfr
  • Le jeton UAS, par exemple :
    bvuserToken=17743067190f0343f24f75df730dfe58646174653d323031332d30352d3031267573657269643d7465737475736572313233

L'URL devrait ressembler à ceci :

https://www.exemple.com/container.htm?bveventid=123asfr&bvuserToken=17743067190f0343f24f75df730dfe58646174653d323031332d30352d3031267573657269643d7465737475736572313233

Tester l’intégration de l’autorisation sur le site

Suivez les étapes ci-dessous pour tester, et, si nécessaire, corriger votre intégration :

  1. Naviguez jusqu'à votre page Ratings & Reviews (Notes et avis), puis cliquez sur « write a review » (donner un avis). Vous devriez être redirigé(e) vers votre page de connexion et voir le paramètre bveventid dans l'URL de la page. Si vous n'êtes pas redirigé(e), c'est que l'authentification sur le site n'est pas activée. Contactez Bazaarvoice pour obtenir de l'aide.
  2. Une fois que vous êtes connecté(e), vérifiez que vous êtes bien redirigé(e) vers la page de conteneur, et que le paramètre bveventid et le jeton UAS figurent dans l'URL de la page de conteneur. S'ils n'y sont pas, c'est peut-être que vous ne contrôlez pas correctement le paramètre bveventid. Dans ce cas, vérifiez que vous avez rigoureusement suivi les étapes d'intégration.
  3. Vérifiez que vous êtes ensuite redirigé(e) vers la page produit (là où vous avez cliqué sur « Write a review ») et que le formulaire de soumission y est présent. (Vérifiez la présence du paramètre bveventid et confirmez qu'il correspond à celui que vous avez vérifié à l'étape 1.) De plus, vérifiez la présence et la validité du jeton UAS.

L'authentification sur le site exige des utilisateurs qu'ils se connectent au système d'authentification de votre site. Avant de pouvoir envoyer des avis sur des produits, des questions ou des réponses, les utilisateurs doivent se connecter avec les mêmes identifiants que ceux qu'ils utilisent pour accéder à votre site. Utilisez cette méthode seulement si une obligation légale ou commerciale nécessite que vos clients se connectent à Ratings & Reviews.

Pour une présentation des authentifications sur le site et hébergée, et notamment le workflow de la mise en place de chacune d'elles, consultez Authentification de l'utilisateur.

  1. Depuis la plateforme de configuration, sélectionnez User authentication (Authentification de l’utilisateur) sous Settings (Paramètres), puis réalisez les actions suivantes :
    1. Sélectionnez l'onglet Site Authentication Integration (Intégration de l'authentification du site).
    2. Activez l'option Obliger les utilisateurs à se connecter à mon site avant de soumettre leurs avis.
    3. Activez l'option Inject Nickname Data (facultatif).
    4. Choisissez Required pour l'option Provide email address on submission (facultatif).
    5. Saisissez une adresse Web (URL) pour la connexion au site de pré-production. Avant de rédiger un avis, les utilisateurs test de votre site de pré-production sont redirigés ici pour se connecter.
    6. Saisissez une adresse Web (URL) pour la connexion au site de production. Avant de rédiger un avis, les utilisateurs de votre site de production sont redirigés ici pour se connecter.
  2. Sélectionnez Technical Setup (Configuration technique), puis copiez la clé de codage partagée.
  3. Générez une chaîne d'authentification de l'utilisateur (UAS).
  4. Insérez le jeton UAS (chaîne d’authentification de l’utilisateur) dans le code d'intégration des pages de vos produits.
  5. Vérifiez que la page de connexion redirige vers la page de conteneur dans le cas où le paramètre de la requête bveventid est présent.

Consultez ces exemples de code en cas de besoin.