Authentification par user token pour utilisation d'API

Authentification par user token pour utilisation d'API
0
Tags: #<Tag:0x00007f3950fb9ab0>

Bonjour,

Je cherche à utliser les user tokens plutôt qu’un basic authentication pour utiliser mon API. J’ai suivi cette documentation https://www.simplicite.io/resources/documentation/02-integration/services-auth.md

J’ai pu récupérer mon user token mais quand je l’utilise comme décrit dans la partie “Use access token for service calls” pour faire un GET, j’ai des problèmes.

  • Avec le header X-Simplicite-Authorization: Bearer => j’ai l’erreur “Simplicite authentication error: No login”
  • En paramètre dans la requête x_simplicite_authorization= avec le header Authorization: Bearer => j’ai l’erreur “No login”

NB : J’ai mis le paramètre système USE_USERTOKEN à yes. De plus, l’utilisateur pour lequel j’ai généré le token fait partie d’un group qui a pour grant une fonction read sur mon service.

Merci d’avance.

Indiquez moi:

  • La version, le patchlevel et la révision de votre instance Simplicité (vous pouvez voir cette information en appelant le endpoint heath check /health), merci de systématiquement indiquer ces infos lors de vos demandes de support.
  • Les différents appels que vous effectuez (ex: les commandes curl exactes)

Je viens de faire un test sur une instance cloud 4.0 à jour sur la branche release:

> curl -ks -u <monuser>:<monpassword> https://<moninstance>.simplicite.io/health
[Platform]
Status=OK
Version=4.0.P23
BuiltOn=2019-06-04 15:53 (revision a8b660f5b43b7a477b5d8f394db792bec6dd519b)
(...)

Mon test:

  1. je récupère un token API:
> curl -ks -u <monuser>:<monpassword> https://<moninstance>.simplicite.io/api/login?_output=token
{"authtoken":"FafvzAhCPANk284FCDzkbV2OoZ0GLtguvVizbtQNxpBbFKLvvR","authtokenexpiry":1559824974000}
  1. puis j’utilise ce token, d’abord avec le header standard Authorization:
> curl -ks -H "Authorization: Bearer FafvzAhCPANk284FCDzkbV2OoZ0GLtguvVizbtQNxpBbFKLvvR" https://<moninstance>.simplicite.io/api/rest/User
[{"row_id":"1","usr_login":"designer","usr_lang":"ENU","usr_image_id":"381",(...)]
  1. puis avec le header spécifique X-Simplicite-Authorization:
>  curl -ks -H "X-Simplicite-Authorization: Bearer FafvzAhCPANk284FCDzkbV2OoZ0GLtguvVizbtQNxpBbFKLvvR" https://<moninstance>.simplicite.io/api/rest/User
[{"row_id":"1","usr_login":"designer","usr_lang":"ENU","usr_image_id":"381",(...)]
  1. enfin avec le token en parametre d’URL _x_simplicite_authorization_:
> curl -ks https://<moninstance>.simplicite.io/api/rest/User?_x_simplicite_authorization_=R4ePWxjFthcf9xksbV9jCzi2uEpmWGdmBmHY4FFyOy0u67ne9h
[{"row_id":"1","usr_login":"designer","usr_lang":"ENU","usr_image_id":"381",(...)]

Bref, je n’ai pas de pb (en tout cas tant que le token n’est pas expiré).

Pouvez vous m’expliquer le contexte de vos appels API ?

Je pose la question car vous trouverez des exemples d’utilisation des services REST sur notre GitHub (https://github.com/simplicitesoftware), soit en accès direct, soit via des librairies helper qui gèrent le token de manière transparente. En général en s’inspirant de ces exemples et/ou en utilisant les librairies helper on a pas de pb.

Je vous suggère aussi de regarder ce que fait la page de test des API disponible sur /api.