Multimarque vous permet de contrôler toutes les marques de votre entreprise dans une seule instance de Zendesk Support. Cependant, les paramètres de sécurité ne vous permettent de configurer qu’une seule URL pour les connexions à distance, ce qui peut s’avérer problématique si vous avez différentes bases de donnés d’utilisateurs pour vos différentes marques.
Mais ne vous inquiétez pas. Cette approche vous permet de créer un script simple entre Zendesk Support et le script de connexion unique de votre serveur, et vous pourrez ainsi router vos clients vers des URL spécifiques en fonction de la marque à laquelle ils essaient de se connecter.
Cet article suppose que vous avez déjà configuré JWT sur votre serveur. Sinon, commencez par suivre les instructions de l’article Configuration de la connexion unique avec JWT (token Web JSON).
Dans cet exemple, j’utilise php, mais vous pouvez l’adapter à d’autres langages.
Cet article contient les sections suivantes :
- Plusieurs marques configurées
- Plusieurs systèmes d’authentification des utilisateurs configurés avec la connexion unique JWT
- Scripts
- Mise à jour des paramètres de sécurité
- Résolution de problèmes
Plusieurs marques configurées
Pour que cet article présente le moindre intérêt, vous devez avoir au moins deux marques configurées. Pour en savoir plus, consultez Configuration de plusieurs marques (édition Enterprise et module supplémentaire pour l’édition Professional).
Une fois une marque configurée, enregistrez son URL et l’URL de la marque avec mappage d’hôte. Nous en aurons besoin dans notre script.
Plusieurs systèmes d’authentification des utilisateurs configurés avec la connexion unique JWT
Comme mentionné précédemment, vous devez préalablement configurer la connexion unique JWT sur vos systèmes d’authentification des utilisateurs. Vous pouvez le faire pour chaque marque, mais attention, le secret partagé que vous obtenez des options de sécurité devra être le même dans tous vos systèmes d’authentification.
Enregistrez les URL de connexion et de déconnexion avec les informations de la section précédente.
Scripts
Les choses sérieuses commencent. Votre liste d’URL enregistrées peut ressembler à ce qui suit :
Marque 1
URL sans mappage d’hôte : https://brand1.zendesk.com
URL avec mappage d’hôte : https://support1.example.com
Marque 2
URL sans mappage d’hôte : https://brand2.zendesk.com
URL avec mappage d’hôte : https://support2.example.com
Système 1
URL de connexion : https://page1.example.com/zdlogin.php
URL de déconnexion : https://page1.example.com/zdlogout.php
Système 2
URL de connexion : https://page2.example.com/zdlogin.php
URL de déconnexion : https://page2.example.com/zdlogout.php
Maintenant, créons le script. Supprimez les https:// de l’URL de chaque marque. Conservez-les dans les liens des sites Web.
Script de connexion
<? $brand_URLs = array( "brand1.zendesk.com" => "https://page1.example.com/yourcustomloginjwtscript.php", "support1.example.com" => "https://page1.example.com/yourcustomloginjwtscript.php", "brand2.zendesk.com" => "https://page2.example.com/yourcustomloginjwtscript2.php", "support2.example.com" => "https://page2.example.com/yourcustomloginjwtscript2.php" ); foreach($brand_URLs as $k => $v){ if(strpos($_GET['return_to'],$k)){ header("Location: ". $v); die(); } } ?>
Script de déconnexion
<? $brand_URLs = array( "brand1.zendesk.com" => "https://page1.example.com/yourcustomlogoutjwtscript.php", "support1.example.com" => "https://page1.example.com/yourcustomlogoutjwtscript.php", "brand2.zendesk.com" => "https://page2.example.com/yourcustomlogoutjwtscript.php", "support2.example.com" => "https://page2.example.com/yourcustomlogoutjwtscript.php" ); foreach($brand_URLs as $k => $v){ if(strpos($_GET['return_to'],$k)){ header("Location: ". $v); die(); } } ?>
Mise à jour des paramètres de sécurité
- Dans le Centre d’administration, cliquez sur l’icône Compte (
) dans la barre latérale, puis sélectionnez Sécurité > Connexion unique.
- Pour Token Web JSON, cliquez sur Activé, puis pointez vers les scripts que nous avons créés. Voir l’exemple ci-après.
- Enregistrez vos modifications.
- URL de connexion à distance - Cela doit être l’URL du script de connexion.
- URL de déconnexion à distance - Cela doit être l’URL du script de déconnexion.
- Mise à jour des ID externes ? - Au cas où certains de vos clients aient un compte dans plusieurs systèmes d’authentification des utilisateurs avec la même adresse e-mail, pour éviter les conflits de connexion, vous devez activer cette option.
Ainsi, vos agents ou vos clients pourront s’authentifier en utilisant leur système d’authentification spécifique, en fonction de la marque à laquelle ils essaient d’accéder.
Vous trouverez aussi les scripts ici :
Remarque 1 – Les risques de sécurité sont faibles si vous utilisez le script tel quel. Si vous le modifiez beaucoup et apportez des changements autres que ceux mentionnés ici, vous risquez d’introduire une vulnérabilité de sécurité sur votre serveur (pas celui de Zendesk).
Remarque 2 – Comme nous ne fournissons qu’un seul token JWT, tous vos scripts de connexion unique utiliseront les mêmes tokens dans vos systèmes d’authentification. Si l’un de vos systèmes est compromis, toutes vos marques risquent de l’être.
Remarque 3 – Si vous voyez l’erreur « Demande JWT non valide » quand vous essayez d’utiliser la connexion unique, consultez les instructions de dépannage ci-dessous.
Résolution de problèmes
Pour éviter les erreurs de demandes JWT non valides, codez en dur https://(sous_domaine_par_defaut).zendesk.com/ comme /access/jwt?jwt=
pour les deux marques, où (sous_domaine_par_defaut) est le sous-domaine de votre marque principale. Par exemple, mondomaine.zendesk.com
- Codez en dur https://(sous_domaine_par_defaut).zendesk.com dans le script de connexion unique pour que la charge JWT soit toujours envoyée à https://(sous_domaine_par_defaut).zendesk.com/access/jwt.
- Implémentez ce snippet dans le script pour utiliser ’return_to’ afin que l’utilisateur final soit redirigé vers le centre d’aide original. N’oubliez pas d’ajouter la charge pour les deux marques, marquant les comme corrigées, comme (sous_domaine_par_defaut)', et d’ajouter 'return_to'.
Voici le snippet pour référence :
if(isset($_GET["return_to"])) {
$location .= "&return_to=" . urlencode($_GET["return_to"]);
}
0 Commentaires
Vous devez vous connecter pour laisser un commentaire.