Cet article est aussi disponible en :

Sécuriser l'accès au jeu avec l'authentification JWT

Sécurisation de l'accès au Jeu avec l'Authentification JWT


L'Authentification JWT vous permet de transmettre de manière sécurisée les informations des joueurs à votre expérience Drimify et de contrôler qui peut y accéder. Au lieu de passer les données des joueurs via des paramètres de requête en clair — ce que n'importe qui peut falsifier — votre système émet un JSON Web Token (JWT) signé. Drimify vérifie la signature en utilisant votre secret partagé, de sorte que les déclarations d'identité des joueurs sont fiables sans avoir besoin de rappel serveur à serveur.


C'est idéal pour les programmes de fidélisation, les portails membres, et toute situation où le jeu est intégré dans un environnement authentifié et où vous devez savoir de manière fiable qui joue.


Comment ça fonctionne


  1. Vous créez une Configuration JWT dans votre compte Drimify (algorithme + secret).
  2. Vous activez l'Authentification JWT sur votre application et sélectionnez cette configuration.
  3. Votre système génère un jeton signé contenant les informations du joueur et le transmet à l'ouverture du jeu.
  4. Drimify vérifie la signature et l'expiration du jeton, lit les déclarations associées, et laisse entrer le joueur. Les jetons invalides ou manquants sont bloqués avec un écran d'erreur personnalisable.


Étape 1 — Créer une Configuration JWT


Allez à Mon Compte → Configurations JWT (juste en dessous d'Intégrations) et cliquez pour ajouter une nouvelle configuration :


  • Nom : Un libellé pour votre propre référence.
  • Algorithme : L'algorithme de signature utilisé par votre système. Pris en charge : HS256, HS384, HS512 (HMAC, secret partagé) et ES256, ES384 (ECDSA).
  • Secret : Le secret partagé utilisé pour vérifier la signature du jeton. Pour des raisons de sécurité, les secrets HMAC doivent respecter une longueur minimale : 32 caractères pour HS256, 48 pour HS384, 64 pour HS512. Le secret est masqué après enregistrement.
  • Espaces de travail : Sélectionnez quel espace de travail peut utiliser cette configuration. Une application ne peut utiliser que les configurations disponibles dans son espace de travail.


Associer les champs (noms des claims)


Par défaut, Drimify lit les noms de claims standard de votre jeton. Si l'émetteur de votre jeton utilise des noms de claims différents (par ex. user_email au lieu de email), utilisez la section mapping des champs pour associer chaque nom de claim de votre jeton au paramètre de jeu Drimify correspondant.


Associer les champs fonctionne comme une liste blanche : seuls les champs que vous configurez sont lus à partir du jeton. Chaque champ Drimify peut être associé une seule fois (pas de doublons).


Étape 2 — Activer l’authentification JWT sur votre app


Dans votre éditeur d'applications, ouvrez l’onglet Paramètres et activez Activer l'authentification JWT. Ensuite :


  • Sélectionnez la configuration JWT à utiliser (seules les configurations disponibles dans l'espace de travail de l'application sont listées — si aucune n'existe, un lien vous amène aux Configurations JWT).
  • Facultativement, définissez un titre d'erreur personnalisé et une description, affichés aux joueurs lorsque l'accès est refusé (jeton manquant ou invalide).


Étape 3 — Transmettre le jeton à l'ouverture du jeu


Votre système peut transmettre le jeton de trois manières (si plusieurs sont présents, voici aussi l'ordre de priorité) :


  1. En-tête BearerAuthorization: Bearer <token> — recommandé pour la production, car le jeton n'apparaît jamais dans les URLs, les journaux ou l'historique du navigateur.
  2. Chaîne de requêtehttps://your-game-url?jwt=<token> — pratique pour les tests, mais les jetons dans les URLs peuvent fuiter via les journaux et l'historique du navigateur.
  3. Données POST — un champ de formulaire jwt=<token>.


Exigences du jeton


  • Le jeton doit être signé avec l'algorithme et le secret définis dans votre Configuration JWT.
  • Inclure un exp (expiration) claim et garder les durées de vie des jetons courtes — les jetons expirés sont rejetés. Une petite tolérance de décalage d'horloge est postulée, donc de légères différences d'horloge entre les serveurs ne provoqueront pas d'échecs.
  • Les claims doivent contenir les champs du joueur que vous avez mappés dans la configuration (par ex. email, identifiant unique, nom d'utilisateur, numéro de téléphone).


Exemples de charges utiles


{
  "sub": "user-123",
  "email": "player@example.com",
  "iat": 1753257600,
  "exp": 1753261200
}


Vous pouvez générer des jetons de test sur jwt.io en collant votre secret dans le champ de vérification de signature.## Comportements de sécurité à surveiller


  • Les paramètres de requête ne remplacent plus les données du joueur. Lorsque l'authentification JWT est activée, les informations sur le joueur proviennent exclusivement du jeton vérifié — les valeurs en chaîne de requête sont ignorées. Cela empêche quiconque de contourner le jeton en modifiant l'URL.
  • Les limites de participation sont appliquées par le jeton. Si votre application limite les participations par email ou numéro de téléphone, la revendication correspondante doit être présente dans le jeton ; sinon, l'accès est refusé. Les valeurs email ou téléphone invalides sont également rejetées, donc les limites ne peuvent pas être contournées par des données mal formées.
  • Les configurations en cours d'utilisation ne peuvent pas être supprimées. Une configuration JWT encore référencée par une application doit d'abord être désassignée avant de pouvoir être supprimée.
  • Gardez votre secret en sécurité. Toute personne possédant le secret peut émettre des jetons valides. Si un secret est compromis, mettez-le à jour dans la configuration — notez que cela invalide immédiatement tous les jetons signés avec l'ancien secret.


Dépannage


  • Les joueurs voient l'écran d'erreur d'accès : Vérifiez que le jeton est signé avec le bon algorithme et secret, qu'il n'est pas expiré, et qu'il est transmis via l'une des trois méthodes prises en charge.
  • Les données du joueur n'apparaissent pas : Vérifiez les champs associés — seules les revendications mappées sont lues à partir du jeton.
  • La configuration n'est pas listée dans les paramètres de l'application : Assurez-vous que la configuration est activée pour l'espace de travail de l'application.

Mis à jour le : 24/07/2026

Cet article a-t-il répondu à vos questions ?

Partagez vos commentaires

Annuler

Merci !