Passar para o conteúdo principal

Migrando da Verificação de Identidade para Segurança do Messenger com JWTs

Como proteger suas sessões de Messenger dos users contra personificação cruzada, roubo de sessão e atualizações não autorizadas de atributos de dados.

Para melhorar a segurança e flexibilidade para nossos clientes, introduzimos JSON Web Tokens (JWTs) como uma forma mais segura e escalável de autenticar users no Messenger.

Se você está usando atualmente Identity Verification (IDV) para verificar users, mudar para JWTs lhe dará:

  • Maior controle sobre a autenticação – Gerencie a expiração e revogação da sessão você mesmo, em vez de depender de configurações fixas.

  • Segurança reforçada – JWTs permitem tokens assinados e com tempo limitado, reduzindo o risco de ataques de repetição.

  • Melhoria na segurança dos dados – Defina exatamente quais atributos do user podem ser atualizados, reduzindo a exposição de dados sensíveis.

  • Preparação para o futuro – JWTs são a substituição recomendada para IDV, garantindo que seu sistema de autenticação esteja alinhado com as melhores práticas.

Quem deve migrar?

Esta migração é relevante para todos os clientes que atualmente usam IDV, especialmente se você:

✅ Precisa de melhor controle sobre expiração de sessão e revogação de token

✅ Quer impor atualizações seguras e específicas de atributos do user

✅ Lida com dados sensíveis de clientes e requer autenticação mais forte

✅ Está planejando melhorias de segurança a longo prazo no seu workspace

Embora o IDV continue funcionando por enquanto, JWTs oferecem uma abordagem mais moderna e segura que está alinhada com as melhores práticas de autenticação. Este guia irá orientá-lo passo a passo no processo de migração.


Principais diferenças entre Identity Verification e Segurança do Messenger com JWTs

Identity Verification

Segurança do Messenger com JWTs

Método de verificação

Hash assinado HMAC-SHA256

Token assinado JWT

Suporta expiração?

Não

Sim

Suporta atualizações seguras de dados?

Não

Sim

Recomendado para

Verificação básica de identidade no Messenger

Autenticação segura com melhor controle de sessão e manipulação segura de dados

Suporte Mobile SDK: No momento, a autenticação JWT está disponível apenas para implementações do Messenger web. Para os SDKs iOS e Android, você deve continuar usando Identity Verification.


Etapas da migração

Passo 1: Atualize sua integração para gerar JWTs em vez de hashes

  1. Pare de gerar assinaturas HMAC-SHA256 para Identity Verification.

  2. Gere uma nova chave secreta para seu Messenger, escolhendo para quais plataformas deseja aplicá-la

  3. Em vez disso, gere um JWT usando sua chave secreta.

Aqui está uma configuração de código do lado do servidor para Node.js:

const jwt = require("jsonwebtoken");

const payload = {
user_id: "USER_ID_HERE", // Required
email: "EMAIL_ADDRESS_HERE", // Optional
data_attribute: "YOUR_DATA", // Optional
exp: Math.floor(Date.now() / 1000) + 3600 // Expires in 1hr
};

const secret = process.env.MESSENGER_SECRET_KEY || "YOUR_MESSENGER_SECRET_KEY"; // Secure key storage

const intercomUserJwt = jwt.sign(payload, secret, { algorithm: "HS256" });

O que colocar no payload do seu JWT:

  • user_id para identificar o user. Este é um campo obrigatório.

  • Um timestamp opcional (exp) para expiração

  • Quaisquer outros atributos de dados que você deseja enviar com segurança para seus users

Para instruções detalhadas sobre como gerar JWTs para seu workspace, veja nosso documento principal do centro de ajuda.

Nota: Se você está atualmente enviando atributos de dados sobre seus users através do Zendesk ou Fin Messenger, deve atualizar sua integração para enviar esses atributos com segurança dentro do JWT do user. Para isso, adicione quaisquer atributos ao seu payload e garanta que quaisquer solicitações inseguras do messenger sejam bloqueadas.

No exemplo de código acima, nosso payload assina o user_id e o email. Também inclui uma expiração, que também deve ir para o payload.

Passo 2: Atualize seu snippet frontend para enviar JWTs para users

Em vez de passar uma assinatura HMAC para IDV, passe o JWT nas configurações do Messenger como intercom_user_jwt

Para Web (JavaScript SDK):

window.Intercom("boot", {
api_base: "https://api-iam.intercom.io",
app_id: "<YOUR_APP_ID_HERE",
intercom_user_jwt: "<YOUR_USER_JWT_HERE>"
};

Como mencionado na seção anterior, agora estamos enviando atributos de dados dentro do JWT e eles foram removidos do snippet.

Para instruções detalhadas sobre como gerar JWTs para seu workspace, veja nosso documento do centro de ajuda.

Mobile (SDKs iOS/Android): JWTs ainda não são suportados nos SDKs mobile. Aqui você deve continuar usando Identity Verification por enquanto.


Solução de problemas

Existem logs detalhados de falhas e ferramentas de depuração de token em Configurações > Messenger > Segurança para ajudar na migração para JWTs.

Para mais informações, veja nosso guia de instalação aqui.


Perguntas frequentes

O que acontece se eu não migrar?

Identity Verification continuará funcionando por enquanto, mas JWTs oferecem segurança mais forte e melhor controle.

Como revogo uma sessão JWT?

Você pode definir uma expiração curta (exp) ou rotacionar chaves de assinatura para invalidar tokens antigos.

Posso usar Identity Verification e JWTs juntos?

Uma vez que a autenticação JWT esteja habilitada, Identity Verification não é mais necessária. No entanto, você pode usar JWTs e Identity Verification independentemente na web, iOS e Android, pois todos são configurados individualmente.

Respondeu à sua pergunta?