SSO - Passo 1: Ligar o usuário do seu sistema ao usuário da Engage

Modificado em Qui, 29 Out na (o) 4:32 PM

O SSO leva o usuário do seu sistema para o portal da Engage sem pedir senha. O primeiro passo é registrar, para cada usuário, o identificador que ele já tem no seu sistema — o "De/Para". Sem esse vínculo, a Engage não sabe de quem é o acesso.

Neste artigo

  1. Antes de começar
  2. Registrar o identificador
  3. Cuidados
  4. Problemas comuns

Antes de começar

Registrar o identificador

1Envie o De/Para

POST https://sandbox.engage.bz/api/v1/{customer_id}/users/identifiers?customerToken={customer_token}
Authorization: Bearer {access_token}
Content-Type: application/json

[
  {
    "user_login": "joao.silva",
    "client_application_id": "{client_id}",
    "identifier": "a3f1c2d4-55aa-4b7c-9e11-0d2b3c4d5e6f"
  }
]

No Postman: pasta 04 - SSO e identificadores, request De/Para — criar/atualizar identificador.

Corpo do request De/Para — criar/atualizar identificador no Postman, com valores fictícios

CampoObrigatórioExemploObservação
user_loginSimjoao.silvaLogin do usuário que já existe na Engage
client_application_idSim{client_id}O client_id da sua aplicação. Precisa ser o mesmo usado no Passo 2
identifierSima3f1c2d4-55aa-4b7c-9e11-0d2b3c4d5e6fO identificador do usuário no seu sistema. Precisa ser não adivinhável — veja o aviso abaixo

O corpo é sempre uma lista, mesmo para um usuário só. O customerToken vai na URL em toda chamada.

Cuidado

O identifier é o que o Passo 2 troca por uma chave de entrada no portal. Quem descobrir o identificador de um usuário pode tentar entrar como ele. Use um GUID v4 ou um hash aleatório de 128 bits ou mais, gerado por um gerador criptográfico. Nunca use ID sequencial, auto incremento, matrícula, CPF, e-mail, login ou qualquer valor derivado deles por uma regra que alguém possa reproduzir.

2Leia o resultado de cada usuário

A chamada responde HTTP 200 mesmo quando algum usuário é recusado. Cada item de results traz o seu próprio success, e o motivo da recusa vem em detail_messages[].event_code. A sua rotina precisa ler esses campos, não só o código HTTP.

Para conferir o que ficou gravado, use o request De/Para — conferir identificador gravado.

Importante

O erro mais comum desta integração é gravar o De/Para com um client_application_id e depois chamar o Passo 2 com outro client_id. Nesse caso, o SSO responde invalid_credentials mesmo com o identificador certo.

Cuidados

  • Reenviar substitui. A chave do vínculo é o par user_login + client_application_id. Reenviar o par com outro identifier troca o anterior, que deixa de funcionar.
  • Base antiga com identificadores sequenciais? Gere um valor novo e aleatório por usuário e reenvie o De/Para. O identificador antigo deixa de valer.
  • O identificador é único por aplicação. Se ele já pertence a outro usuário, o registro é recusado.
  • Usuário inativo não entra. O vínculo é gravado, mas o Passo 2 recusa o acesso.
  • Logins internos da plataforma são recusados, como o do próprio usuário de serviço. Faça o De/Para só de usuários finais.

Problemas comuns

O que apareceCausa provávelO que fazer
login_is_requireduser_login vazioPreencha o login
login_is_invalidO login não existe na instânciaCrie o usuário antes e reenvie
clientid_is_requiredclient_application_id vazioPreencha com o client_id da aplicação
clientid_does_not_existO client_id não está cadastrado nesta instânciaConfira o client_id do ambiente: homologação e produção têm cadastros separados
identificador_obrigatorioidentifier vazioPreencha o identificador
identificador_ja_existenteO identificador já pertence a outro usuário nesta aplicaçãoGaranta que o identificador é único na origem
registro_duplicadoO mesmo par user_login + client_application_id apareceu duas vezes no envioRemova a repetição
edicao_identificador_usuario_interno_sistemaTentativa de mapear um login interno da plataformaFaça o De/Para só de usuários finais
HTTP 400 unable_to_import_an_empty_collectionLista vaziaEnvie ao menos um item
HTTP 401Token expirado, ausente ou sem a permissão Gerenciar usuáriosGere um novo token e confira a permissão

Próximo passo

Troque o identificador por uma chave de entrada — veja SSO — Passo 2: obter a chave de entrada (custom_sso).

Precisa de ajuda?

Escreva para meajuda@engage.bz informando o customer_id, o ambiente, o client_id e a resposta completa da chamada. Nunca envie senhas, tokens, identificadores de usuários ou o client_secret por e-mail.

Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos
A verificação do CAPTCHA é obrigatória.

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo