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 o modelo de permissões: a base papel (Role) + 4 ações por módulo e, desde setembro/2026, as permissões granulares por funcionalidade/ação.

✅ ATUALIZAÇÃO IMPORTANTE ✅ Novo — set/2026. As PERMISSÕES GRANULARES (#395) FORAM ENTREGUES em 15/09/2026 e estão em produção: permissões finas por funcionalidade/ação, além da base papel (Role) + 4 ações (VIEW / CREATE / UPDATE / DELETE) por módulo. Versões anteriores desta lição diziam que era "apenas roadmap" — isso não vale mais. Entregue no ciclo de setembro/2026; se ainda não apareceu no seu ambiente, chega na próxima atualização.

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.

✅ Novo — ago/2026 Sessão única (#482): o sistema não permite mais o acesso do mesmo usuário em 2 locais ao mesmo tempo. Entregue no ciclo de agosto/2026; se ainda não apareceu no seu ambiente, chega na próxima atualização.

⚠️ 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 a conta — o bloqueio por excesso de tentativas é proteção padrão do login, além do limite por IP. Aguarde alguns minutos ou peça desbloqueio ao administrador.
✅ Novo — 13/10/2026 Quem trabalha em mais de uma clínica (#663): a senha e o e-mail desse usuário só podem ser trocados por ele mesmo, pelo "Esqueci minha senha" na tela de login — o administrador da clínica não consegue mais ("Este usuário também tem acesso a outra clínica. A senha e o e-mail só podem ser trocados por ele mesmo…"). Para quem é só de uma clínica, nada muda.

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:

✅ Novo — 23/10/2026 A Home mostra Atividades Recentes e a foto/profissão do usuário; o sistema pode pedir a atualização do perfil ou da senha no próximo login.

ℹ️ 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.
✅ Novo — 13/10/2026 O que o "Sair" faz desde 13–14/10 (#663/#666): O sistema também confere o vínculo a cada ação: se a pessoa perdeu o acesso à clínica escolhida, aparece "Seu usuário não tem acesso a esta clínica." e a tela volta sozinha para a clínica do login.

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. A base do modelo: cada usuário recebe um papel (Role) e, por módulo, um dos 4 níveis de ação. Desde set/2026, sobre essa base atuam as permissões granulares (#395) — permissões finas por funcionalidade/ação (ver seção abaixo).

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.

✅ Novo — 23/10/2026 Lista de permissões redesenhada (15–16/10/2026): com busca e os níveis com nomes simples na tela —
Na telaEquivale a
Sem PermissãoNONE
VisualizarVIEW
CriarCREATE
EditarUPDATE
TotalDELETE (inclui todos os anteriores)
Nova ação Ver Valores (excepcional), para colaborador com conselho: quem tem conselho + Ver Valores pode aprovar orçamento (21/10). Receitas: assinar exige Assinatura Digital (incluir); fazer e emitir para papel, Atendimentos (alterar).

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. ✅ Atualização 15/10: hoje, colaborador sem nenhuma configuração num módulo ainda vê as telas dele (o "negar por padrão", #667, não entrou) — configure cada módulo no perfil. Se não conseguir acessar algo que deveria, procure o administrador da clínica. Somente administradores alteram perfis de acesso (em Configurações → Colaboradores, no cadastro de cada colaborador → perfis e permissões).

🟢 Permissões granulares (#395) — EM PRODUÇÃO ✅ Novo — set/2026

🟢 ENTREGUE em 15/09/2026 (GitLab #395, Sprint 10). O refactor do controle de permissões foi promovido a produção: além da base Role + 4 ações por módulo, o administrador passa a configurar permissões finas por funcionalidade/ação. Entregue no ciclo de setembro/2026; se ainda não apareceu no seu ambiente, chega na próxima atualização.

Comparativo entre o modelo anterior e o modelo granular entregue:

AspectoAntes (modelo básico)Agora — granular (#395, set/2026)
GranularidadePor móduloPor funcionalidade/ação
Ações4 fixas (VIEW/CREATE/UPDATE/DELETE)Ações finas configuráveis por funcionalidade
CustomizaçãoHard-codedConfigurável pelo administrador

Na prática: o administrador consegue liberar ou bloquear ações específicas dentro de um módulo — e não mais apenas o módulo inteiro em 4 níveis. Confira no seu ambiente como os perfis da sua clínica foram mapeados após a atualização.

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.

Novidades de agosto/2026 ✅ Novo — ago/2026

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

Novidades de setembro/2026 ✅ Novo — set/2026

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

LGPD do paciente (épico #596) ✅ em produção desde 28/09/2026

No SERVIDOR em produção desde 28/09/2026. Não há tela própria no sistema da clínica para anonimizar, exportar ou registrar consentimento: são ações administrativas, pedidas ao time Rabi/administrador (DPO). Na tela, desde 29/09/2026: os campos do responsável legal (nome, CPF, parentesco) no cadastro do paciente menor de idade, exigidos pela idade calculada da data de nascimento.

✅ Novo — 29/09/2026 MFA (#602) — correção de status: MFA/código no celular para administradores: a exigência automática foi testada e retirada em 29/09/2026 — hoje não é obrigatório pelo sistema; confirme com o time Rabi a configuração do seu ambiente. O bloqueio por excesso de tentativas continua (proteção padrão do login). Continua existindo também o limite por IP. (Correção de 29/09/2026: esta lição dizia "MFA obrigatório para perfis administrativos, concluído em 25/09" — em 29/09 a exigência automática de configurar o código ao tornar alguém administrador entrou e foi retirada no mesmo dia.)
✅ em produção desde 28/09/2026 Integrações da clínica — saíram da homologação:

🔐 Cuidados com o token: ele aparece uma única vez — guarde em local seguro; nunca cole em documento, chamado, e-mail, manual ou conversa com IA que fique salva; token de uma clínica não acessa outra; suspeita de vazamento → revogue e gere outro.

🟠 Roadmap Seguem no roadmap as travas de edição entre usuários (#407) (✅ Atualização 13/10: desde 02/10 o sistema já recusa gravar por cima do que outra pessoa alterou — ver abaixo) e, na Sprint 12 (✅ Atualização 13/10: passou para a Sprint 14, 09–16/10), o log de auditoria guardando só o campo alterado (#627 — antes/depois, quem e quando; nada muda nas telas; o histórico antigo não será perdido: será convertido, e o original arquivado compactado fora do banco, com acesso restrito — LGPD).

🟠 Roadmap Segurança geral (#663–#669) — correções em preparação para a Sprint 14 (09–16/10); ainda não estão em produção. ✅ Atualização 15/10: #663, #666 e #669 entraram em produção em 13–14/10 (e #668 em parte); o "negar por padrão" (#667) não entrou — ver a seção de 13–15/10.

Novidades de outubro/2026 (01–13/10) ✅ Novo — out/2026

Conferidas no código de produção em 13/10/2026.

Novidades de 13–15/10/2026 — segurança ✅ Novo — 15/10/2026

Conferidas no código de produção em 15/10/2026. Proteções internas (cabeçalhos, infraestrutura) não mudam nada na tela e não são detalhadas aqui.

O quêComo ficaDesde
Troca de senha/e-mail de quem tem outra clínicaSó pelo próprio usuário ("Esqueci minha senha"); pelo cadastro, só se vincula o usuário à clínica atual; busca de e-mail exata13/10 (#663)
Mensagem de erro técnico"Ocorreu um erro inesperado. Tente novamente em instantes. (código XXXX)" — informe o código no chamado; mensagens de regra de negócio não mudam13/10 (#663)
Senha de aprovação de desconto5 erradas em 15 min → "Muitas tentativas de autenticação. Aguarde 15 minutos e tente novamente."; senha errada → mensagem genérica13/10 (#663)
Aprovação presencial (senha de outro colaborador)5 erradas em 15 min travam aquele aprovador: "Muitas tentativas de senha para este aprovador. Aguarde 15 minutos ou peça a aprovação remota."14/10 (#669)
Importação de planilhaSó .xlsx/.xls, até 10 MB, um arquivo por vez13/10 (#663)
ZIP de NF-e de fornecedorAté 200 XMLs, 2 MB por XML, 50 MB no total13/10 (#663)
Portal do pacienteO paciente só mexe nos próprios dados; código de verificação de uso único, 10 min, 5 tentativas; só paciente ou colaborador da clínica acessa; profissional aparece só pelo nome13–14/10 (#663/#668)
Impressões e PDFsAbrem sobre a tela, sem aba nova; o que foi digitado é tratado como texto13/10 (#663)
Sair do sistemaApaga rascunhos, clínica escolhida e preferências (inclusive colunas das listas) e encerra em todas as clínicas13–14/10 (#663/#666)
Listas e exportaçõesAté 100 itens por página (seletores 500; exportações 10.000; API externa 200) — acima do teto, reduz sem erro14/10 (#669)
Lista de administradoresSó administrador altera13/10 (#663)
Permissão no servidor em rotas que estavam abertasRegistros/movimentação financeira, duplicatas, glosas (salvar = GLOSAS UPDATE), guias, orçamentos, auditoria, assinatura digital, parâmetros, editar XML (UPDATE em Administrar Lote ou Faturamento)… — quem já usa com o perfil normal continua usando13–14/10 (#663/#667)
Histórico de alterações das telasAberto a qualquer colaborador; a permissão AUDITORIA fica só na Auditoria geral e no log de acesso ao prontuário13/10
Log de errosConfigurações › Log de erros, só administrador (não é permissão de perfil), com o código de rastreio e os dados enviados (sensíveis mascarados)14/10
Permissões TISSTISS_INTEGRACAO (VIEW/UPDATE) e TISS_ELEGIBILIDADE (VIEW/CREATE), grupo Configurações15/10 (#619)
⚠️ O que NÃO entrou (apesar de issue fechada) — não conte com isso:

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. Desde 23/10/2026 (#627) o histórico mostra só o campo alterado (antes/depois, quem, quando); salvar sem mudar nada não gera registro; registros antigos são convertidos clínica a clínica. ✅ Novo — 23/10/2026 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.

✅ Novo — set/2026 Tela de Auditoria no sistema (#185): além do relatório, os logs de auditoria agora têm tela própria no client — a consulta de auditoria fica acessível dentro do sistema, com a mesma regra de acesso restrito a administradores.

✅ Novo — ago/2026 Reforço de proteção: com o #592, os dados pessoais do paciente ficam bloqueados para edição nas telas, reduzindo o risco de alteração indevida de dados protegidos pela LGPD.

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 errada (bloqueio por excesso de tentativas — proteção padrão do login)Aguarde alguns minutos ou peça desbloqueio ao administrador
O login passou a pedir um código (MFA/TOTP)Código configurado no seu ambiente (o MFA não é obrigatório pelo sistema hoje — a exigência automática foi retirada em 29/09/2026, #602)Use o código do aplicativo autenticador; em dúvida (ou para configurar), fale com o administrador ou com o time Rabi
A TalkMe (IA) recebe erro 403Integração TalkMe não habilitada pela clínica (#597)Habilite em Configurações › Parâmetros › Integrações e gere o token do tipo TalkMe (IA)
"Seu usuário está desativado nesta clínica." ✅ Novo — 02/10/2026O colaborador foi desativadoProcure o administrador da clínica
Erro 403 com escopoFaltante numa integração ✅ Novo — 02/10/2026O token rbt_ não tem a permissão daquela rotaEm Parâmetros › Integrações, use "Editar permissões" no token (o valor não muda)
Colei um token rbt_ num chamado, e-mail ou conversa com IASuspeita de vazamentoRevogue o token em Parâmetros › Integrações e gere outro
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 grupo (ou sem a permissão que passou a valer no servidor em 13–14/10)Peç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
"Este usuário também tem acesso a outra clínica. A senha e o e-mail só podem ser trocados por ele mesmo…" ✅ Novo — 13/10/2026O administrador tentou trocar senha/e-mail de quem trabalha em mais de uma clínica (#663)O próprio usuário usa "Esqueci minha senha" no login
"Ocorreu um erro inesperado. Tente novamente em instantes. (código XXXX)" ✅ Novo — 13/10/2026Erro técnicoTente de novo; no chamado, informe o código (o administrador o encontra em Configurações › Log de erros)
"Seu usuário não tem acesso a esta clínica." e a tela voltou para outra clínica ✅ Novo — 14/10/2026O acesso àquela clínica foi retirado (ou outro usuário usa o mesmo navegador) (#666)Normal: o sistema voltou para a clínica do login; peça o acesso ao administrador, se precisar
Depois de sair, as colunas das listas e o rascunho do prontuário sumiram ✅ Novo — 13/10/2026O Sair apaga o que o Rabi guardou no navegador (#663)Salve antes de sair; arrume as colunas de novo
Colaborador sem permissão configurada ainda vê um módulo ✅ Novo — 15/10/2026O "negar por padrão" (#667) não entrouConfigure o módulo no perfil do colaborador

Pontos-chave

O que a prova vai cobrar