Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice:


       

Índice
exclude.*ndice:

Objetivo:


       Realizar a integração de um Produto com o TReports e entender o fluxo da autenticação entre Produto x TReports x Provedor Integrado.

Definições Gerais:


       Para exemplificar a integração, será utilizado o projeto TReportsServerClient (https://github.com/totvs/treports-server-client)

       O TReports utiliza o Rac para gerenciamento dos usuários e permissões configurados por Tenant.

Recuperando Access Token:


       Para realizar a integração do produto com o TReports, é utilizado o Fluxo Resource Owner (password). Este fluxo necessita de um usuário e senha válidos no Tenant configurado para o TReports para que a autenticação seja realizada.

       Este usuário precisa conter a permissão de execução de relatório (ExecuteReport).

Image Modified

       POST
       Host: {Endereço do Rac}
       Content-type: application/x-www-form-urlenconded

       grant_type=password
       &username=exampleuser
       &password=1234luggage
       &client_id=xxxxxxxxxx
       &client_secret=xxxxxxxxxx

       Para mais informações: https://developer.okta.com/blog/2018/06/29/what-is-the-oauth2-password-grant

Autenticação Externa - Rac:


       O Tenant pode ser configurado para realizar a autenticação externa, onde a validação do usuário e senha serão realizadas em um endpoint do produto.

       Será realizado uma chamada no endpoint do Produto configurado no Tenant do Rac para que o usuário e senha sejam validados pelo Produto, em casso de sucesso, o Access Token é retornado para o Produto.

Executando um relatório:


       Com o Access Token gerado, ele deve ser enviado no Header Authorization em todas as requisições da Api do Reports.
       Ex. “Authorization: Bearer {access_token}”
       O fluxo de toda a execução pode ser visto abaixo:

       A seguinte chamada deve ser realizada na api do TReports:

              POST
              Authorization: Bearer {access_token}
              Host: {Endereço do TReports}/api/trep/v1/reports{UidReports}/execute
              Content-type: application/json

              ... {Consultar o Swagger para obter lista completa de parâmetros}
              UserName: Nome do Usuário que será enviado ao Provedor Integrado para aplicação de segurança.


       Esta requisição gera uma solicitação de execução do relatório, mas não o executa imediatamente. Ele será executado pelo jog do TReports. O retorno será um identificador único da requisição de execução (UidRequest)


       Para acompanhamento da execução do relatório, execute a seguinte chamada:

              GET
              Authorization: Bearer {access_token}
              Host: {Endereço do TReports}/api/trep/v1/Generateds/{uIdRequest}/info
              Content-type: application/json

              {Consultar o Swagger para obter lista completa de parâmetros}


       Nesta chamada será retornado o identificador da geração do relatório {id} e o status da execução {status} dentre outras informações. Caso o status seja finalizado, podemos realizar a chamada para obter o relatório gerado no formato desejado:

              GET
              Authorization: Bearer {access_token}
              Host: {Endereço do TReports}/api/trep/v1/Generateds/{id}/file
              Content-type: application/json

              ExportFileType=0 {Consultar o swagger para uma lista completa das opções de arquivo para download}

       Será retornado o binário do arquivo gerado no formato solicitado.

Provedor Integrado:


       O fluxo completo utilizando provedor integrado pode ser visto abaixo:

       O O provedor de dados integrado suporta os seguintes tipos de autenticação:

    Basic

      É informado o usuário e senha para acesso ao provedor de dados. Essa informação será enviada no cabeçalho da requisição como autenticação Basic


    OpenID

       O Provedor de dados integrado receberá o access_token do TReports. O token contém o usuário logado no sistema, mas para o caso do fluxo Resource Owner sem a autenticação externa configurada, o usuário do token será sempre o usuário criado para realizar o fluxo Resource Owner. Desta forma, foi criado no Header da requisição a propriedade UserName contendo o nome do usuário informado nos parâmetros da requisição do Execute Request (endPoint: /api/trep/v1/reports/{UidReport}/execute). Caso não seja informado o usuário nos parâmetros do Execute Request, o UserName conterá o usuário do Token.

Informações
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

Versão: 12.1.22 ou Superiores

Informações
iconfalse

Processo: Integração TReports

Informações
iconfalse
Informações
iconfalse

Status: Pendente

Informações
iconfalse

Data:  

Informações
iconfalse

Autores:

Erlon Cesar Lima De Freitas

Flavio Henrique Pereira Campelo

Gustavo Naves De Castro

Philippe Fernandes Lima Gonçalves

SARAH ROLAND CAMPOS LISBOA

Wesley Avelino De Carvalho