Authentification par signature (avec vidéo)



Ce mode d'authentification permet de connecter automatiquement les utilisateurs à Logora une fois qu'il sont authentifiés à travers votre système de connexion. Cette méthode utilise un message signé par votre clé secrète pour transmettre les données de l'utilisateur à Logora.


Comment fonctionne le processus de connexion ? 


Avant de commencerrendez-vous sur votre Espace d'administration > Paramètres > Authentification pour choisir le mode d'authentification que vous utiliserez. 


1. Lorsque l'utilisateur se connecte sur votre site web; vous devez créer un message signé contenant les informations de l'utilisateur. Il sera transmis à Logora. 


2. Lorsque l'utilisateur se rend sur une page où est inséré le code Logora, le message signé est inséré dans les variables de configuration Javascript, via le paramètre remote_auth.


3. L'application Logora détecte le message signé, le décode, le vérifie et inscrit ou connecte l'utilisateur.


Pour implémenter cette méthode, il faut vous munir de la clé secrète disponible dans votre espace d'administration à l'onglet Paramètres > Général.

Cette clé secrète vous servira à signer le message. Elle doit rester confidentielle. 


ATTENTION : le message signé transmis à Logora doit toujours être mis à jour selon l'état de l'utilisateur, qu'il soit connecté ou non. Si les pages de votre site web sont derrière un cache, notamment les pages qui contiennent la synthèse du débat, il est possible que le message signé ne soit pas mis à jour. Si la mise en cache gêne la création de la signature, utilisez une autre méthode d'authentification.


Comment générer votre message signé ? 


Grâce à la sérialisation JSON et à HMAC-SHA1, les éditeurs peuvent transmettre les données utilisateurs existantes pour fournir aux utilisateurs une session authentifiée transparente sur Logora. Le message signé doit être généré sur vos serveurs puis transmis à Logora via les variables de configuration javascript. Voici la composition du message, constitué des trois parties suivantes, séparées par un espace :


1. Le corps du message (encodé en base64)


Le corps du message doit inclure les attributs suivants, sensibles à la casse :

  • uid : identifiant unique associé à l'utilisateur dans votre base de données.
  • first_name : prénom de l'utilisateur, ou nom d'utilisateur si last_name est vide.
  • last_name (optionnel) : nom de famille de l'utilisateur.
  • email : l'adresse email enregistrée pour ce compte.
  • avatar (optionnel) : lien vers l'avatar de l'utilisateur.


2. Signature HMAC-SHA1


Générée par :

 

HMAC->SHA1(secret_key, message + ' ' + timestamp)


3. Horodatage (PAS encodé en base64)


L'horodatage (en anglais, timestamp) lors de la génération du message, sous forme d'horodatage Unix.


Exemple de pseudo-code standard :


payload = {
  uid: "123abc",
  first_name: "Jean",
  last_name: "Dupont",
  email: "jeandupont@exemple.com",
}
secret_key = "SECRET_KEY"
timestamp = 1262304000
signature = HMACSHA1(secret_key, payload + ' ' + timestamp)

// Variable message transmise à Logora
message = base_64(payload) + " " + signature + " " + timestamp

// Exemple de message signé
"ewogIHVpZDogIjEyM2FiYyIsCiAgZmlyc3RfbmFtZTogIkplYW4iLAogIGxhc3RfbmFtZTogIkR1cG9udCIsCiAgZW1haWw6ICJqZWFuZHVwb250QGV4ZW1wbGUuY29tIiwKfQ== 2adaad7aae9fa355250e4f4a40aee5df4f41595e 1579282659"


4. Exemples de code pour vous aider à générer votre message


Les exemples de code disponibles sur le lien ci-après vous permettent de générer le message SSO dans différents langages de programmation : PHP, Javascript, Ruby et Python.


Exemples de code SSO


Comment transmettre votre message signé ? 


Une fois que le message a été généré, il doit être transmis via la variable de configuration Javascript, remote_auth, dans le code de la synthèse et de l'espace de débat.


var logora_config = {
        remote_auth: SSO_MESSAGE;
}


Déconnexion de l'utilisateur


Pour déconnecter l'utilisateur, retirez le paramètre remote_auth ou transmettez une chaîne de caractères vide. Si le paramètre est vide, Logora considère que l'utilisateur est déconnecté.


Redirection vers l'espace de débat après connexion de l'utilisateur


Lorsqu'un utilisateur non connecté veut effectuer une action sur l'espace de débat, il est redirigé vers votre page de connexion ou d'inscription. Lors de l'insertion de l'espace de débat et de la synthèse, vous devez définir les URLs de connexion et d'inscription, respectivement via les variables login_url et registration_url.


 Lors de la redirection, un paramètre de requête logora_redirect est transmis, contenant l'URL de la page avant redirection. Utilisez ce paramètre pour rediriger l'utilisateur après sa connexion ou son inscription. Le nom du paramètre transmis peut être modifié, il peut être par exemple défini à redirect_to. Pour changer le nom du paramètre, contactez notre équipe.



Suivez ces prochaines étapes pour terminer l'installation et lancer votre premier débat :