Si vous testez ou créez une application interne, vous ne voulez peut-être pas que vos demandes d’API soient associées à un utilisateur spécifique, comme c’est le cas avec l’authentification élémentaire qui nécessite un nom d’utilisateur et un mot de passe ou l’authentification par token API qui nécessite un nom d’utilisateur. La troisième solution est d’utiliser un token d’accès OAuth.

Au premier abord, la création d’un token OAuth, avec son flux d’autorisation complexe, peut paraître très compliquée. Vous pouvez cependant ignorer les étapes les plus complexes du processus et obtenir un token d’accès directement depuis l’API. Cet article explique comment créer en quelques étapes simples votre propre token OAuth à des fins de test.

Important : la technique décrite dans cet article consiste à remplacer un nom d’utilisateur et un mot de passe Zendesk par un token d’accès. Par conséquent, le token a les mêmes vulnérabilités de sécurité qu’un mot de passe. Toute personne en possession du token a accès au compte. Conservez votre token dans un endroit sûr et ne l’intégrez pas au code source de votre application. Stockez-le plutôt dans une variable d’environnement.

Création du client OAuth

La première étape est de créer un client OAuth à des fins de test.

  1. Dans le Centre d’administration, cliquez sur l’icône Applications et intégrations () dans la barre latérale, puis sélectionnez API > API Zendesk.
  2. Dans l’onglet Clients OAuth, cliquez sur Ajouter un client OAuth en haut à droite de la liste.

La configuration du client à des fins de test est légèrement différente de la création d’un client OAuth normal. Notez les différences suivantes :

  • Votre URL de redirection doit être une URL HTTPS valide, mais il n’est pas nécessaire qu’il s’agisse d’un vrai site Web pour ce projet. Exemple : https://unsite.com.
  • L’identifiant unique est le nom de votre client utilisé dans le code. Vous pouvez aussi obtenir l’ID du client avec le point de terminaison List Clients de l’API du client OAuth.
  • Il peut être judicieux de copier votre secret pour référence future. Il ne s’affichera plus après sa création, mais vous en aurez besoin si vous voulez l’utiliser pour créer une application Web OAuth ou pour d’autres projets.
  • Tous les autres champs peuvent être remplis avec des données fictives.

Création du token d’accès

Vous avez désormais tout ce dont vous avez besoin pour créer un token avec l’API de tokens OAuth. Voici comment effectuer la demande avec cURL :

 curl https://{subdomain}.zendesk.com/api/v2/oauth/tokens.json \
   -H "Content-Type: application/json" \
   -d '{"token": {"client_id": "your_client_id", "scopes": ["read", "write"]}}' \
   -X POST -v -u {email_address}:{password}

Quelques points à noter au sujet de ce code :

  • N’oubliez pas de remplacer la balise de sous-domaine par votre propre sous-domaine.
  • La valeur de client_id est le nombre que vous avez copié à la page des clients OAuth.
  • Configurez « scopes » sur [« read », « write »] sauf si vous testez spécifiquement l’accès en lecture seule à une ressource.
  • Si votre organisation utilise laconnexion unique et que les mots de passe Zendesk ont été supprimés du compte Zendesk, vous devrez utiliser un token API pour authentifier la demande : -u {email_address}/token:{api_token}. Consultez Token API dans la documentation de l’API Support.

Exécutez votre demande cURL. Elle devrait renvoyer un package JSON comprenant un objet token avec plusieurs propriétés :

La valeur de « full_token » est votre token d’accès. Copiez-le et conservez-le dans un endroit sûr.

Notez que la propriété « expires_at » de la réponse est « null », ce qui signifie que le token n’arrêtera de fonctionner que quand vous supprimerez le client. En outre, la prochaine fois que vous accéderez à Clients OAuth dans le Centre d’administration, votre nombre de tokens actifs pour votre nouveau client devrait avoir augmenté de 1.

Utilisation de votre nouveau token d’accès

À quoi bon avoir un token d’accès si vous n’avez rien avec quoi l’utiliser ? Aucun des exemples ci-dessous n’utilise de nom d’utilisateur ni de mot de passe, et ce n’est pas un accident. Un token d’accès OAuth ne dépend pas d’un compte utilisateur, ce qui est l’un des avantages de son utilisation dans vos applications et vos scripts.

Utilisation d’un token d’accès pour authentifier une demande d’API

Un appel API qui nécessite une authentification peut être effectué avec un token d’accès OAuth. Par exemple, un appel au point de terminaison des tickets qui ressemblerait normalement à ce qui suit :

curl https://{subdomain}.zendesk.com/api/v2/tickets.json \
   -u {email_address}:{password}

ressemble à ce qui suit avec un token d’accès :

curl https://{subdomain}.zendesk.com/api/v2/tickets.json \
  -H "Authorization: Bearer {access_token}"

Utilisation d’un token d’accès dans un client API

Vous pouvez aussi utiliser un token d’accès OAuth dans n’importe lequel de vos clients API. Le client Ruby, par exemple, nécessite généralement une authentification avec nom d’utilisateur et mot de passe (ou token API), comme :

  config.username = "user email"
  config.password = "user password"

Voilà à quoi cela ressemble si vous utilisez plutôt un token d’accès :

 config.access_token = "your OAuth access token"

 

Réalisé par Zendesk