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>


 


Este artigo foi útil?  
Agradecemos sua avaliação.