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.
Cette approche vous permet de créer un script 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.
Cette procédure suppose que vous avez déjà configuré JWT sur votre serveur. Sinon, commencez par suivre les instructions de l’article Activation de la connexion unique JWT.
L’exemple dans cet article 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é
- Considérations importantes
- Résolution de problèmes
Plusieurs marques configurées
Vous devez configurer au moins deux marques pour suivre cette procédure. 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
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éez le script. Supprimez les https:// de l’URL de chaque marque. Conservez-les dans les liens des sites Web.
Vous trouverez aussi les scripts ici :
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 altaltCompte () dans la barre latérale, puis sélectionnez Sécurité > Connexion unique.
- Cliquez sur Créer une configuration de connexion unique, puis sélectionnez Token Web JSON.
- Entrez un nom de configuration unique.
- Pour l’URL de connexion à distance, saisissez l’URL pour le script de connexion.
- Pour l’URL de déconnexion à distance, saisissez l’URL pour le script de déconnexion.
- Pour éviter les conflits 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, vous pouvez activer l’option Mise à jour des ID externes ?.
- Fournissez le secret partagé à votre équipe informatique. Elle en aura besoin pour son implémentation JWT.
- Enregistrez vos modifications.
Considérations importantes
- 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).
- 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.
- 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"]);
}