Aperçu
OneSignal offre une fonctionnalité de sécurité améliorée appelée vérification d’identité pour aider à prévenir l’usurpation d’identité des utilisateurs. Cette fonctionnalité utilise des jetons Web JSON – ou JWT, générés de manière sécurisée sur votre serveur. Pour vérifier les informations d’abonnement, ces jetons sont transmis à votre application et à l’API de OneSignal. Nous recommandons d’activer la vérification d’identité pour :- Connecter les utilisateurs
- Ajouter des abonnements email
- Ajouter des abonnements SMS
- Modifier les identités des utilisateurs
Contactez
support@onesignal.com pour activer cette fonctionnalité.Prérequis
- Une application OneSignal existante avec une plateforme push configurée.
- Une application mobile intégrée avec l’un des SDK pris en charge :
Configuration
1
Générer de nouvelles clés
Connectez-vous à votre compte OneSignal et accédez à Paramètres > Clés et ID > Vérification d’identité.
Cliquez sur Générer de nouvelles clés pour créer une nouvelle paire de clés.
Téléchargez le fichier PEM ou copiez la clé privée, en veillant à stocker la clé privée en toute sécurité.

Configuration de la vérification d'identité

Création d'une nouvelle paire de clés

Paire de clés de vérification d'identité
2
Générer un JWT de vérification sur votre backend
La vérification d’identité nécessite d’authentifier l’utilisateur final avec votre serveur d’authentification avant de le connecter à OneSignal. Lorsque l’utilisateur final s’authentifie auprès de votre backend, générez le jeton et incluez-le dans la réponse d’authentification à l’appareil. Si votre application n’exécute pas de serveur backend, envisagez de mettre en place un serveur léger pour vérifier les utilisateurs et générer ces jetons.La clé privée se trouve dans le fichier de l’étape précédente que nous avons téléchargé depuis le tableau de bord.
Charge utile JWT
Le JWT peut avoir les propriétés suivantes :Votre ID d’application OneSignal
La date d’expiration du jeton.
L’alias de l’utilisateur.
subscriptions
Requis uniquement lors de l’ajout d’abonnements email et SMS à un utilisateur.
Signature du JWT
Signez le JWT en utilisant l’algorithme ES256. Assurez-vous que votre backend est configuré pour utiliser cette méthode de signature afin d’éviter les problèmes de vérification lors de l’envoi du JWT à OneSignal. Nous recommandons une bibliothèque JWT pour ce faire.Exemple utilisant jsonwebtoken :Inclusion des abonnements
Idéalement, les détails d’abonnement, tels que l’email ou le numéro de téléphone, sont inclus dans la charge utile JWT lors de la connexion d’un utilisateur. Si ces détails ne sont pas disponibles au départ, votre serveur de vérification doit fournir un endpoint pour générer des jetons dynamiquement à mesure que les informations d’abonnement deviennent disponibles.Exemple : Génération de JWT pour ajouter des abonnements3
Transmettre le JWT à la méthode `login`
Une fois que votre backend génère le JWT, appelez la méthode
login avec celui-ci. Ce jeton garantit que l’identité de l’utilisateur est vérifiée avant que des modifications, telles que l’ajout d’un abonnement email ou SMS, puissent être effectuées.Exemple de connexion :4
Gérer les événements du cycle de vie JWT
Vous devrez implémenter un endpoint dédié sur votre backend pour gérer des scénarios tels que l’invalidation de jetons. Cet endpoint doit fournir un JWT actualisé lorsque OneSignal demande une mise à jour.Exemple de gestion de l’invalidation de jeton et de rafraîchissement du JWT :Cela garantit que lorsque le JWT d’un utilisateur est invalidé, un nouveau peut être récupéré depuis votre backend et transmis à OneSignal. Vous pouvez également utiliser cette fonction pour générer un jeton avec un email et un numéro de téléphone, vous permettant de gérer les abonnements email et SMS si le jeton créé lors de l’authentification ne les contient pas.
5
Activer la vérification d'identité par jeton dans le tableau de bord
Dans Paramètres > Clés et ID, activez Vérification d’identité par jeton.
Une fois activée, votre application doit envoyer des JWT OneSignal pour vérifier l’authenticité de l’abonnement. De plus, votre application est tenue d’appeler la méthode

Activation de la vérification d'identité par jeton
login en utilisant un JWT généré par votre serveur de jetons de vérification d’identité.Ajout d’abonnements
Vous n’avez pas besoin de prendre de mesures supplémentaires pour ajouter des abonnements depuis votre application mobile ; l’appel de la méthode login le gère automatiquement pour vous.- Ajouter un email
- Ajouter un numéro de téléphone
API REST
Lorsque la vérification d’identité par jeton est activée, toutes les requêtes vers les API suivantes doivent inclure un JWT généré par le serveur dans les en-têtes en tant que jeton porteur, par exemple,Authorization: Bearer <JWT>.
- Créer un utilisateur
- Voir un utilisateur
- Mettre à jour un utilisateur
- Supprimer un utilisateur
- Voir l’identité de l’utilisateur
- Créer un alias
- Supprimer un alias
- Créer un abonnement
- Mettre à jour un abonnement