https://d226lax1qjow5r.cloudfront.net/blog/blogposts/secure-your-inbound-media-files-with-the-vonage-messages-api/secure-inbound-media_messagesapi.png

Sécurisez vos fichiers multimédias entrants avec l'API Messages de Vonage

Publié le April 4, 2023

Temps de lecture : 3 minutes

Vonage's Messages API de Vonage permet des conversations bidirectionnelles à travers un certain nombre de canaux de messagerie différents. Nombre de ces canaux permettent d'envoyer et de recevoir des fichiers multimédias, tels que des images, des fichiers audio et des vidéos.

Cette messagerie multimédia est extrêmement utile dans un grand nombre de situations. Par exemple, un client peut avoir besoin d'envoyer à une entreprise une Video d'un produit défectueux ou des images des dommages causés lors du transport d'une livraison.

Les messages entrants sont reçus via un Webhook de messages entrants. Pour recevoir des messages entrants, vous devez d'abord configurer ce webhook. Cela peut être fait dans le tableau de bord Vonageen suivant les étapes suivantes :

  • Créer une Applications Vonage (si vous ne l'avez pas déjà fait)

  • Dans le cadre de cette application :

    • L'activer pour l'API Messages

    • Réglez l'URL entrante sur l'URL que vous souhaitez recevoir pour les messages entrants.

Vonage Dashboard Messages Application Inbound URL settingVonage Dashboard Messages Application Inbound URL setting

Charge utile du message entrant

Les messages entrants comprennent une charge utile JSON contenant les détails du message. Pour les messages de type texte, il s'agit du texte du message lui-même, par exemple :

{
   "channel": "messenger",
   "message_uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
   "to": "9876543210",
   "from": "0123456789",
   "timestamp": "2023-01-01T14:00:00.000Z",
   "message_type": "text",
   "text": "Hey there!"
}

Pour les messages dont le type est une sorte de média, comme une image ou une vidéo, ce média est stocké sur les serveurs média de Vonage, et le message comprend une adresse URL unique pour accéder au fichier média, par exemple :

{
   "channel": "messenger",
   "message_uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
   "to": "9876543210",
   "from": "0123456789",
   "timestamp": "2023-01-01T14:00:00.000Z",
   "message_type": "image",
   "image": {
      "url": "https://api-us.nexmo.com/v3/media/1b456509-974c-458b-aafa-45fc48a4d976"
   }
}

Sécurité standard

Le média n'est stocké que pendant 48 heures et vous devez envoyer une requête GET à l'URL spécifique fournie dans la charge utile du message entrant pour accéder au fichier média. Par exemple :

GET /v3/media/1b456509-974c-458b-aafa-45fc48a4d976
Host: api-us.nexmo.com

Le fait que vous ayez besoin de l'URL spécifique et qu'elle expire après un certain temps fournit un certain degré de sécurité intégré. Il peut toutefois y avoir quelques risques mineurs associés à ce niveau de sécurité ; par exemple, la force brute pourrait révéler l'URL, et toute personne possédant l'URL pourrait accéder au fichier multimédia sans avoir besoin d'informations d'identification supplémentaires.

Sécurité renforcée avec les médias entrants sécurisés

Une sécurité accrue peut être souhaitable pour des cas d'utilisation spécifiques, tels qu'une situation de service à la clientèle exigeant que le client envoie des informations sensibles sous forme d'image ou de vidéo. C'est là que l'API Messages Secure Inbound Media de l'API Messages peut vous aider !

Pour activer cette fonction, dans le tableau de bord de Vonage, modifiez l'Application dans laquelle vous avez défini l'URL entrante pour le webhook, et mettez le commutateur Enhanced Inbound Media Security en position " on ".

Vonage Dashboard Messages Application Enhanced Inbound Media ToggleVonage Dashboard Messages Application Enhanced Inbound Media Toggle

Lorsque cette fonctionnalité est activée, les webhooks des messages entrants contiennent toujours une URL permettant d'accéder aux médias. Toutefois, la demande GET d'accès aux médias doit désormais inclure un en-tête Authorization avec un schéma de Bearer et des informations d'identification sous la forme d'un jeton Web JSON. jeton Web JSON (JWT). Le JWT doit être généré à l'aide de l'ID de l'application et de la clé privée de l'application Vonage dans laquelle vous avez défini l'URL du webhook entrant. Par exemple :

GET /v3/media/1b456509-974c-458b-aafa-45fc48a4d976
Host: api-us.nexmo.com
Authorization: Bearer eyJ0eXAiOiJKV1Qi...

Lorsque cette fonctionnalité est activée, une requête GET à l'URL du média sans que l'en-tête d'autorisation soit correctement défini entraînera une réponse 401 non autorisée.

Générer des JWT

Vous pouvez générer un JWT via notre outil en ligne ou en utilisant le CLI de Vonage. Dans le contexte d'une application serveur, vous pouvez utiliser l'un de nos SDK serveur pour générer le JWT dans le cadre du flux de travail de votre application. Vous trouverez ci-dessous un exemple de génération d'un JWT à l'aide du SDK Ruby Server.

require 'vonage'

jwt = Vonage::JWT.generate(
 application_id: ENV['VONAGE_APPLICATION_ID'],
 private_key: ENV['VONAGE_PRIVATE_KEY_PATH']
)

(L'exemple suppose que 'VONAGE_APPLICATION_ID' et 'VONAGE_PRIVATE_KEY_PATH' sont définis comme variables d'environnement dans l'application Ruby).

Prochaines étapes

Les médias entrants sécurisés sont-ils utiles pour votre application ou votre cas d'utilisation ? Alors pourquoi ne pas commencer dès maintenant avec les API de Vonage ? Consultez la documentation. Si vous avez des questions ou des commentaires, rejoignez-nous sur le Slack des développeurs de Vonageet nous vous répondrons.

Partager:

https://a.storyblok.com/f/270183/373x376/e8d3211236/karl-lingiah.png
Karl LingiahDéveloppeur Ruby Advocate

Karl est un défenseur des développeurs pour Vonage, qui se concentre sur la maintenance de nos SDK de serveur Ruby et sur l'amélioration de l'expérience des développeurs pour notre communauté. Il aime apprendre, fabriquer des objets, partager ses connaissances et tout ce qui a trait à la technologie du web.