Seja bem vindo ao Suporte do TomTicket

TomTicket ❱ GestãoConfigurações da Conta

Single Sign-On para o Chat Fixo no Rodapé

Recurso Premium  Recurso Enterprise

O recurso Single Sign-On (SSO) é um recurso que permite o acesso de áreas restritas sem necessitar realizar login diretamente na área de destino. O acesso é realizado através uma chave única, que é criada através de um serviço existente, como por exemplo, uma intranet interna que já contém o cadastro de clientes.

O TomTicket utiliza JSON Web Tokens (JWT) para realizar a autenticação.

Configurando o Single Sign-On

Antes de utilizar o recurso SSO (Single Sign-On) é necessário primeiramente definir uma chave de autenticação para validar o JWT recebido.

Para criar a configuração, realize os passos abaixo:

  1. Pelo Painel Administrativo, acesse o menu Gestão > Configurações da Conta > Single Sign-On;
  2. No campo Tipo de Autenticação defina o valor como Painel do Cliente;
  3. Em Chave Privada de Autenticação defina uma chave privada que será usada para criptografar o token JWT.
    Importante: Jamais divulgue essa chave e mantenha ela sempre em segurança.
  4. Clique no botão Salvar Modificações para adicionar a nova configuração.


Gerando o JWT

Um JWT (JSON Web Token) é um padrão aberto, que gera um token criptografado com informações do usuário. Com ele é possível identificar qual cliente irá realizar o acesso e também definir uma data limite para funcionamento desse token.

O seu servidor deve gerar o token como informado abaixo.

Header

Primeiro defina o cabeçalho da requisição. Ele contém o algoritmo de criptografia.

 {
 'alg': 'HS256',
 'typ': 'JWT'
 } 

Payload

Defina o payload da requisição. O payload contém a identificação do cliente.

 {
  'iss': 'seu-site-dominio.com',
  'exp': 1552503274,
  'name': 'Nome do Cliente',
  'email': '[email protected]',
  'userid': 'ID-CLIENTE',
  'create': true

Propriedades:

  • iss: domínio que criou o token (obrigatório)
  • exp: epoch de expiração do token (não obrigatório)
  • name: Nome do cliente (obrigatório)
  • email: Endereço de email do cliente (obrigatório se userid não definido)
  • userid: Identificador interno do cliente (obrigatório se email não definido)
  • create: Booleano indicado se o cadastro do cliente deve ser feito caso não exista

Assinatura

Após definido o Header e Payload, será gerada a assinatura que usará o Header e Payload codificados em base64 e sua Chave Privada. 

Essa informações serão concatenadas e criptografadas com um hash HMAC.

 HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  CHAVE-PRIVADA
 ) 

Criando o JWT

A chave JWT será o header codificado em base64, concatenado com o payload codificado em base64 e concatenado com a assinatura. Todas essas informações ao serem concatenadas são separadas por um ponto '.' (sem aspas), como exemplo abaixo:

JWT = base64UrlEncode(header)+"."+base64UrlEncode(payload)+"."+signature


Redirecionamento

Após gerar o token JWT ele deve ser informado na propriedade jwt no script do chat, como exemplo abaixo:

 

<script type=text/javascript>
        // <![CDATA[
        var url= '<URL DO SCRIPT - NÃO ALTERAR>'
        + '?id=<IDENTIFICADOR - NÃO ALTERAR>'
        + '&account=<IDENTIFICADOR - NÃO ALTERAR>'
        + '&jwt=TOKEN-JWT'
        ...);
        //]]>
</script>

 



Was this article helpful?
We appreciate your review.