Pular para o conteúdo principal

Atendimento ao Cliente

Impersonação de Usuário para Suporte e Solução de Problemas

A impersonação permite que funcionários autorizados façam login temporariamente como outro usuário para solucionar problemas, verificar configurações ou ver exatamente o que o usuário está experimentando. Este recurso é essencial para o suporte ao cliente, mas requer permissões apropriadas e é totalmente auditado.

Ao impersonar um cliente, a equipe acessa o Portal de Autoatendimento exatamente como o cliente o vê, permitindo uma solução de problemas e suporte precisos.

Veja também: RBAC para configuração de permissões, Clientes para gerenciamento de clientes, Portal de Autoatendimento para recursos do portal do cliente.

Propósito

A impersonação de usuários fornece:

  1. Solução de Problemas --- Veja exatamente o que o cliente vê para diagnosticar problemas
  2. Verificação --- Confirme se as configurações de serviço e permissões funcionam corretamente
  3. Treinamento --- Demonstre recursos da perspectiva do cliente
  4. Suporte --- Ajude os clientes a navegar pelo sistema sem exigir compartilhamento de tela
  5. Registro de Auditoria --- Todas as sessões de impersonação são registradas para segurança e conformidade

Permissões Necessárias

Para impersonar usuários, você deve ter uma das seguintes permissões:

  • can_impersonate --- Permissão de impersonação dedicada para a equipe de suporte
  • admin --- Acesso administrativo completo (inclui direitos de impersonação)

Usuários sem essas permissões não podem acessar o recurso de impersonação.

Como Impersonar um Usuário

Via Interface Web:

  1. Navegar até o Cliente --- Encontre o cliente no CRM
  2. Selecionar Contatos --- Veja a lista de contatos do cliente
  3. Clique em "Login como Usuário" --- O botão aparece ao lado de cada contato que possui uma conta de usuário
  4. Confirmar Impersonação --- O sistema pode solicitar confirmação
  5. Sessão Iniciada --- Você agora está logado como esse usuário

Fazendo login como um Usuário no OmniCRM

Via API:

Iniciar sessão de impersonação:

Endpoint: POST /auth/impersonate

Permissão Necessária: can_impersonate ou admin

Requisição:

{
"user_id": 42
}

Resposta:

{
"success": true,
"impersonating_user_id": 1,
"target_user_id": 42,
"impersonation_start": "2025-01-04T15:30:00Z",
"access_token": "new_token_for_impersonated_user",
"refresh_token": "new_refresh_token"
}

Os tokens retornados são para a sessão do usuário impersonado.

O Que Acontece Durante a Impersonação

Quando você impersona um usuário:

  • Contexto Completo --- Você vê o sistema exatamente como o usuário alvo vê:
    • Seu painel e navegação
    • Seus dados de cliente (se usuário cliente)
    • Suas permissões e controles de acesso
    • Seus serviços, faturas e uso
  • Rastreamento de Sessão --- O sistema rastreia ambas as identidades:
    • impersonating_user_id --- Seu verdadeiro ID de usuário
    • target_user_id --- O usuário que você está impersonando
    • impersonation_start --- Quando a impersonação começou
  • Indicador --- A interface exibe um banner mostrando que você está impersonando alguém:
    • "Você está atualmente logado como [Nome de Usuário]"
    • "Clique aqui para parar a impersonação"
  • Registro de Auditoria --- Todas as ações são registradas com ambos os IDs de usuário:
    • Ações aparecem como realizadas pelo usuário alvo
    • Registros de auditoria registram quem estava realmente realizando-as (usuário impersonador)
    • Registro completo de auditoria mantido na tabela ImpersonationLog

Parando a Impersonação

Via Interface Web:

  1. Clique no Banner --- Clique no banner de impersonação na parte superior da página
  2. Ou Navegue --- Vá para o menu do usuário e selecione "Parar Impersonação"
  3. Confirmação --- A sessão termina e você retorna à sua própria conta

Via API:

Endpoint: POST /auth/stop_impersonation

Requisição: Nenhum corpo necessário (requisição autenticada)

Resposta:

