Pular para conteúdo

Privacidade Digital do Cidadão

Este módulo de apoio permite que uma GCC proveja os serviços para Titulares do portal da Privacidade Digital do Cidadão (PDC). O PDC exige que as chamadas a esses serviços sejam autorizadas pelo fluxo de autenticação do Gov.br. Portanto, este módulo provê uma API REST para que a GCC possa se comunicar com o PDC.

Fluxo de execução

Por meio desta API, uma GCC pode consultar pedidos de consentimento e tratamentos de dados de um Titular, bem como autorizar, negar ou revogar pedidos de consentimento em nome do Titular. O fluxo de consulta de recursos é exemplificado abaixo, do ponto de vista da API.

---
title: "Fluxo: GCC consulta pedidos de consentimento a pedido do Titular"
---

flowchart TD
    a@{shape: circle, label: Início}
    b("Recebe requisição por /v1/consentimentos/\{cpf\}")
    c{"Tem *token* Gov.br para o {cpf} em cache?"}
    d("Usa *token* para requisitar dados ao *backend* do PDC")
    e("Retorna dados na resposta")
    f("Retorna erro 403 na resposta")
    z@{shape: circle, label: Fim}
    a --> b
    b --> c
    c -->|" Sim "| d
    c -->|" Não "| f
    d --> e
    e --> z
    f --> z

Para os casos de mudar o estado de um pedido de consentimento, o fluxo é semelhante, mas a GCC deve requisitar o recurso /v1/consentimentos/{cpf}/{id}/status/{novo estado} com o método PUT, conforme a documentação da API. A figura abaixo ilustra o fluxo de revogação de um consentimento ativo.

---
title: "Fluxo: GCC revoga consentimento a pedido do Titular"
---

flowchart TD
    a@{shape: circle, label: Início}
    b("Sistema recebe requisição da GCC para atualizar o estado do consentimento {id} do titular {cpf} para *REVOGADO*")
    c{"Decisão: o sistema tem uma *token* Gov.br para o titular do {cpf}?"}
    d("Usa *token* para solicitar a revogação na API do PDC")
    e("Retorna à GCC o novo estado do pedido de consentimento {id}")
    f("Retorna à GCC um erro de requisição sem autorização")
    z@{shape: circle, label: Fim}
    a --> b
    b --> c
    c -->|" Sim "| d
    c -->|" Não "| f
    d --> e
    e --> z
    f --> z

Para que todas essas operações sejam possíveis, a GCC deve estar devidamente autorizada pelo Titular, conforme previsto na Lei Geral de Proteção de Dados (LGPD), e o Titular deve estar autenticado via Gov.br. O fluxo de autenticação do Titular e autorização da GCC é exemplificado abaixo, do ponto de vista da API.

---
title: "Fluxo: Autenticação do Titular a pedido da GCC"
---

flowchart TD
    a@{shape: circle, label: Início}
    b("Recebe requisição por /v1/autenticacao/{cpf}/url")
    c("Gera link de autenticação para o {cpf} com estado (data de expiração e uso único)")
    c2("Retorna link à GCC na resposta")
    d("Recebe requisição do Titular no link de autenticação")
    d2("Redireciona Titular para Gov.br")
    d3("Recebe resposta de autenticação do Gov.br")
    e{"Tem código Gov.br, estado do link e CPF logado consistentes?"}
    f("Retorna página de erro ao Titular")
    g("Invalida estado do link")
    h("Salva token do Titular em cache")
    x("Redireciona Titular à página de sucesso da GCC")
    z@{shape: circle, label: Fim}
    a --> b
    b --> c
    c --> c2
    c2 -.- d
    d --> d2
    d2 -.- d3
    d3 --> e
    e -->|" Sim "| g
    e -->|" Não "| f
    g --> h
    h --> x
    x --> z
    f --> z