Mídia de entrada segura

A Messages API agora oferece às empresas a opção de reforçar a segurança para proteger os arquivos de mídia enviados a elas por seus usuários finais. Exemplos de arquivos de mídia dos usuários finais são imagens, vídeos e PDFs. Dependendo do caso de uso, esses arquivos podem conter imagens ou informações confidenciais que as empresas e seus clientes gostariam de proteger.

Segurança de mídia de entrada padrão versus aprimorada

Padrão

Os arquivos de mídia recebidos são enviados para nossos servidores de mídia centralizados com uma URL exclusiva. Essa URL exclusiva é válida por 48 horas, a fim de dar tempo para que a empresa baixe o arquivo. Pode haver alguns riscos menores associados a isso. Por exemplo:

  • Um ataque de força bruta poderia revelar a URL
  • Qualquer pessoa que tivesse o URL poderia acessar o arquivo sem a necessidade de credenciais adicionais de Account

Aprimorado

Com a segurança aprimorada para arquivos de mídia recebidos, as empresas só podem acessar arquivos de mídia por meio de um JWT (JSON Web Token) gerado com as credenciais das contas. A ativação desse recurso adiciona uma camada de segurança ao acesso a arquivos de mídia. Para garantir a compatibilidade com versões anteriores, tornamos esse recurso opcional.

Configuração

Para acessar isso, eles precisarão:

  1. Criar uma aplicação da Vonage
  2. Vincule o número deles ao aplicativo
  3. Gerar um JWT a partir do aplicativo
  4. Ative o recurso “Mensagens” e marque a opção “Mídia recebida segura”.

Há mais informações disponíveis sobre as Applications aqui.

Acesso a mídias protegidas

Quando um usuário final envia uma mensagem com um arquivo de mídia, a empresa recebe uma resposta com uma URL para o arquivo de mídia. Para acessar a mídia, será necessário um GET solicitação à URL com um Authorization cabeçalho com um valor definido como um JWT gerado usando o ID da aplicação e a chave privada associados à mesma aplicação da Vonage na qual o webhook que recebeu a mensagem de entrada foi configurado.

Aqui está um exemplo de solicitação cURL com o token:

curl --location --request GET 'https://api-us.nexmo.com/v3/media/1b456509-974c-458b-aafa-45fc48a4d976' \ --header 'Authorization: Bearer '$JWT

Se a solicitação for bem-sucedida, você verá um código 200 e o arquivo de mídia. Se não for bem-sucedida, você verá uma resposta de acesso não autorizado.