Ir para o conteúdo principal

Portal do Cidadão - Cidadão realizar assinatura da solicitação de atendimento online

OBJETIVO

Analisar a melhor abordagem para o Cidadão realizar assinatura da solicitação de atendimento online no projeto Portal do Cidadão conforme a User Story: “Eu como vingadores, preciso realizar um estudo para o cidadão realizar assinatura da solicitação de atendimento online" presente na Sprint número 101 do time Vingadores.


JUSTIFICATIVA

Tendo em vista que o Portal do Cidadão precisa integrar a assinatura avançada do assine aqui, o qual irar levar o usuário para outra tela, fora do aplicativo. Destarte, foi pensado na criação desse estudo para garantir a melhor abordagem para essa integração garantindo a integridade dos sistemas. 


RESULTADOS ESPERADOS

Levantar casos de uso adequados para a realização da integração, mantendo a integridade e melhor experiencia para o usuário poder assinar suas solicitações.


ENVOLVIDOS:

Gustavo Felix Gomes (Dev team)

Rafael Passos dos Santos (Dev team)

Emanuel Rufino Alcantara de Lima (Dev team)

Lucas de Souza e Sousa (Dev team)

André Honório de Andrade Silva (Dev team)

Alef Carvalho (Dev team)

Euriane Nogueira Frota (Product Owner)


1 - INTRODUÇÃO

Como o portal do cidadão precisará implementar a assinatura digital do Gov.br, foi desenvolvido a assinatura avançada do assine aqui, o qual torna possível os sistemas da SETIC assinarem com o Sauron ou Gov.br, a assinatura será realizada no Portal do Cidadão quando o mesmo solicitar um serviço.


2 - FUNCIONAMENTO

Com o novo assine aqui será possível assinar com o Gov.br,  para assinar será necessário selecionar a opção "entrar com o Gov.br", ele pedirá seu usuário e senha do Gov.br e em seguida mostrará as informações do documento e do assinante.

Após carregar a tela, ele pedirá seu CPF para gerar um código de confirmação com validade de 5 minutos que será enviado para seu e-mail cadastrado no Gov.br, assim que receber o código de confirmação no seu e-mail, é só inseri-lo no seu respectivo campo, também é possível reenviar o código caso seja necessário, depois de informado o código é só clicar em assinar e uma tela confirmando a assinatura irá aparecer.

Segundo as informações disponíveis para implementar assinatura será necessário:   

  • Id do documento que deseja assinar;
  • Nome do documento que deseja assinar;
  • Id do sistema cliente (ClientId) que fará a integração;
  • String do corpo do documento que deseja assinar (HASH do documento)

Com essas informações é possível criar a URL da assinatura, onde serão enviado os parâmetros.


3 - IMPLEMENTAÇÃO

Para realizar a integração com o assine aqui é necessário que a solicitação do Cidadão vire um documento, pois o assine aqui só assina documentos, diante disso só é possível realizar a assinatura depois que a Api de Solicitações estiver integrada com o Gov.doc, pois ele criara um documento da solicitação do cidadão, e poderá retornar as informações que o assine aqui precisa,precisa, sendo elas:

  • Id do documento que deseja assinar;
  • Nome do documento que deseja assinar;
  • String do corpo do documento que deseja assinar (HASH do documento)

Além disso, quando a solicitação for salva, ela precisa salvar essas informações de cima também na solicitação, sendo todos os campos este:

  • Id do documento que deseja assinar;
  • Nome do documento que deseja assinar;
  • String do corpo do documento que deseja assinar (HASH do documento)
  • Protocolo

 

