Documentação para Realização de SSO na Plataforma

Modificado em Qui, 25 Jul, 2024 na (o) 7:26 PM

Pré-requisito (IMPORTANTE)

Para utilização dos serviços da API da Engage é necessário ter em mãos os parâmetros abaixo:

  • username;
  • password;
  • customer_id;
  • customer_token;
  • client_id;
  • client_secret.

    Para gerar estes parâmetros, siga os procedimentos descritos neste tutorial. Caso tenha alguma dúvida ou enfrente qualquer problema para obtê-los, entre em contato com o Suporte Técnico da Engage através do endereço meajuda@engage.bz 

    Atenção: É extremamente recomendado que os testes e desenvolvimento da integração sejam feitos utilizando nosso ambiente de HOMOLOGAÇÃO. Aponte a integração para o ambiente produtivo da Engage somente quando ela estiver concluída, testada e homologada.


IMPORTANTE: Por fim, para que seja possível fazer o De-Para dos usuários na Engage com o sistema de terceiro, a partir das instruções disponíveis neste tutorial, é neccessário que o usuário esteja previamente cadastrado no portal Engage ou que o cliente desenvolva em seu processo de integração uma rotina para, primeiramente, criar o usuário na Engage e depois sim fazer o De-Para com os usuários de seu sistema. A documentação para criar novos usuários na Engage encontram-se dissponíveis neste link.



 1. Ambiente de Homologação

Para desenvolvimento e testes de integração com a plataforma Engage, é disponibilizada abaixo a URL do ambiente de homologação:

 

2. Ambiente de Produção

 

3. Autenticação

Para obter acesso aos dados disponibilizados pelos serviços da API é necessário fazer a autenticação utilizando o access_token enviado. Como o serviço utiliza o tipo de autenticação HTTP Bearer, o token de acesso deverá ser inserido na propriedade Authorization do cabeçalho HTTP, conforme exemplo abaixo:

 

Authorization Bearer {access_token}

 

OBS.: A palavra Bearer deve ser adicionada antes do token e separada por um espaço.

 

4. POST /auth

Este método deve ser utilizado nos seguintes cenários:

  1. Nos casos em que o login é efetuado no próprio site
  2. Para executar métodos que necessitam de autenticação.

Para acessar os métodos que necessitam de autenticação é preciso enviar o parâmetro access_token como argumento para as requisições, ou guardar o cookie gerado a partir deste método e utilizá-lo nas requisições seguintes.

OBS.: O access_token tem um tempo de vida de 25 minutos. Transcorrido este tempo, ele expira e o acesso aos endpoints é negado – devolvendo o status HTTP 401- Unauthorized – sendo necessário renová-lo a partir de uma nova chamada a este endpoint.

 

Abaixo, seguem descritos os parâmetros que devem ser enviados na requisição.

 

Parâmetro

Tipo

Obrigatório

Valor Padrão

Descrição

grant_type

String

Sim

password

Como a autenticação se dará por usuário e senha, o grant_type a chamada deverá enviar o valor password para este parâmetro.

username

String

Sim

-

Login do usuário.

password

String

Sim

-

Senha do respectivo usuário.

client_id

String

Sim

-

ID da aplicação que está se integrando ao Engage. Esta informação será fornecida pela equipe da Engage.

client_secret

String

Sim

-

Senha da aplicação que está se integrando ao Engage. Esta informação será fornecida pela equipe da Engage.

customer_id

String

Sim

-

ID da instância que representa o ambiente do cliente. Esta informação será fornecida pela equipe da Engage.

 

 

OBS: O Content-Type dos parâmetros acima deve ser: application/x-www-form-urlencoded, conforme exemplo abaixo feito através do software Postman:



 

Retornos: 

  • Em caso de sucesso, o retorno será semelhante ao JSON abaixo:

{

    "access_token": "dskdmkdnfi3948339w",

    "token_type": "bearer",

    "expires_in": 1499,

    "client_id": "my_client_id",

     "customer_id": "customer_id",

    "user_id": "1",

    ".issued": "Fri, 11 Aug 2018 20:06:53 GMT",

    ".expires": "Fri, 11 Aug 2018 20:31:53 GMT"

}

 

  • Em caso de falha, o retorno será semelhante ao JSON abaixo:

{

    "error": "error_code",

    "error_description": "This is an error."

}

 

5. POST/{customerId}/users/identifiers?customerToken={customerToken}

Para viabilizar o SSO na plataforma Engage com o ID interno de um sistema de terceiros, é necessário criar uma espécie de “De-Para” dentro do Engage. Este serviço permite que esta tarefa seja realizada.

Para consumir este serviço, é necessário estar autenticado com um usuário que possua a permissão UserManagement, ou seja, durante a chamada a este método, é obrigatório o envio do access_token no Header da requisição de algum usuário que possua esta permissão de acesso. Para maiores detalhes, consulte o capítulo Autenticação.

