Um ecossistema, quatro contextos

As sessões separam o canal usado da autorização aplicada; compartilhar serviços não significa compartilhar as mesmas permissões.

CanalPúblicoEntrada apresentadaCaracterística
Portal pacienteCidadãoIdentidade gov.brRegistros próprios, agenda, privacidade e histórico
Portal profissionalProfissional da redeIdentidade institucionalPesquisa e consulta no contexto assistencial
HU Digital embarcadoProfissional no AGHUContexto mediado pela integraçãoPaciente previamente selecionado e rota específica
App móvelPacientegov.br em fluxo móvelExperiência nativa para iOS e Android

Autenticação e autorização em camadas

O fluxo apresentado combina provedores externos, Identity Server, API Manager e serviços clínicos.

Usuário
  ↓ autenticação federada
Gov.br ou identidade institucional
  ↓ callback autorizado
Identity Server
  ↓ tokens e contexto
Aplicação → API Manager → serviço FHIR / microserviço
                           ↓
                 política, consentimento e auditoria
ProvaO que representaO que não prova sozinha
Credencial da aplicaçãoQual cliente está chamandoQual pessoa está usando e por quê
Token do usuárioIdentidade e atributos da sessãoPermissão irrestrita sobre qualquer paciente
PractitionerRolePapel profissional no contexto cadastradoConsentimento ou finalidade para toda consulta
Política de consentimentoRegra de compartilhamento aplicávelIdentidade correta sem auditoria
Contexto AGHUOrigem e paciente selecionadoConfiança automática em parâmetros do cliente

O repasse diferencia token da aplicação e token do usuário. Fluxos com usuário autenticado preservam o sujeito para autorização e auditoria; integrações técnicas sem contexto OIDC seguem contrato específico e não devem ser generalizadas para acesso clínico interativo.

A instância HTTP centralizada no cliente adiciona cabeçalhos e trata respostas, mas a decisão de acesso permanece no backend. Erros de autenticação, política, consentimento e conflito precisam de mensagens úteis sem revelar detalhes internos.

Portal web: uma base, builds distintas

A demonstração de 25 de setembro mostra um repositório web que produz experiências separadas por modo e ambiente.

  1. 1
    Selecionar o modo

    Paciente, profissional e AGHU ativam conjuntos diferentes de rotas e features.

  2. 2
    Carregar a configuração

    Settings, flags e variáveis de ambiente definem comportamento sem duplicar toda a base.

  3. 3
    Estabelecer a sessão

    Contexts e hooks propagam autenticação e estado pelas páginas.

  4. 4
    Consumir serviços

    Uma camada Axios centraliza base de API, cabeçalhos, renovação e tratamento de falhas.

  5. 5
    Gerar e publicar

    Scripts produzem artefatos estáticos por modo para hospedagem e roteamento no Nginx.

Decisão registradaBenefícioRisco de manutenção
Base compartilhadaReuso de componentes e regras de apresentaçãoMudança comum pode afetar três experiências
Feature flagsVariação explícita por públicoCombinações não testadas geram regressões
HashRouterCompatibilidade com hospedagem estática registradaRotas e servidor precisam permanecer alinhados
API services centralizadosAutenticação e erros consistentesUma configuração errada afeta todas as chamadas
Build por ambienteArtefato adequado ao destinoSegredo ou endpoint não deve ser incorporado indevidamente

Aplicativo móvel: OAuth em WebView e ciclo de loja

O app apresentado é voltado ao paciente e combina React Native, Expo, serviços HTTP e autenticação gov.br.

  • O fluxo de login abre a identidade gov.br em WebView e trata o callback para retornar ao aplicativo.
  • A camada de serviços segue a ideia do portal: cliente HTTP central, domínios de API e contexto de autenticação.
  • A organização visual registrada segue design atômico, de átomos e moléculas até templates e telas.
  • Diferenças entre iOS e Android aparecem em build, estilo, manipulação de arquivos e assinatura.
  • A publicação exige identificadores, versões, assinatura, trilha de testes e aprovação nas lojas.

Versões citadas são pistas históricas

As gravações registram ferramentas concretas, úteis para localizar legado, mas inadequadas como baseline automática em 2026.

Recorte de 2025Registro no repasseAção segura
Portal webReact 16.14, Node 16.16 e Yarn foram mostradosConferir manifestos, lockfile, pipeline e runtime suportado
AplicativoReact Native 0.69, Expo e ferramentas móveis foram citadosConferir configuração atual, requisitos de loja e compatibilidade nativa
AndroidAAB, versionCode e exigência de API mínima aparecem no fluxoConsultar política vigente da loja antes de publicar
iOSXcode, TestFlight, certificados e revisão aparecem no fluxoValidar conta, perfis, assinatura e requisitos vigentes
Deploy webBuild estática e cópia para Nginx foram demonstradasUsar pipeline aprovado, evidência de teste e plano de reversão

Capítulos para revisão dirigida

Abra as três gravações pelo Guia do repasse e use os timestamps abaixo.

SessãoTimestampAssunto
19/0900:17:13OAuth em três camadas
19/0900:25:15Perfis e PractitionerRole
19/0900:30:02Consentimento e portal embarcado
19/0901:28:26Token de aplicação versus token de usuário
25/0900:28:02Settings, features e ambiente
25/0901:07:00Contexts, hooks e API services
25/0902:04:43Build e deploy
26/0900:38:48Axios e autenticação em WebView
26/0901:07:16Publicação Google Play e App Store