SSO - Passo 2: obter a chave de entrada (custom_sso)

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

Com o De/Para gravado, o seu sistema troca o identificador do usuário por uma chave de entrada (key). É essa chave que leva o usuário para dentro do portal já autenticado, no Passo 3.

Neste artigo

  1. Antes de começar
  2. Obter a chave
  3. Cuidados
  4. Problemas comuns

Antes de começar

Obter a chave

1Chame o POST /auth com custom_sso

POST https://sandbox.engage.bz/api/v1/auth
Content-Type: application/x-www-form-urlencoded

grant_type=custom_sso
&customer_id={customer_id}
&customer_token={customer_token}
&client_id={client_id}
&client_secret={client_secret}
&user_identifier={identificador_do_usuario}

Esta chamada não leva Authorization: a autenticação acontece nela. No Postman: pasta 04 - SSO e identificadores, request SSO — obter a key (custom_sso). O script do request guarda a chave na variável ssoKey e não a imprime no console, de propósito.

Corpo do request SSO — obter a key (custom_sso) no Postman, com os campos preenchidos por variáveis e um identificador fictício

CampoObrigatórioExemploObservação
grant_typeSimcustom_ssoValor fixo
customer_idSimminhaempresaA sua instância
customer_tokenSim{customer_token}Precisa ser da mesma instância
client_idSim{client_id}O mesmo usado no De/Para do Passo 1
client_secretSim{client_secret}É o segredo que protege este fluxo. Nunca coloque em código que roda no navegador
user_identifierSima3f1c2d4-55aa-4b7c-9e11-0d2b3c4d5e6fO identificador gravado no Passo 1
deviceNãocomputercomputer (padrão), mobile ou app. Define o tempo de sessão aplicado
language_idNãopt-BRpt-BR, en-US, es-ES ou fr-FR
login_originNãossosso, administrator, game ou saml. Vai para o registro de acesso
ip_loginNão*200.150.10.5IP real do usuário. *Obrigatório se a instância tiver lista de IPs permitidos
privacy_policy_idNão12Só se a instância tiver política de privacidade cadastrada
app_versionNão3.14.0Versão do aplicativo, quando a chamada parte dele

2Pegue a key da resposta

A resposta é a mesma de um login comum, com um campo a mais: a key. Valores fictícios:

{
  "access_token": "eyJhbGciOi...",
  "token_type": "bearer",
  "expires_in": 86400,
  "refresh_token": "0f3c9d1a...",
  "user_id": "1234",
  "key": "00000000-0000-4000-8000-000000000000",
  "is_blocked": false,
  "is_admin": false
}

A key é usada no Passo 3. O tempo de vida da sessão vem em expires_in, em segundos: ele é definido no cadastro da aplicação e não é fixo.

Cuidado

Trate a key como uma senha. Ela dá acesso à conta do usuário. Não grave em log, não mostre em console e não envie por e-mail: gere, use e descarte.

Cuidados

  • O usuário final não precisa ser administrador nem ter senha na Engage. Quem autentica é o seu sistema. Quem precisa de permissão é o usuário de serviço do Passo 1.
  • O que continua sendo validado: usuário ativo e não bloqueado, licença da instância, janela de horário de acesso e lista de IPs permitidos.
  • Este fluxo não passa pelo segundo fator (2FA) da instância. Se a sua política exige MFA, aplique no seu sistema antes de chamar o custom_sso.
  • Não repita a chamada "por garantia". Cada chamada bem-sucedida abre uma sessão nova e derruba a anterior do mesmo usuário, na mesma aplicação e no mesmo device.
  • O customer_token não é segredo. Ele identifica a instância e pode ser obtido sem autenticação. O que protege o fluxo é o client_secret junto com um identificador não adivinhável.
  • Não faça SSO com o usuário de serviço. Para logins internos, a resposta vem sem a key.

Problemas comuns

O que apareceCausa provávelO que fazer
invalid_customer_idcustomer_id errado ou instância inativaConfira o valor
invalid_parametersParâmetro faltando ou inválido: customer_token de outra instância, user_identifier vazio ou language_id fora da listaRevise os campos obrigatórios
invalid_credentialsO identificador não está no De/Para deste client_id, ou o usuário está inativoRefaça o Passo 1 com o mesmo client_id e confira se o usuário está ativo
invalid_grantgrant_type diferente de custom_ssoCorrija o grant_type
user_is_blockedUsuário bloqueado na EngageDesbloqueie pela área administrativa
license_expiredLicença da instância vencidaFale com o seu contato comercial
schedule_lockAcesso fora da janela de horário da instânciaTente dentro do horário permitido
your_ip_is_not_allowedIP ausente ou fora da lista de IPs permitidosEnvie ip_login com o IP real e cadastre-o na lista
HTTP 200 sem o campo keyO identificador aponta para um usuário internoFaça o De/Para só de usuários finais

Próximo passo

Leve o usuário ao portal com a key — veja SSO — Passo 3: levar o usuário ao portal.

Precisa de ajuda?

Escreva para meajuda@engage.bz informando o customer_id, o ambiente, o client_id e o código de erro. Nunca envie senhas, tokens, a key 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