{
"success": true,
"impersonation_end": "2025-01-04T15:45:00Z",
"duration_seconds": 900,
"access_token": "your_original_token",
"refresh_token": "your_original_refresh_token"
}

Sua sessão original é restaurada.

Registro de Auditoria de Impersonação

Todas as sessões de impersonação são registradas na tabela ImpersonationLog com:

  • impersonating_user_id --- Membro da equipe que realizou a impersonação
  • target_user_id --- Cliente ou usuário que foi impersonado
  • impersonation_start --- Timestamp de início
  • impersonation_end --- Timestamp de término (quando a sessão foi parada)
  • impersonation_duration --- Duração em segundos

Isso fornece total responsabilidade por todas as sessões de impersonação e permite:

  • Auditorias de Segurança --- Revisar quem impersonou quem e quando
  • Relatórios de Conformidade --- Demonstrar o uso adequado de acesso elevado
  • Investigação --- Rastrear ações durante sessões de impersonação
  • Monitoramento --- Identificar padrões de impersonação incomuns

Visualizando Registros de Impersonação:

Administradores podem consultar registros de impersonação via API:

GET /auth/impersonation_logs?user_id={user_id}&start_date={date}&end_date={date}

Filtrar por:

  • Usuário impersonador (quem realizou a impersonação)
  • Usuário alvo (quem foi impersonado)
  • Intervalo de datas
  • Duração

Melhores Práticas

  1. Minimizar Duração --- Impersonar apenas pelo tempo necessário para resolver o problema
  2. Documentar Propósito --- Anote por que a impersonação foi necessária no registro de atividades do cliente
  3. Informar Clientes --- Informe os clientes que você pode precisar ver sua conta (política de privacidade)
  4. Verificar Identidade --- Confirme a identidade do usuário antes de impersonar via sua conta
  5. Revisar Registros --- Audite regularmente os registros de impersonação em busca de padrões incomuns
  6. Limitar Permissões --- Conceda can_impersonate apenas à equipe de suporte que precisa
  7. Treinamento --- Assegure-se de que a equipe entenda a responsabilidade e as implicações de auditoria

Considerações de Segurança

  • Acesso Completo --- A impersonação concede acesso completo à conta do usuário alvo
  • Nenhuma Senha Necessária --- A impersonação contorna a autenticação (apenas baseada em permissões)
  • Ações Registradas --- Todas as ações durante a impersonação são atribuídas ao usuário alvo nos registros da aplicação (mas os registros de auditoria mostram o verdadeiro ator)
  • Isolamento de Sessão --- A impersonação cria uma nova sessão; não afeta as sessões ativas do usuário alvo
  • Limites de Tempo --- Sessões de impersonação devem ter limite de tempo (configurável)
  • Contorno de MFA --- A impersonação contorna os requisitos de 2FA (usa a autenticação do impersonador)

Restrições

  • Não é possível Impersonar Administradores --- Dependendo da configuração, pode não ser possível impersonar outros administradores
  • Mesmas Permissões --- Você obtém as permissões do usuário alvo, não a união das permissões de ambos os usuários
  • Limites de Sessão --- Apenas uma sessão de impersonação por membro da equipe por vez
  • Requisitos de Auditoria --- Não é possível desativar ou ocultar o registro de impersonação

Solução de Problemas de Problemas Comuns

Problema: O botão "Login como Usuário" não aparece

  • Solução: Verifique se você tem a permissão can_impersonate ou admin
  • Solução: Confirme se o contato tem uma conta de usuário vinculada

Problema: A impersonação falha com erro de permissão

  • Solução: Verifique se o usuário alvo é um administrador (pode estar restrito)
  • Solução: Verifique se sua permissão de impersonação está ativa

Problema: Não é possível parar a impersonação

  • Solução: Use o endpoint da API para parar a impersonação: POST /auth/stop_impersonation
  • Solução: Limpe os cookies do navegador e faça login novamente com suas credenciais

Problema: Ações não estão sendo registradas corretamente

  • Solução: Verifique se a sessão de impersonação está ativa (verifique o banner)
  • Solução: Revise os registros de auditoria - as ações são registradas com ambos os IDs de usuário