Abaixo, segue um exemplo de como o token de acesso deve ser enviado no Header da requisição.

Authorization Bearer {access_token}

 

Abaixo, seguem descritos os parâmetros que devem ser enviados na requisição.

  • Parâmetros de Entrada:

Parâmetro

Tipo do Parâmetro

Tipo do Dado

Obrigatório

Descrição

customerId

Path

String

Sim

Id da instância que compõe a rota do endpoint. Esta informação será fornecida pela equipe da Engage.

customerToken

Query

String

Sim

O Token que representa a instância. Este parâmetro deve ser enviado por questões de segurança, visando manter a integridade dos dados. Esta informação é fornecida pela equipe da Engage e deve ser armazenada pela aplicação terceira em local seguro.

identifiers

Body

Array

Sim

Deve ser enviado um array de objetos no corpo da requisição, conforme exemplo abaixo:

[

  {

    "user_login": "string",

    "client_application_id": "string",

    "identifier": "string"

  }

]

OBS: Content-Type deste parâmetro deve ser application/json

 

Onde:  

Parâmetro

Tipo de Dado

Obrigatório

Único

Descrição

user_login

String

Sim

Não

Login do usuário no Engage (É a mesma informação que o usuário utilizaria para logar no Engage caso tivesse informando seu usuário e senha para autenticar com as credenciais do Engage)

client_application_id

String

Sim

Sim

client_id da plataforma externa que está se integrando no engage, ou seja, o mesmo client_id utilizado para obter o access_token de super usuário para consumir este serviço.

identifier

String

Sim

Sim

Identificador do usuário na plataforma externa, podendo ser o UserId, um Guid, ou qualquer outra informação. Vale ressaltar que esta informação é única, ou seja, não é possível ter o mesmo identificador para dois usuários diferentes.

 

 

 

6. POST /auth – grant_type=custom_sso

Este grant_type é uma forma nativa do Engage de permitir o SSO do usuário utilizando o identificador de sistemas de terceiros podendo ser um UserId, um Guid, etc...

Abaixo, seguem descritos os parâmetros que devem ser enviados na requisição.

 

Parâmetro

Tipo

Obrigatório

Valor Padrão

Descrição

grant_type

String

Sim

custom_sso

Como a autenticação se dará através identificador único – podendo ser ID auto incremento, Global Unique Identifiers [GUID], etc - de aplicações externas (que deverá estar previamente cadastrados na Plataforma Engage), este grant type deverá ser enviado hardcoded na requisição.

customer_id

String

Sim


ID da instância que representa o ambiente do cliente. Esta informação será fornecida pela equipe da Engage.


customer_token

String

Sim

-

Token que representa o ambiente do cliente que está tentando ser acessado. Esta informação será fornecida pela equipe da Engage e deverá ser armazenada pela aplicação consumidora em local seguro.

client_id

String

Sim

-

ID da aplicação que está se integrando ao Engage. Esta informação será fornecida pela equipe da Engage.

client_secret

String

Sim

-

Senha da aplicação que está se integrando ao Engage. Esta informação será fornecida pela equipe da Engage e deverá ser armazenada pela aplicação consumidora em local seguro.

user_identifier

String

Sim

-

Identificador único do usuário que é utilizado na aplicação de origem para identificar o usuário. Pode ser um ID auto incremento, um GUID, um hash ou qualquer outra informação que permita a identificação do respectivo usuário.

 

OBS: O Content-Type dos parâmetros acima deve ser: application/x-www-form-urlencoded, conforme exemplo abaixo feito através do software Postman:

 

 

Retornos: 

  • Em caso de sucesso, o retorno será semelhante ao JSON abaixo:

{

    "access_token": "dskdmkdnfi3948339w",

    "token_type": "bearer",

    "expires_in": 1499,

    "client_id": "fluig",

     "customer_id": "customer_id",

    "user_id": "1",

    ".issued": "Fri, 11 Aug 2017 20:06:53 GMT",

    ".expires": "Fri, 11 Aug 2017 20:31:53 GMT",

    "key": "633cd237-42f4-4859-ba84-27789a39e8a1"

}

 

  • Em caso de falha, o retorno será semelhante ao JSON abaixo:

{

    "error": "error_code",

    "error_description": "This is an error."

}


 

7. Realizando o Single-Sign On na Plataforma Engage

Em posse do parâmetro key - obtido no Passo 6 - basta fazer o redicionamento de sua aplicação para uma das URL's abaixo, a depender do ambiente que você está utilizando, passando o key obtido, conforme exemplo abaixo:


No ambiente de Homologação:


No ambiente de Produção: 

 

O SSO será realizado e o acesso à plataforma Engage será liberado.

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