La connexion unique est un mécanisme qui vous permet d’authentifier les utilisateurs dans vos systèmes pour ensuite indiquer à Zendesk qu’ils ont été authentifiés. Si vous utilisez la connexion unique avec JWT, les utilisateurs sont automatiquement vérifiés auprès du fournisseur d’identité quand ils se connectent. Les utilisateurs sont alors autorisés à accéder à Zendesk sans avoir à saisir d’identifiants de connexion supplémentaires.
Au centre de la connexion unique se trouve un mécanisme de sécurité qui permet à Zendesk de faire confiance aux demandes de connexion reçues depuis vos systèmes. Zendesk accorde l’accès uniquement aux utilisateurs que vous avez authentifiés. La connexion unique Zendesk s’appuie sur une technologie appelée token Web JSON (JWT) pour la sécurisation des transferts de données d’authentification des utilisateurs.
- Fonctionnement de la connexion unique avec JWT pour Zendesk
- Configuration requise pour l’activation de la connexion unique avec JWT
- Activation de la connexion unique avec JWT
- Affectation de la connexion unique avec JWT aux utilisateurs
- Gestion des utilisateurs dans Zendesk après l’activation de la connexion unique JWT
- Création d’un nouveau secret partagé
- Changement de méthode d’authentification
- Informations supplémentaires au sujet de JWT
L’équipe informatique d’une entreprise est généralement chargée de la configuration et de la gestion du système d’authentification JWT de l’entreprise. Son rôle est d’implémenter la connexion unique pour Zendesk dans le système. L’équipe peut consulter le sujet suivant dans cet article :
Articles connexes :
Fonctionnement de la connexion unique avec JWT pour Zendesk
Une fois la connexion unique activée, les demandes de connexion sont envoyées à une page de connexion à l’extérieur de Zendesk Support.
Étapes du processus d’authentification par connexion unique avec JWT :
- Un utilisateur non authentifié navigue jusqu’à votre URL Zendesk Support. Exemple : https://votre_sousdomaine.zendesk.com/.
- Le mécanisme de connexion unique Zendesk détecte que la connexion unique est activée et que l’utilisateur n’est pas authentifié.
- Zendesk redirige l’utilisateur vers la page de connexion à distance de votre organisation. Exemple : https://mon_entreprise.com/zendesk/sso.
- Un script sur le serveur à distance authentifie l’utilisateur en utilisant le processus de connexion de votre organisation.
- Le système d’authentification crée une demande JWT contenant les données utilisateur appropriées.
- Le système d’authentification redirige l’utilisateur vers le point de terminaison Zendesk suivant avec la charge JWT :
https://votre_sousdomaine.zendesk.com/access/jwt
- Zendesk analyse les détails de l’utilisateur de la charge JWT, puis lui accorde une session.
Comme vous le voyez, ce processus s’appuie sur des redirections du navigateur et la transmission de messages signés avec JWT. Les redirections ont lieu entièrement dans le navigateur et il n’y a pas de connexion directe entre Zendesk et vos systèmes, ce qui vous permet de placer vos scripts d’authentification en sécurité derrière le pare-feu de votre entreprise.
Configuration requise pour l’activation de la connexion unique avec JWT
- L’URL de connexion à distance vers laquelle rediriger les utilisateurs Zendesk quand ils essaient d’accéder à Zendesk
- (facultatif) L’URL de déconnexion à distance vers laquelle Zendesk peut rediriger les utilisateurs quand ils se déconnectent de Zendesk
- (facultatif) Une liste de plages pour rediriger les utilisateurs vers l’option de connexion appropriée. Les utilisateurs faisant des demandes à partir des plages IP spécifiées sont dirigés vers le formulaire d’authentification JWT à distance. Les utilisateurs faisant des demandes provenant d’adresses IP hors de ces plages sont dirigés vers le formulaire de connexion Zendesk normal. Si vous ne spécifiez pas de plage, tous les utilisateurs sont redirigés vers le formulaire d’authentification à distance.
Confirmez auprès de votre équipe que le trafic en direction de Zendesk utilise HTTPS, pas HTTP.
Saisissez ensuite les informations dans Support pour activer la connexion unique. Consultez Activation de la connexion unique avec JWT.
Il est possible que l’équipe informatique ait besoin de plus d’informations de Zendesk pour configurer l’implémentation SAML. Dites-lui de consulter la Fiche pour l’implémentation technique de cet article.
Activation de la connexion unique avec JWT
Vous pouvez activer la connexion unique JWT pour les utilisateurs finaux uniquement, pour les membres du personnel (agents et administrateurs) uniquement ou pour les deux groupes. Si vous utilisez JWT et SAML, vous devez en sélectionner un comme méthode d’authentification principale. Quand ils se connectent à Zendesk, les utilisateurs sont alors redirigés vers votre page de connexion principale. Les utilisateurs peuvent se connecter avec la méthode secondaire en accédant à la page de connexion secondaire. Pour en savoir plus, consultez Utilisation de différentes connexions uniques SAML et JWT pour les agents et les utilisateurs finaux.
Vous devez vous connecter à Zendesk Support en tant qu’administrateur pour activer la connexion unique avec JWT.
Pour activer la connexion unique JWT
- 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 Configurer.
- Pour URL de connexion à distance, saisissez l’URL vers laquelle rediriger vos utilisateurs quand ils essaient d’accéder à votre URL Zendesk.
Zendesk ajoute automatiquement un paramètre brand_id à l’URL. Il s’agit de la marque Zendesk Support que consultait l’utilisateur quand il a essayé de se connecter.
- Pour URL de déconnexion à distance, saisissez l’URL vers laquelle Zendesk redirigera vos utilisateurs quand ils se déconnectent.
Zendesk ajoute automatiquement les paramètres email, external_id et brand_id à l’URL. Si vous préférez que l’URL n’inclue pas les informations d’e-mail et d’ID externe, spécifiez des paramètres vides dans l’URL de déconnexion. Exemple :
https://www.xyz.com/user/signout/?email=&external_id=
Remarque – Si vous utilisez une application Ember.js, vous devez modifier l’URL pour utiliser des paramètres vides avant l’adressage. Par exemple,https://somedomain.com/?brand_id=&return_to=&email=#/zendesk-login/
. - (facultatif) Pour les plages IP, saisissez une liste de plages pour rediriger les utilisateurs vers l’option de connexion appropriée.
Les utilisateurs faisant des demandes à partir des plages IP spécifiées sont dirigés vers le formulaire d’authentification JWT. Les utilisateurs faisant des demandes provenant d’adresses IP hors de ces plages sont dirigés vers le formulaire de connexion Zendesk normal. Ne spécifiez pas de plage si vous voulez que tous les utilisateurs soient redirigés vers le formulaire d’authentification JWT.
- Si vous utilisez des ID externes pour vos utilisateurs, vous pouvez les mettre à jour dans Zendesk Support en sélectionnant On pour Autoriser la mise à jour des ID externes ?
- Fournissez le secret partagé à votre équipe informatique. Elle en aura besoin pour son implémentation JWT. Important : conservez votre secret partagé en sécurité. S’il est compromis, toutes les données de votre compte Support sont en danger.
- Une fois votre connexion unique JWT configurée, cliquez sur Activée pour pouvoir affecter cette option aux utilisateurs.
- Cliquez sur Enregistrer.
Affectation de la connexion unique avec JWT aux utilisateurs
- Ouvrez les paramètres de sécurité pour les membres de l’équipe ou les utilisateurs finaux.
- Dans le Centre d’administration, cliquez sur l’icône Compte (
) dans la barre latérale, puis sélectionnez Sécurité > Authentification des membres de l’équipe.
- Dans le Centre d’administration, cliquez sur l’icône Compte (
) dans la barre latérale, puis sélectionnez Sécurité > Authentification des utilisateurs finaux.
- Dans le Centre d’administration, cliquez sur l’icône Compte (
- Sélectionnez Token Web JSON comme option de connexion unique dans la section Authentification externe.
- Si vous voulez que seule la connexion unique soit utilisée par tous les utilisateurs, désélectionnez l’option Authentification Zendesk.
Tous les mots de passe Zendesk seront définitivement supprimés du compte dans un délai de 24 heures.
- Si vous avez désactivé les mots de passe Zendesk, sélectionnez l’option de menu qui spécifie si seuls le propriétaire du compte ou les administrateurs (qui incluent le propriétaire du compte) peuvent accéder au compte en cas d’indisponibilité du fournisseur de connexion.
Pour obtenir l’accès, le propriétaire du compte ou un administrateur doit demander à recevoir un e-mail contenant un lien d’accès à usage unique. En cliquant sur ce lien, cette personne accède au compte. Aucun mot de passe n’est nécessaire. Consultez Accès au compte si les mots de passe sont désactivés.
- Cliquez sur Enregistrer.
Gestion des utilisateurs dans Zendesk après l’activation de la connexion unique JWT
Après l’activation de la connexion unique JWT dans Zendesk, les modifications apportées aux utilisateurs à l’extérieur de Zendesk sont synchronisées avec votre compte Zendesk. Par exemple, si un utilisateur est ajouté à votre système interne, l’utilisateur est automatiquement ajouté à votre compte Zendesk. Si vous supprimez un utilisateur de votre système interne, l’utilisateur ne pourra plus se connecter à votre Zendesk (mais son compte existera toujours dans Zendesk).
Par défaut, les seules données utilisateur stockées dans Zendesk quand la connexion unique est activée sont le nom et l’adresse e-mail de l’utilisateur. Zendesk ne stocke pas les mots de passe. Par conséquent, vous devez désactiver toutes les notifications par e-mail automatisées envoyées par Zendesk au sujet des mots de passe. Consultez Désactivation des notifications par e-mail au sujet des mots de passe de Zendesk..
Pour fournir une meilleure expérience client, vous devriez envisager de stocker plus que le nom et l’adresse e-mail de l’utilisateur dans Zendesk. Consultez Obtention de données utilisateur supplémentaires.
Création d’un nouveau secret partagé
Dans certains cas, vous devrez peut-être créer un nouveau secret partagé JWT et le communiquer à votre équipe informatique ou un fournisseur d’identité tiers (par exemple, si le secret a été compromis). Vous pouvez générer un nouveau secret partagé JWT à partir du Centre d’administration Zendesk. Cela crée un nouveau secret et annule l’ancien. Vous devez informer votre équipe informatique ou votre fournisseur d’identité externe de votre nouveau secret partagé pour que l’authentification par connexion unique du compte Zendesk fonctionne.
Pour créer un nouveau secret partagé :
- 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 Modifier.
La configuration actuelle de votre token Web JSON s’affiche.
- Allez à Secret partagé en bas de la page de configuration et cliquez sur Réinitialiser le secret.
Un message de confirmation s’affiche.
- Cliquez sur Réinitialiser le secret pour confirmer la réinitialisation.
Vous devriez voir un nouveau secret partagé en texte brut.
- Cliquez sur Copier pour faire une copie de votre nouveau secret partagé et la remettre à votre équipe informatique ou votre fournisseur d’identité externe.
- Enregistrez vos modifications.
Changement de méthode d’authentification
Informations supplémentaires au sujet de JWT
JWT est une norme ouverte récente, pilotée par un organisme de normes international IETF et soutenue par des poids lourds du secteur technologique (par exemple, Microsoft, Facebook et Google).
Les éléments fondamentaux de JWT sont des composants très bien compris, ce qui débouche sur une spécification relativement simple, disponible ici http://tools.ietf.org/html/draft-jones-json-web-token-10. Il existe de nombreuses implémentations open source de la spécification JWT qui couvrent la plupart des technologies modernes. Cela signifie que vous pouvez configurer la connexion unique JWT sans grandes difficultés.
Attention cependant, la charge JWT est seulement codée et signée, pas chiffrée, ne placez donc pas de données sensibles dans le tableau d’adressage. JWT fonctionne en sérialisant le JSON qui est transmis à une chaîne. JWT code ensuite cette chaîne en base 64 et convertit cette chaîne base 64 en HMAC, qui dépend du secret partagé. Cela produit une signature que le côté du destinataire peut utiliser pour valider l’utilisateur.
Fiche pour l’implémentation technique
Cette section est destinée à l’équipe responsable du système d’authentification JWT de l’entreprise. Elle fournit des détails au sujet de l’implémentation de la connexion unique JWT pour Zendesk.
Sujets couverts :
Algorithme JWT
Spécifiez HS256 comme algorithme JWT dans l’en-tête de votre charge JWT :
{
"typ":"JWT",
"alg":"HS256"
}
HS256 signifie HMAC SHA 256, un algorithme de chiffrement 256 bits conçu par la NSA (US National Security Agency).
Point de terminaison JWT
Une fois l’utilisateur authentifié, redirigez-le et la charge JWT vers le point de terminaison Zendesk suivant :
https://votre_sousdomaine.zendesk.com/access/jwt
La charge doit être chiffrée en base 64 et ajoutée à l’URL sous la forme d’une chaîne de requête.
La charge JWT doit être envoyée à votre sous-domaine Zendesk Support en utilisant le protocole https. Exemple :
https://yoursubdmain.zendesk.com/access/jwt?jwt={payload}
Les sous-domaines avec mappage d’hôte ne sont pas pris en charge.
Attributs JWT
Envoyez les attributs à Zendesk sous la forme d’un adressage (Ruby) ou d’un dictionnaire (Python) chiffré base64. Exemple utilisant Ruby :
payload = JWT.encode({
:email => "bob@example.com", :name => "Bob", :iat => Time.now.to_i, :jti => rand(2<<64).to_s
}, "Our shared secret")
Zendesk exige une adresse e-mail pour identifier l’utilisateur de façon unique. En plus des attributs obligatoires que vous pouvez voir dans le tableau ci-dessous, vous pouvez envoyer des données de profil utilisateur supplémentaires facultatives. Ces données sont synchronisées entre votre système de gestion des utilisateurs et Zendesk Support.
Attribut | Obligatoire | Description |
---|---|---|
iat | Oui | Émis à. L’heure à laquelle le token a été généré. Cela permet de s’assurer qu’un token donné est utilisé peu de temps après sa génération. La valeur doit être le nombre de secondes depuis l’epoch UNIX. Zendesk autorise un décalage d’horloge maximum de trois minutes, alors n’oubliez pas de configurer le protocole NTP ou similaire sur vos serveurs. |
jti | Oui | ID du token Web JSON. Un identifiant unique pour le token, utilisé par Zendesk pour empêcher les attaques de réutilisation de token. |
Oui | Adresse e-mail de l’utilisateur en cours de connexion, utilisée pour identifier de façon unique le dossier de l’utilisateur dans Zendesk Support. | |
name | Oui | Nom de l’utilisateur. L’utilisateur dans Zendesk Support sera créé ou mis à jour en fonction de cet attribut. |
external_id | Non | Si vos utilisateurs sont identifiés de façon unique par autre chose qu’une adresse e-mail et si leur adresse e-mail risque de changer, envoyez l’ID unique depuis votre système. Spécifiez l’ID sous la forme d’une chaîne. |
locale (pour utilisateurs finaux) locale_id (pour agents) |
Non | Langue dans Zendesk Support, spécifiée en tant que chiffre. |
organization | Non | Nom d’une organisation à laquelle ajouter l’utilisateur. Remarque – Si l’option Les utilisateurs finaux peuvent appartenir à plusieurs organisations est activée, des organisations supplémentaires sont ajoutées à celle d’origine et sont considérées comme des organisations secondaires. Cela ne supprime pas les affiliations existantes. Si vous voulez transférez plusieurs organisations à la fois, utilisez plutôt l’attribut organizations. Les organisations doivent être transférées dans une chaîne, séparées par des virgules. |
organization_id | Non | ID externe de l’organisation dans l’API Zendesk. Si organization et organization_id sont fournies, alors l’attribut organization est ignoré. Remarque – Si l’option Les utilisateurs finaux peuvent appartenir à plusieurs organisations est activée, des organisations supplémentaires sont ajoutées à celle d’origine et sont considérées comme des organisations secondaires. Cela ne supprime pas les affiliations existantes. |
phone | Non | Numéro de téléphone, spécifié sous forme de chaîne. |
tags | Non | Il s’agit d’un jeu de marqueurs JSON à configurer pour l’utilisateur. Ces marqueurs remplacent tous les autres marqueurs qui existent dans le profil utilisateur. |
remote_photo_url | Non | URL d’une photo pour le profil utilisateur. |
role | Non | Rôle de l’utilisateur. Peut être défini sur « utilisateur », « agent » ou « administrateur ». Par défaut : « utilisateur ». Si le rôle de l’utilisateur est différent du rôle dans Zendesk Support, le rôle est modifié dans Zendesk Support. |
custom_role_id | Non | Applicable seulement si le rôle de l’utilisateur est « agent ». |
user_fields | Non |
Adressage JSON de la clé de champ d’utilisateur personnalisé et des valeurs à définir pour l’utilisateur. Le champ d’utilisateur personnalisé doit exister pour définir la valeur du champ. Chaque champ d’utilisateur personnalisé est identifié par sa clé de champ, qui se trouve dans les paramètres d’administration des champs d’utilisateur. Le format des valeurs de date est : aaaa-mm-jj. Si une valeur ou une clé de champ d’utilisateur personnalisé n’est pas valide, la mise à jour du champ échouera sans message d’erreur et l’utilisateur pourra toujours se connecter. Pour en savoir plus au sujet des champs d’utilisateur personnalisés, consultez Ajout de champs personnalisés aux utilisateurs.
Remarque – L’envoi de valeurs null dans l’attribut user_fields supprimera toute valeur existante dans les champs correspondants.
|
Paramètre de l’URL de connexion à distance (return_to)
Quand Zendesk redirige un utilisateur à votre page de connexion à distance, il transfère aussi un paramètre d’URL return_to. Le paramètre contient la page à laquelle Zendesk renverra l’utilisateur une fois que votre système l’a identifié. Ajoutez le paramètre (nom et valeur) au point de terminaison JWT Zendesk.
Par exemple, supposez qu’un agent qui est déconnecté clique sur le lien suivant pour ouvrir un ticket dans Support : https://mon_entreprise.zendesk.com/tickets/1232. Le flux est le suivant :
- Quand l’utilisateur clique, Zendesk le redirige vers l’URL de connexion à distance et ajouter le paramètre
return_to
suivant à l’URL :https://mycompany.com/zendesk/sso?return_to=https://mycompany.zendesk.com/tickets/123
- Votre système d’authentification extrait le paramètre
return_to
(nom et valeur) de l’URL et, une fois l’authentification de l’utilisateur effectuée, l’ajoure au point de terminaison JWT Zendesk. Exemple :https://mycompany.zendesk.com/access/jwt?jwt=payload&return_to=https://mycompany.zendesk.com/tickets/123
- Zendesk utilise le paramètre pour ouvrir la page du ticket pour l’agent.
Le paramètre return_to
est une URL absolue pour l’interface d’agent et une URL relative pour le centre d’aide.
Le transfert du paramètre return_to
est facultatif, mais nous vous le conseillons pour une expérience utilisateur plus conviviale.
return_to
contient ses propres valeurs d’URL, vérifiez que votre script code en URI toute la valeur return_to lors de l’envoi du token JWT. Traitement des erreurs
Si Zendesk rencontre une erreur lors du traitement d’une demande de connexion JWT, un message expliquant le problème est envoyé. Si vous avez spécifié une URL de connexion à distance quand vous avez configuré l’intégration JWT. Zendesk vous redirige vers cette URL et transmet un paramètre message et un paramètre kind. En cas d’erreur, le paramètre kind aura toujours la valeur « error ». Zendesk vous conseille de configurer une URL de connexion à distance et des messages de connexion, en plus du type. La plupart des erreurs qui peuvent survenir doivent être résolues (par exemple, décalage d’horloge, limites de taux atteintes, tokens non valides, etc.).
Exemples de code d’implémentation JWT
L’implémentation JWT est simple et de nombreux ouvrages sont disponibles dans la plupart des langues. Zendesk fournit une série d’exemples pour diverses piles dans le répertoire GitHub de connexion unique JWT :
Si vous implémentez JWT dans une autre pile, nous serions enchantés d’en inclure un exemple. Ajoutez un commentaire à cet article afin de partager votre implémentation.
Si vous exécutez IIS/AD et ne voulez pas créer votre propre solution .NET, nous fournissons une implémentation complète en ASP classique, qui ne vous demandera que l’ajustement de quelques variables. Téléchargez le script d’authentification ASP à partir de cette page sur GitHub : https://github.com/zendesk/zendesk_jwt_sso_examples/tree/master/bundles.
0 Commentaires
Vous devez vous connecter pour laisser un commentaire.