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

Vonage Messages APIでインバウンドのメディアファイルを保護

最終更新日 April 4, 2023

所要時間:1 分

Vonageの メッセージAPIは、さまざまなメッセージングチャネルで双方向の会話を可能にします。これらのチャネルの多くは、画像、オーディオ、ビデオなどのメディアファイルの送受信をサポートしています。

このマルチメディア・メッセージング機能は、さまざまな場面で非常に役立ちます。例えば、顧客が故障した製品の動作不良のビデオや、配送中の破損の画像を企業に送信する必要がある場合などです。

インバウンドメッセージは インバウンドメッセージWebhook.受信メッセージを受信するには、まずこのWebhookを設定する必要があります。これは Vonage Dashboardで行うことができます:

  • アプリケーションの作成 Vonageアプリケーション(まだの場合)

  • そのアプリケーションの中で:

    • Messages APIで有効にする

    • Inbound URLを、受信メッセージを受信したいURLに設定する。

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

インバウンド・メッセージ・ペイロード

インバウンド・メッセージには、メッセージの詳細を含むJSONペイロードが含まれます。テキスト・タイプのメッセージの場合、これにはメッセージのテキストそのものが含まれます:

{
   "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!"
}

メッセージのタイプが画像やビデオなどの何らかのメディアである場合、そのメディアはVonageのメディアサーバーに保存され、メッセージにはメディアファイルにアクセスするための一意のURLなどが含まれます:

{
   "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"
   }
}

スタンダード・セキュリティー

メディアは48時間だけ保存され、メディアファイルにアクセスするには、受信メッセージのペイロードで指定された特定のURLにGETリクエストを発行する必要があります。例えば

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

特定のURLが必要であり、設定された時間が経過すると期限切れになるという事実は、ある程度のセキュリティを内蔵している。例えば、ブルートフォース(総当たり攻撃)によってURLが明らかになり、そのURLを持っている人なら誰でも、追加の認証情報を必要とせずにメディアファイルにアクセスできる。

セキュアなインバウンドメディアでセキュリティを強化

例えば、顧客が画像やVideoの形式で機密情報を送信する必要があるような、顧客ケアのような特定のユースケースでは、セキュリティを高めることが望ましいかもしれない。そこで、Messages APIを使用します。 セキュアな受信メディア機能が役立ちます!

この機能を有効にするには、Vonage Dashboardで、WebhookのInbound URLを設定するアプリケーションを編集し、Enhanced Inbound Media Securityスイッチを「on」の位置に切り替えます。

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

この機能を有効にしても、インバウンドメッセージのウェブフックには、メディアにアクセスするためのURLが含まれます。それでも、メディアにアクセスするためのGETリクエストは、Bearerのスキームを持つAuthorizationヘッダを含む必要があります。 JSONウェブトークン(JWT)を含める必要がある。JWTは、Inbound webhook URLを設定したVonageアプリケーションのアプリケーションIDと秘密鍵を使用して生成する必要があります。例えば

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

この機能を有効にすると、Authorizationヘッダーが正しく設定されていないメディアURLへのGETリクエストは、401 Unauthorizedレスポンスになります。

JWTの生成

JWTは オンラインツールまたは Vonage CLIを使用して.サーバーアプリケーションのコンテキストでは、当社の サーバSDKを使用して、アプリケーション全体のワークフローの一部としてJWTを生成することができます。以下はRuby Server SDKを使用してJWTを生成する例です。

require 'vonage'

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

(この例では、Rubyアプリケーションの環境変数として'VONAGE_APPLICATION_ID'と'VONAGE_PRIVATE_KEY_PATH'が設定されていると仮定している)。

次のステップ

セキュア・インバウンド・メディアはあなたのアプリやユースケースに役立ちますか?それなら、Vonage APIを今すぐ始めてみませんか?以下の ドキュメンテーション.ご質問やフィードバックがありましたら Vonage Developer Slackにご参加ください。

シェア:

https://a.storyblok.com/f/270183/400x414/e8777cc0ac/karl-lingiah.png
Karl LingiahRuby開発者支援

KarlはVonageのDeveloper Advocateで、RubyサーバSDKのメンテナンスとコミュニティの開発者エクスペリエンスの向上に注力しています。彼は学ぶこと、ものを作ること、知識を共有すること、そして一般的にウェブ技術に関連することが大好きです。