w.c.s. › API »

Authentification

Usager concerné

Pour les appels concernant un usager particulier (tel que la récupération de la liste de ses formulaires en cours), l'usager est précisé en ajoutant une query string avec un paramètre email (pour trouver l'usager selon son adresse électronique) ou un paramètre NameID (pour trouver l'usager selon son NameID SAML).

Signature des requêtes

Les appels aux API doivent être signés, cela passe par une clé partagée à configurer des deux cotés de la liaison, la signature est du type HMAC; l'algorithme de hash à employer est passé en paramètre.

En ce qui concerne l'algorithme de hash, il est préconisé d'utiliser SHA-256 par respect du Référentiel Général de Sécurité (RGS).

La signature est à calculer sur la query string encodée complète, en enlevant les paramètres terminaux algo, timestamp, orig et signature. La formule de calcul de la signature est la suivante :

BASE64(HMAC-HASH(query_string+'algo=HASH&timestamp=' + timestamp + '&orig=" + orig, clé))
  • timestamp est la date dans la zone GMT au format ISO8601 en se limitant à la précision des secondes (ex : 2012-04-04T12:34:00Z),

  • orig est une chaîne de précisant l'émetteur de la requête,

  • algo est une chaîne représentant l'algorithme de hachage utilisé, sont définis : sha1, sha256, sha512 pour les trois algorithmes correspondant. L'utilisation d'une valeur différente n'est pas définie.

La query string définitive est ainsi :

qs_initial&algo=algo&timestamp=ts&orig=orig&signature=signature

Configuration des clés partagées

Les clés partagées doivent être définies dans le fichier site-options.cfg, dans une section [api-secrets], par exemple :

[api-secrets]
intranet = 12345