Criação do Documentodocumento
  • Datano e Hora
  • GOV.DOC

    (Protocolo do Documento, Nome, Serviço, Data e Hora, CPF Anonimizado...)???

    URL api do gov.doc

    https://govdoc-api.development.local/swagger/index.html

    image.png

    A Criação será deverá se realizado Controller de Documentos na Action PostDocumentoUsuarioExterno

    /Documentos/PostDocumentoUsuarioExterno - Como na imagem a baixo:

    image.png

     

    Tendo como obrigatório o Titulo e tipo de Documento, já  o Corpo do documento da Solicitação será composto 

    • Protocolo da solicitação
    • Data e Hora da solicitação
    • Área de atendimento
    • Prazo Restante
    • Prazo Total
    • Conteúdo da resposta, se tiver

    e o campo Usuário devera ter 

    • Nome do Cidadão 
    • CPF Anonimizado

    Logo baixo podemos ver Dois exemplos de um objetos que podem ser enviados, onde o Corpo do documento se trata de uma String. 

    {
      "titulo": "Solicitação do servico - Cadastro de Acesso ao Programa Mulher Protegida - Menor de 18 anos",
      "conteudo": "Protocolo da solicitação, Data e Hora da solicitação, Área de atendimento, Prazo Restante, Prazo Total, Conteúdo da resposta, se tiver",
      "clientId": "35ac2a48-c839-4130-a273-47139bb5a7ea",
      "tipoDeDocumento": "Parecer",
      "usuario": {
        "nome": "Lucas de Souza e Sousa",
        "cpf": "034440*****",
        "email": "string"
      },
      "restrito": true
    }

    No exemplo de baixo podemos ver também o retorno da Api.

    image.png

    Quando o usuário for realizar a assinatura, abrirá um pop-up, que é uma nova pagina em outra aba do navegador, o time vingadores acha que tal abordagem não seja a melhor, pois tira o cidadão do App, quebrando sua experiencia de usuário com a aplicação.

    Diante disso, o time vingadores encontrou duas possíveis cenários  para realização da assinatura.

    O primeiro era a implementação da API do assine aqui e o Gov.br integrado com o Portal do cidadão, nessa opção não abrira outra aba do navegador e a assinatura seria realizada em uma tela dentro do próprio portal do Cidadão, com o layout do Portal.

    Toda via, o assine aqui com Gov.br não usa a API do assine aqui, o projeto é somente web, e tal abordagem se tornou inviável em vista que é obrigatório por decreto o uso do assine aqui, com seu layout, para o cidadão ter total entendimento que está usando o sistema.

    A outra abordagem é mais simples, usando o assine aqui, entretanto em vez de abri a nova aba quando o Cidadão for assinar, o portal ira redirecionar pro assine aqui através da tag html:

    <a class="btn btn-primary" href="link do assine aqui">Assinar</a>

    e o time TAMBAKISS ficando responsável pelo redirecionamento de voltar pro Portal do cidadão após a realização da assinatura, tal atividade já foi concordada com o PO do time, entrando na sua sprint atual.

    4 - IMPLEMENTAÇÃO E HISTÓRIAS DE USUÁRIO

    HISTÓRIA

    PONTUAÇÃO

    PRODUTO

    REGRA

    1 - Integração do alpha solicitações API com Gov Doc

    5

    Alpha Solicitações Api e Gov Doc

    - Criar Modelo do Documento no Gov.Doc

    2 - Criar um documento no Gov doc com as informações da solicitação, ao realizar uma solicitação no Portal do Cidadão 8 Gov Doc e Alpha Solicitações Api 

    - Passar o Client Id do Alpha Solicitações

    - Salvar Id do documento na solicitação

    - Campos do Documento

    Protocolo, Nome, Serviço, Data e Hora, CPF Anonimizado...

    3 - Obter o Id do documento do documento criado no Alpha solicitação quando Cidadão for pra tela de detalhes da solicitação 5 Alpha Solicitações Api e Portal do Cidadão

    Tela de detalhes com o botão assinar

    4 - Realizar a assinatura enviando o Id do documento por parâmetro 3 Portal do Cidadão 
    5 - Cidadão visualizar assinatura 5 Portal do Cidadão - Anonimizar o CPF
    6 - Atendente visualizar assinatura 5 Alpha - Anonimizar o CPF

    TOTAL

    31




    5 - POSSÍVEIS PROBLEMAS NA UTILIZAÇÃO

    Existem algumas preocupações com possíveis problemas na realização da assinatura

    • O principal é o envio do hash do documento por parâmetro na URL do assine aqui
    • Performance do Gov doc em relação a grande quantidade de request, pois será criado um documento toda vez que for realizado uma solicitação online no Portal do Cidadão


    6 - CONCLUSÃO

    Com a Produção deste Spike foi possível elaborar o fluxo completo da integração do Portal do Cidadão com o Assine aqui e Gov Br, sendo necessário também a integração do Alpha solicitação com o Gov Doc e as histórias de usuário que serão necessárias para a criação desta funcionalidade.

    Elaborado de 24 de Junho de 2022.


    7 - REFERÊNCIAS

    https://documentos.sistemas.ro.gov.br/books/assine-aqui/page/tutorial-integracao-da-assinatura-avancada-ao-seu-sistema