Lição: Autenticação, Segurança e Permissões

Esta lição cobre como o usuário entra no sistema, como recupera a senha, como gerencia o próprio perfil e — o ponto central — como o Rabi controla quem pode ver e fazer o quê. Ao final você deverá dominar o fluxo de login via Keycloak (SSO), a recuperação de senha, a rota Minha Conta, o logout seguro e, principalmente, o modelo de permissões em produção: papel (Role) + 4 ações fixas por módulo.

⚠️ Leia isto antes de tudo. O modelo de permissões EM PRODUÇÃO é papel (Role) + 4 ações fixas (VIEW / CREATE / UPDATE / DELETE) por módulo. O chamado sistema de "permissões granulares" (múltiplos perfis por usuário, ações configuráveis, grupos, tela admin, sincronização com Keycloak) é apenas ROADMAP (GitLab #395) — ainda NÃO está disponível. Nesta lição, tudo que for granular está marcado como 🟠 planejado.

Como acessar o sistema

O Rabi é uma aplicação web (SPA em React/Vite), acessível por qualquer navegador moderno, sem instalação. Endereço de produção:

Ao abrir o endereço sem estar autenticado, você é redirecionado automaticamente para a tela de login (/login). Navegadores recomendados: Chrome, Edge ou Firefox em versão recente.

⚠️ Acesso não é público. É preciso ter conta previamente cadastrada pelo administrador da clínica. Usuários sem cadastro não conseguem entrar.

Tela de login

A tela de login é gerenciada pelo Keycloak. Elementos:

ElementoFunção
Campo E-mailE-mail vinculado à conta
Campo SenhaSenha criada no cadastro ou última redefinição
Botão "Entrar"Confirma as credenciais e inicia a sessão
Link "Esqueci minha senha"Inicia a recuperação por e-mail

Passo a passo — login

  1. Acesse app.rabisistemas.com.br.
  2. Você é redirecionado para /login.
  3. Informe o e-mail cadastrado pelo administrador.
  4. Informe a senha.
  5. Clique em Entrar.
  6. Validadas as credenciais, você vai ao Dashboard principal.
⚠️ Segurança de acesso. Nunca compartilhe sua senha. Cada usuário deve ter acesso individual para garantir a rastreabilidade das ações.

Recuperação de senha

É possível redefinir a senha de forma autônoma pelo fluxo do Keycloak:

  1. Na tela de login, clique em "Esqueci minha senha".
  2. Você vai à página de recuperação do Keycloak.
  3. Informe o e-mail da conta e confirme.
  4. Verifique a caixa de entrada (e o spam/lixo eletrônico).
  5. Abra o e-mail e clique no link de redefinição.
  6. Crie a nova senha nos dois campos e confirme.
  7. Volte ao login e entre com a nova senha.
ℹ️ Validade do link. O link de redefinição expira por segurança (geralmente 5 minutos). Se expirar, repita o processo para receber um novo.
⚠️ Conta bloqueada. Muitas tentativas com senha incorreta podem bloquear temporariamente a conta. Aguarde alguns minutos ou peça desbloqueio ao administrador.

Minha Conta (perfil do usuário)

Após logar, o usuário acessa seus dados de perfil, gerenciados pelo Keycloak. Rota: /portal/minha-conta. A página exibe:

ℹ️ Alteração de dados. Alterar nome de exibição/e-mail pode exigir confirmação do administrador conforme a configuração da clínica. A alteração de senha fica disponível diretamente ao usuário.

Logout seguro

Encerre a sessão pela função de logout no menu do perfil — não basta fechar a aba, pois a sessão pode permanecer ativa.

  1. Clique na foto/nome do usuário no canto superior direito (topbar).
  2. No menu, clique em "Sair" (ícone de saída).
  3. Você é desconectado e volta à tela de login.
⚠️ Sempre faça logout. Em computadores compartilhados, deixar a sessão ativa expõe dados sensíveis de pacientes (LGPD) e informações financeiras.

Autenticação com Keycloak (SSO)

O Rabi usa o Keycloak como provedor de identidade centralizado, com o padrão OAuth2 / OpenID Connect. Consequências práticas:

Realms por ambiente: rabisystems-dev, rabisystems-hmg (homologação) e rabisystems (produção). Cliente: rabi.client.sistemas.*. Homologação: Keycloak em login.hmg.rabisistemas.dev, app em sistema.hmg.rabisistemas.dev.

Sistema de permissões (modelo em produção)

✅ Em produção. Cada usuário recebe um papel (Role) e, por módulo, um dos 4 níveis de ação fixos. Este é o modelo real hoje.

As permissões organizam-se em dois eixos: o grupo (o módulo) e o nível de ação dentro dele.

Níveis de ação (4 fixos)

NívelO que permite
NONESem acesso — não vê nem acessa o módulo
VIEWVisualizar / consultar; não cria, edita ou exclui
CREATECriar novos registros (requer VIEW)
UPDATEEditar registros existentes (requer VIEW)
DELETEExcluir registros — conceda com cautela (pode ser irreversível)

Ordem de menos a mais permissivo: NONE < VIEW < CREATE < UPDATE < DELETE.

Grupos de funcionalidade (módulos)

GrupoMódulo correspondente
AGENDAMENTOConsultas, procedimentos e agenda dos profissionais
ATENDIMENTOAtendimentos, prontuários e acolhimento
PACIENTESCadastro e manutenção de pacientes
FINANCEIROLançamentos, contas a pagar/receber, fluxo de caixa
FATURAMENTOGuias, faturamento de convênios e cobrança
CONFIGURACOESParametrização e cadastros auxiliares
ESTOQUEProdutos, entradas e saídas
RELATORIOSRelatórios gerenciais e operacionais
DASHBOARDPainel de indicadores e métricas
ℹ️ Ajuste de permissão. Se não conseguir acessar algo que deveria, procure o administrador da clínica. Somente administradores alteram perfis de acesso (em Configurações → Usuários e Permissões).

🟠 Permissões granulares (roadmap — NÃO está em produção)

🟠 Planejado (GitLab #395, Sprint 9, 04–11/set) — ainda NÃO disponível. Há um refactor planejado do controle de permissões. Enquanto não for promovido a produção, vale o modelo Role + 4 ações fixas descrito acima. O quadro abaixo é apenas o desenho futuro.

Comparativo entre o modelo atual (produção) e o planejado:

AspectoAtual (produção)Planejado (#395)
Papéis por usuário1 (Role)N (PerfilPermissao)
Ações4 fixas10+ configuráveis (EXPORT, IMPRIMIR, AUTORIZAR, CANCELAR, ESTORNAR...)
GranularidadePor móduloPor permissão
GruposNãoGrupoPermissao
CustomizaçãoHard-codedTela admin
Sincronização KeycloakNão (só autenticação)Sim (sincroniza grupos/perfis)

No desenho futuro, o colaborador poderia ter vários perfis, a permissão efetiva seria a união das ações de todos os perfis, com cache de resolução e auditoria de mudanças. Nada disso está no ar hoje.

Novidades de julho/2026 — recursos transversais ✅ Novo — jul/2026

Entregue no ciclo de julho/2026; se ainda não apareceu no seu ambiente, chega na próxima atualização.

🟠 Seguem roadmap (não estão em produção): permissões granulares (#395 — Sprint 9, 04–11/set), travas de edição entre usuários (#407 — Sprint 5) e sessão única por usuário (#482 — Sprint 4, em desenvolvimento).

Rastreabilidade e LGPD

Como cada usuário tem acesso individual, o sistema mantém Logs de Auditoria (em Relatórios) registrando quem fez o quê e quando. Isso é essencial para a LGPD: dados pessoais de pacientes são protegidos e as ações ficam rastreáveis. Por isso o compartilhamento de senha é proibido — ele quebra a rastreabilidade.

Erros comuns e como resolver

SintomaCausa provávelSolução
Não consigo entrarConta não cadastrada / e-mail erradoPeça cadastro ao administrador; confira o e-mail
Conta bloqueadaVárias tentativas com senha erradaAguarde alguns minutos ou peça desbloqueio
Link de redefinição não funcionaLink expirado (≈5 min)Refaça "Esqueci minha senha"
Não vejo um módulo que deveriaNível NONE naquele grupoPeça ajuste de permissão ao administrador
Erro 403 ao tentar uma açãoNível insuficiente (ex.: tem VIEW, precisa de UPDATE)Solicite nível maior no grupo correspondente
Sessão continua ativa após fechar abaNão fez logoutUse sempre "Sair" no menu do perfil

Pontos-chave

O que a prova vai cobrar