# 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 campologin
.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.