A autenticação de usuários finais é importante para muitos motivos corporativos. Quando é oferecido o suporte conversacional, os usuários podem tentar continuar uma mesma conversa entre diferentes dispositivos e canais. Ao autenticar os usuários finais, você pode garantir que todos os pontos de contato sejam associados ao usuário final correto. Isso pode melhorar a qualidade do suporte oferecido pelos agentes e aumentar a segurança de informações sensíveis que podem surgir enquanto os agentes ajudam os usuários finais.
Sobre a autenticação de usuário final para mensagens
- Aumentar a confiança de que os usuários finais com quem os agentes estão falando são quem alegam ser.
- Possibilitar a identificação de um usuário único em diferentes canais se o widget é inserido em vários domínios ou vinculado a serviços externos, como a Shopify.
- Possibilitar a identificação de um usuário único em diferentes dispositivos e navegadores.
Terminologia para a autenticação em mensagens
- JWT: a Zendesk usa tokens da web JSON (JWTs) para a autenticação de usuários finais em mensagens. Esses tokens contêm detalhes que confirmam a identidade de um usuário final. Para obter mais informações sobre JWT, consulte jwt.io.
- Chave de assinatura: uma chave de assinatura é criada por um administrador do Zendesk na Central de administração e compartilhada com um desenvolvedor da equipe, que a utiliza para assinar o JWT quando necessário.
- ID externo: uma cadeia de caracteres alfanumérica, como um nome de usuário ou ID de um sistema externo, única para cada usuário. Essa é a identificação principal para autenticação de mensagens, mesmo quando um endereço de e-mail é incluído no JWT.
- Nome de usuário: (opcional) o nome do usuário final associado ao ID externo ou endereço de e-mail. Se você inclui o nome do usuário no JWT, ele aparece no Espaço de trabalho do agente. Essa informação pode ajudar os agentes nas comunicações com os usuários finais.
- E-mail: (opcional) o endereço de e-mail exclusivo associado a um usuário final.
Visão geral da implementação de autenticação em mensagens para usuários finais
- O processo de autenticação em mensagens começa com um administrador gerando uma chave de assinatura e fornecendo-a a um desenvolvedor. Em seguida, o desenvolvedor usa a chave de assinatura para implementar um serviço de back-end que pode criar JWTs assinados para os usuários conforme solicitado.
- Quando solicitado, o serviço de back-end cria e retorna JWTs assinados para seu website ou aplicativo móvel. Os JWTs criados por esse serviço precisam incluir um ID externo exclusivo e, opcionalmente, um endereço de e-mail para identificar o usuário final.
- Sempre que o usuário se conecta, seu site ou aplicativo precisa chamar uma API de acesso equivalente disponível para SDKs para dispositivos móveis e web widget, no momento em que o JWT é passado para o Zendesk verificar a identidade declarada pelo usuário.
Requisitos para a autenticação de usuários finais para mensagens
- O Espaço de trabalho do agente do Zendesk está ativado.
- Você está usando canais de mensagens do SDK para dispositivos móveis ou web widget.
- Você associa identidades de e-mail a usuários finais.
- Se desejar que usuários autenticados tenham identidades de e-mail verificadas, os JWTs que você emite aos usuários finais devem conter as declarações
email
eemail_verified: true
.
A experiência do agente quando usuários finais são autenticados em mensagens
Os agentes veem um ícone verde de verificado ao lado do nome do visitante e o ID externo do usuário final fica visível perto do perfil do usuário quando ele é autenticado.
Além disso, cada respostas publicada por um usuário final depois de autenticado tem o ícone de verificado.
Usuários finais autenticados podem ter participação síncrona em uma conversa em diferentes dispositivos. Para usuários finais não autenticados, registros de usuário e conversas separados são criados para cada dispositivo utilizado. Se um usuário final faz a autenticação no meio da conversa, toda ela é fundida automaticamente, tanto antes quanto depois da autenticação, para fornecer continuidade para o agente e o usuário final.
Se você está usando identidades de e-mail, o mapeamento de usuários finais para registros de usuário varia com base nas configurações de identidades de e-mail. Na maioria das configurações, impostores aparecem como registros de usuário separados e não têm o ícone verde de verificado ao lado do nome porque não podem ser autenticados com êxito. Se você permite que usuários não autenticados reivindiquem endereços de e-mail verificados, as identidades de e-mail são associadas ao primeiro usuário que reivindica o e-mail. Se dois usuários reivindicam o mesmo endereço, a identidade de e-mail é anexada ao registro de usuário do usuário final que é capaz de autenticar e verificar o endereço de e-mail.
No caso de um conflito, as identidades de e-mail verificadas se sobrepõem às identidades de e-mail não verificadas. Por exemplo, se um usuário não autenticado fornece um endereço de e-mail que já está associado a uma identidade verificada, o Zendesk cria uma nova sessão não autenticada e um registro de usuário sem uma identidade de e-mail para o usuário não autenticado que está tentando se passar por um usuário verificado. De modo semelhante, se um usuário não autenticado fornece um endereço de e-mail, mas não consegue verificá-lo e, posteriormente, outro usuário fornece esse endereço de e-mail e é capaz de verificá-lo e entrar com o JWT, a identidade de e-mail será anexada ao usuário autenticado e removida do registro do usuário não autenticado.
Os agentes têm a capacidade de fundir registros de usuário duplicados e adicionar manualmente uma identidade de e-mail aos registros de usuário. Recomendamos treinar os agentes para que façam verificações de identidade com os usuários finais antes de realizarem qualquer uma dessas ações.
A experiência do usuário final com a autenticação para mensagens
Depois que você implementa a autenticação de usuários finais para mensagens, os usuários finais não devem perceber muitas diferenças. Depois da autenticação e da verificação da identidade pelo Zendesk, os bots de mensagens não solicitam o nome nem o endereço de e-mail dos usuários finais como parte da resposta padrão de mensagens.
As conversas de usuários finais autenticados são sincronizadas nos dispositivos quando o usuário final é autenticado. Registros de usuário e conversas separados são criados para usuários finais não autenticados. Se um usuário final é autenticado no meio de uma conversa, a conversa anônima que foi criada antes que ele se conectasse é fundida automaticamente com a conversa autenticada para proporcionar continuidade.
Criação e compartilhamento de uma chave de assinatura
As chaves de assinatura são usadas por desenvolvedores para criar JWTs para usuários finais. É necessário ser um administrador para criar uma chave de assinatura. Você pode criar, no máximo, 10 chaves. Se você tentar criar uma nova chave após atingir o limite de 10, será solicitado que apague as chaves não utilizadas.
- Na Central de administração, clique em Conta na barra lateral e selecione Segurança > Autenticação de usuário final.
- Clique na aba Mensagens e em Criar chave.
Se você está criando sua primeira chave, Criar chave aparece no final da página. Do contrário, a opção aparece no canto direito superior.
- Insira um Nome para a chave e clique em Avançar.
- Quando solicitado, clique em Copiar para copiar o segredo compartilhado e clique em Ocultar chave permanentemente.
A chave é salva e um ID é atribuído automaticamente. Você pode encontrar o ID de uma chave na lista de chaves na aba Mensagens da página Autenticação de usuário final.
- De maneira confidencial, envie para o desenvolvedor o ID da chave e o segredo compartilhado que você copiou.
Autenticação de usuários finais com somente um ID externo
-
external_id: (obrigatório) é a cadeia de caracteres alfanumérica exclusiva que pode ser usada para identificar cada usuário. Em geral, esses IDs são puxados de sistemas externos. Um ID não pode ter mais de 255 caracteres.
O Zendesk usa
external_id
como o identificador principal para usuários que fazem a autenticação em mensagens. Ao autenticar um usuário com um JWT válido, o Zendesk primeiro resolve um usuário existente com oexternal_id
. Se não é encontrada uma correspondência paraexternal_id
, os usuários são resolvidos usando o endereço de e-mail fornecido. Consulte Emissão de JWTs com endereços de e-mail. -
scope: (obrigatório) o escopo de acesso do chamador. O único valor válido é
user
. - name: (opcional) o nome do usuário. Incluir o nome na carga do JWT permite que o Zendesk exiba o nome do usuário no Espaço de trabalho do agente e ajuda os agentes a fornecerem um suporte mais personalizado.
{
"external_id": "12345678",
"scope": "user",
"name": "Jane Soap"
}
Incorporação de identidades de e-mail na autenticação de usuário final
- Os usuários autenticados têm a autenticação feita por JWTs assinados.
O uso de JWTs proporciona uma abordagem confiável porque o conteúdo de um JWT assinado não pode ser adulterado por usuários finais. Se você se preocupa com ataques de falsidade ideológica, deve restringir as identidades de e-mail para usuários finais autenticados. Essa é a opção mais segura e a abordagem padrão para novas contas do Zendesk.
- Os usuários não autenticados são usuários finais que fornecem um endereço de e-mail em resposta a uma solicitação de um bot do Zendesk.
Permitir o uso de identidades de e-mail para usuários não autenticados pode deixar você vulnerável a pessoas que fingem ser outros usuários fornecendo um endereço de e-mail que não é delas.
Configuração de identidades de e-mail
Em novas contas do Zendesk, as identidades de e-mail estão ativadas e configuradas para usar somente endereços de e-mail verificados. Essa é a opção mais segura. Contas mais antigas são configuradas para usar endereços de e-mail verificados e não verificados. Antes de adicionar endereços de e-mail aos JWTs, você deve rever as opções e atualizar as configurações conforme necessário.
- Na Central de administração, clique em Canais na barra lateral e selecione Mensagens e redes sociais > Mensagens.
- Clique em Gerenciar configurações.
- Clique em Identidades de e-mail e selecione uma das seguintes opções:
-
Usar apenas e-mails verificados: as identidades de e-mail são criadas somente para usuários que estejam autenticados e tenham um endereço de e-mail verificado incluído com o JWT emitido. As agentes ainda podem adicionar manualmente uma identidade de e-mail a um registro de usuário.
Com essa opção, os agentes veem o endereço de e-mail fornecido pelos usuários finais não autenticados no histórico do chat, mas não veem uma identidade de e-mail anexada ao usuário no cartão de informações fundamentais. Se um agente precisa fazer o acompanhamento com um usuário não autenticado por e-mail, precisa adicionar manualmente a identidade de e-mail ao registro do usuário. Se o endereço de e-mail do usuário não autenticado já existe em um registro de usuário diferente, o agente tem a opção de fundir os dois registros de usuário.
Antes de adicionar manualmente um identidade de e-mail ou fundir dois registros de usuário, recomendamos que os agentes façam uma verificação de identidade para evitar ataques de engenharia social.
-
Usar e-mails verificados e não verificados: as identidades de e-mail são criadas para usuários que estão autenticados e têm um endereço de e-mail verificado no JWT e para usuários não autenticados que fornecem um endereço de e-mail nos fluxos do bot. Com essa opção, é mais provável que os agentes encontrem o endereço de e-mail do usuário final no cartão de informações fundamentais e as identidades de e-mail para endereços de e-mail não verificados são marcadas claramente como não verificadas no Espaço de trabalho do agente. Quando necessário, os agentes podem pedir que os usuários finais façam a autenticação, caso precisem enviar e-mails de acompanhamento.
No caso de um conflito, as identidades de e-mail verificadas se sobrepõem às identidades de e-mail não verificadas.
-
Usar apenas e-mails verificados: as identidades de e-mail são criadas somente para usuários que estejam autenticados e tenham um endereço de e-mail verificado incluído com o JWT emitido. As agentes ainda podem adicionar manualmente uma identidade de e-mail a um registro de usuário.
- (Opcional, mas não recomendado) Se você quer que qualquer usuário, mesmo os não autenticados, sejam capazes de reivindicar endereços de e-mail verificados, selecione O usuário não autenticado pode reivindicar e-mails verificados.
Quando você seleciona essa opção, o estado de verificação das identidades de e-mail coletadas dos canais de mensagens não é mais confiável, pois um impostor pode surgir após a autenticação do usuário e assumir a posse do status de e-mail em uma interação por mensagens posterior. Isso significa que os ataques de falsidade ideológica têm mais probabilidade de sucesso e os agentes têm meios limitados de saber se o usuário final é quem diz ser. No entanto, as identidades de e-mail verificadas ainda se sobrepõem às identidades de e-mail não verificadas, e a identidade de e-mail é removida do registro de usuário do impostor.
- Clique em Salvar configurações.
Emissão de JWTs com endereços de e-mail
-
external_id: (obrigatório) é a cadeia de caracteres alfanumérica exclusiva que pode ser usada para identificar cada usuário. Em geral, esses IDs são puxados de sistemas externos. Um ID não pode ter mais de 255 caracteres.
O Zendesk usa
external_id
como o identificador principal para usuários que fazem a autenticação em mensagens. Ao autenticar um usuário com um JWT válido, o Zendesk primeiro resolve um usuário existente com oexternal_id
. Se não é encontrada uma correspondência paraexternal_id
, os usuários são resolvidos usando o endereço de e-mail fornecido. Consulte Emissão de JWTs com endereços de e-mail. -
scope: (obrigatório) o escopo de acesso do chamador. O único valor válido é
user
. - name: (opcional) o nome do usuário. Incluir o nome na carga do JWT permite que o Zendesk exiba o nome do usuário no Espaço de trabalho do agente e ajuda os agentes a fornecerem um suporte mais personalizado.
-
email: (obrigatório) o endereço de e-mail do usuário sendo conectado. Precisa ser exclusivo do usuário.
Defina o endereço de e-mail como o endereço de e-mail principal do usuário no Espaço de trabalho do agente. Os JWTs não têm suporte para a inclusão de endereços de e-mail secundários.
-
email_verified: (opcional) se o usuário final em questão comprovou ou não que o endereço de e-mail é dele. Se você quer que usuários finais tenham identidades de e-mail verificadas, os JWTs emitidos devem conter as declarações
email
e"email_verified": true
.
{
"external_id": "12345678",
"email": "janes@soap.com",
"email_verified": true,
"name": "Jane Soap",
"scope": "user"
}
Resolução de conflitos entre IDs externos e e-mails nos JWTs
O Zendesk usa o ID externo como o identificador principal, com os endereços de e-mail sendo usados somente se nenhuma correspondência é encontrada para o ID externo. Se, no entanto, o endereço de e-mail apresentado em um JWT já está associado a um ID externo diferente, o Zendesk rejeita o JWT e a tentativa de acesso do usuário final falha. Quando isso acontece, a conversa começa com o usuário em um estado não autenticado.
- Atualize o JWT para usar outro valor de
external_id
ou endereço deemail
.OU
- Apague o usuário com o
external_id
conflitante, liberando-o para ser usado por um usuário final diferente. Consulte Exclusão de usuário na API do Sunshine Conversations.