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.
Création du client OAuth
La première étape est de créer un client OAuth à des fins de test.
- 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.
- 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"