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 o atendente acessa.
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.
Usando o recurso de SSO para o Painel do Atendente, deverá haver um link em sua intranet ou computador do usuário que irá gerar o token e redirecionar o atendente para a área designada.
Para criar a configuração, realize os passos abaixo:
- Pelo Painel Administrativo, acesse o menu Gestão > Configurações da Conta > Single Sign-On;
- No campo Tipo de Autenticação defina o valor como Painel do Atendente;
- 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. - 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 atendente 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 atendente.
{
'iss': 'seu-site-dominio.com',
'exp': 1552503274,
'email': '[email protected]',
'account': 'sua-conta'
}
Propriedades:
- iss: domínio que criou o token (obrigatório)
- exp: epoch de expiração do token (não obrigatório)
- email: Endereço de email do atendente(obrigatório)
- account: Sua conta no TomTicket
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 Atendente no seguinte endereço:
https://painel.tomticket.com/login.html?jwt=TOKEN-JWT