# Autenticação integrada com terceiro (Third party authentication)

Na plataforma uMov.me, o processo de autenticação pode ser terceirizado através de processo de integração pré-definido, chamado de autenticação third party. Através desse processo, é possível integrar a autenticação de um usuário na plataforma, tanto para usuários de retaguarda (Web), quanto usuários mobile.

A ativação e configuração dessa integração deve ser realizada em conjunto com time de atendimento da uMov.me. Para esse setup, é necessária a disponibilização de um endpoint público REST, no formato XML, para que autenticação da plataforma funcione como um proxy para esse serviço terceiro, delegando a responsabilidade de validação da autenticação de um usuário no ambiente a esse serviço.

# Protocolo de comunicação

A seguir serão descritos os protocolos, formatos e fluxos da autenticação third party

# Estrutura do request

  • HTTP POST
  • Deve ser HTTPS - tráfego de dados sensíveis (LGPD)
  • Content-Type: application/xml
  • Accept: application/xml
  • Timeout de resposta de 10 segundos

O corpo (body) do request enviado para o endpoint de autenticação terceiro possui a seguinte estrutura:

<authenticationRequest>
    <login>user-login</login>
    <password>user-passwd</password>
    <domain>environment-name</domain>
    <module>module-that-user-is-trying-to-authenticate</module>
</authenticationRequest>

# Estrutura do response

O retorno (response) da requisição de autenticação pode retornar dois cenários:

# HTTP 200 - Usuário autenticado com sucesso

<authenticationResponse>
    <statusCode>200</statusCode>
    <credentials>
        <login>jamesbond</login><!-- required -->
        <name>Agent James Bond 007</name><!-- required -->
        <alternativeIdentifier>james-bond-id</alternativeIdentifier>
        <role>D</role>
    </credentials>
</authenticationResponse>

Ao receber um retorno de autenticação realizada com sucesso, deve ser retornada uma estrutura de credentials, contendo minimamente os campos login e name.
Os demais campos são opcionais e podem ser utilizados em um processo de cadastramento automático dos usuários na primeira autenticação, caso não existam.
O processo de autenticação irá verificar a existência do cadastro do agente que está sendo autenticado através do login que foi retornado dentro do objeto credentials. Caso o agente já exista, os dados de perfil de acesso desse usuário serão carregados conforme o cadastro realizado previamente na plataforma e o processo de autenticação com o terceiro se encerra.

Caso o cadastro do agente não tenha sido previamente realizado, o processo de autenticação irá criar um usuário na plataforma, utilizando os campos informados no objeto credentials:

  • login - Será utilizado como login no cadastro do agente.
  • name - Será utilizado como nome no cadastro do agente.
  • alternativeIdentifier - Será utilizado como identificador alternativo no cadastro do agente. Caso não seja informado, será utilizado o valor do campo login.
  • role - Identificador alternativo do perfil de acesso que será atribuído ao agente.

# HTTP 401 - Autenticação inválida

<authenticationResponse>
    <statusCode>401</statusCode>
    <message>message explaining why auth failed (should be generic)</message>
</authenticationResponse>

Ao receber esse retorno do endpoint de autenticação third party, o login do agente não será permitido no módulo em questão.

Última atualização: 7/30/2021, 1:26:54 PM