HMAC signifie code d'authentification de message basé sur le hachage. Cette authentification est le produit d'une fonction de hachage appliquée au corps d'un message avec une clé secrète. Ainsi, plutôt que d'envoyer les données d'authentification via une requête de service Web, vous envoyez un identifiant pour la clé privée et un HMAC. Lorsque le serveur reçoit la demande, il recherche la clé privée de l'utilisateur et l'utilise pour créer un HMAC pour la demande entrante. Si le HMAC soumis avec la requête correspond à celui calculé par le serveur, alors la requête est authentifiée.
Les identifiants/jetons de sécurité seront envoyés à QuestionPro via les paramètres de l'URL de la communauté. L'authentification HMAC-SHA1 peut être configurée pour votre communauté à partir de Communauté>> Authentification de connexion Lors de la configuration de l'authentification, vous devrez entrer : 1. Clé : Une clé de 36 caractères qui est utilisée pour hacher le temps en secondes. Cette clé doit comporter 8 caractères. 2. Horodatage : La fenêtre de temps pendant laquelle l'URL de l'enquête sera valide. La valeur saisie ici est en minutes. Reportez-vous à la capture d'écran ci-dessous pour savoir où apporter des modifications :
Vous devrez transmettre les champs de jeton de sécurité suivants via l'URL :
Nom | Descriptif / Valeur | Requis |
ID enquête | Identifiant de l'enquête | ✔ |
ts | Lorsque le jeton a été créé en temps UTC (secondes). | ✔ |
hacher | Hachage HMAC-SHA1 des secondes (UTC) | ✔ |
mode | La valeur de ce paramètre est toujours hmacSha1 | ✔ |
public String getAuthURL(String surveyID, String hashKey){ long ms = getUTCMillis(); long seconds = (ms/1000); String hash = hmacSha1(String.valueOf(seconds),hashKey); String params = "surveyID="+surveyID+"&ts=" + seconds + "&hash=" + hash + "&mode=hmacSha1" return "https://www.questionpro.com/a/TakeSurveyAuth?"+params; }
Exemple de code :function getAuthURL($surveyID,$hashKey){ $seconds = time(); $hash = hash_hmac('sha1', $seconds, $hashKey); $params = "surveyID=".$surveyID. "&ts=" . $seconds . "&hash=" . $hash . "&mode=hmacSha1"; return "https://www.questionpro.com/a/TakeSurveyAuth?".$params; }
Cette fonctionnalité est disponible avec la licence suivante: