Single Sign-On para o Painel do Cliente

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 e um servidor que irá fazer o redirecionamento para o painel do cliente.

Usando o recurso de SSO para o Painel do Cliente, caso o cliente não esteja logado no painel, ele será redirecionado sempre para o servidor configurado, esse servidor deve gerar o token JWT e redirecionar para o Painel do Cliente.

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 Endereço de Autenticação defina uma página existente que será a responsável por gerar o token JWT e redirecionar o cliente para o Painel do Cliente;
  4. 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.
  5. 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.

Quando o seu cliente acessar o Painel do Cliente, ao invés de fazer login manualmente, será redirecionado para o servidor configurado. 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, o usuário deve ser redirecionado para o painel do cliente/base de conhecimento nos seguintes endereços:

  • Painel do Cliente: https://<sua-empresa>.tomticket.com/helpdesk/login?jwt=TOKEN-JWT
  • Base de Conhecimento: https://<sua-empresa>.tomticket.com/kb?login=1&jwt=TOKEN-JWT
  • URL de Atendimento Online: https://<sua-empresa>.tomticket.com/chatauth/?id=<info>&ac=<departament>&jwt=TOKEN-JWT

Was this article helpful?  
We appreciate your review.