Fase atual: Definição

Acesso e Ações dos Usuários

# Documento de Definição de Contextos
 
## Objetivo
Garantir que apenas usuários autenticados e autorizados acessem os recursos do Gemed de acordo com seu perfil de acesso (RBAC dinâmico), seu perfil profissional e seu vínculo com o cliente, protegendo os dados sensíveis dos pacientes em conformidade com a LGPD.
## Escopo
### Dentro:
•	Autenticação de usuários (login/logout)
•	Recuperação e troca de senha
•	Sessão por usuário com timeout parametrizável globalmente
•	Controle de acesso baseado em perfis de acesso (RBAC dinâmico) — grupos criados pelo administrador do cliente
•	Barreira de perfil profissional — funcionalidades que exigem profissão regulamentada (médico, enfermeira, farmacêutica) sobrepõem o RBAC
•	Vínculo do usuário a uma ou mais clínicas/unidades
•	Bloqueio por tentativas inválidas (parametrizável globalmente)
•	Desbloqueio de usuário pelo administrador do cliente (próprio cliente) ou pelo suporte Gemed (qualquer cliente)
•	Log de auditoria de ações críticas
•	LGPD: registro de acesso a dados sensíveis
### Fora:
•	SSO externo (futuro)
•	Gestão de identidade federada (LDAP/SAML)
•	Controle biométrico
•	Criptografia de dados em repouso (responsabilidade da infraestrutura)
## 
Personas envolvidas

| Persona               | Papel no contexto Segurança                                                                                    |
| --------------------- | -------------------------------------------------------------------------------------------------------------- |
| Administrador         | Cria, edita, ativa/desativa usuários; associa perfis de acesso e vínculos; desbloqueia usuários do seu cliente |
| Médico                | Acessa com permissões assistenciais + perfil profissional que libera prescrição, diagnóstico e conduta         |
| Enfermeira            | Acessa com permissões de cuidado + perfil profissional que libera checagem e administração de medicamentos     |
| Farmacêutica          | Acessa com permissões de manipulação + perfil profissional que libera aviamento e liberação de medicamentos    |
| Recepcionista         | Acessa com permissões de agendamento e check-in (sem barreira de perfil profissional)                          |
| Suporte Técnico Gemed | Acesso cross-tenant auditado para suporte e configurações globais                                              |

## Regras de negócio
RN-SEG-001 — Autenticação obrigatória: Todo acesso ao sistema exige autenticação prévia com usuário e senha.
RN-SEG-002 — Sessão por dispositivo: Cada sessão é vinculada a um dispositivo/browser. O usuário pode ter múltiplas sessões simultâneas independentes.
RN-SEG-003 — Controle de acesso por perfil de acesso (RBAC dinâmico): As permissões a funcionalidades são concedidas por perfis de acesso (grupos) criados dinamicamente pelo administrador do cliente. Um usuário pode pertencer a um ou mais perfis.
RN-SEG-003-A — Perfil profissional como barreira de segurança: Toda funcionalidade que envolve ato privativo de profissão regulamentada deve ter um perfil profissional obrigatório vinculado em sua especificação. O sistema nega o acesso mesmo que o perfil de acesso (RBAC) conceda permissão, se o perfil profissional do usuário não corresponder ao exigido.
RN-SEG-003-B — Hierarquia de avaliação da autorização:
1.	O usuário tem permissão pelo perfil de acesso para a funcionalidade? Se não → negar
2.	A funcionalidade exige um perfil profissional específico? Se não → liberar
3.	O perfil profissional do usuário corresponde ao exigido? Se sim → liberar. Se não → negar
RN-SEG-004 — Vínculo clínica obrigatório: Todo usuário precisa estar vinculado a pelo menos uma clínica para acessar o sistema. O acesso aos dados é sempre filtrado pelo vínculo do usuário.
RN-SEG-005 — Bloqueio por tentativas (parâmetro GLOBAL): Após N tentativas consecutivas de login com senha inválida, o usuário é bloqueado por M minutos. Os valores de N e M são parâmetros globais do sistema, definidos e alterados exclusivamente pelo suporte Gemed no contexto Gestão da Aplicação.
Default: N=5 tentativas, M=15 minutos.
RN-SEG-006 — Inatividade (parâmetro GLOBAL): Após T minutos de inatividade, a sessão expira. O valor de T é parâmetro global, definido pelo suporte Gemed no contexto Gestão da Aplicação.
Default: T=30 minutos.
RN-SEG-007 — Auditoria obrigatória: Toda ação de criação, alteração ou exclusão de dados assistenciais ou financeiros deve ser registrada em log de auditoria com timestamp, usuário e ação.
RN-SEG-008 — LGPD: O acesso a dados sensíveis do paciente (diagnóstico, exames, prescrições) deve ser registrado em log específico de consentimento e privacidade.
RN-SEG-009 — Desbloqueio pelo administrador do cliente: Um administrador vinculado ao cliente pode desbloquear usuários daquele cliente que estejam bloqueados por tentativas inválidas. A ação é registrada em log de auditoria.
RN-SEG-010 — Desbloqueio pelo suporte Gemed: O suporte técnico Gemed (contexto Gestão da Aplicação) pode desbloquear qualquer usuário de qualquer cliente, independentemente de vínculo. A ação é registrada em log de auditoria.
RN-SEG-011 — Parâmetros de segurança globais: Os parâmetros de tentativas máximas (RN-SEG-005), tempo de bloqueio (RN-SEG-005) e tempo de inatividade (RN-SEG-006) são configurados globalmente no contexto Gestão da Aplicação e aplicam-se a todos os clientes indistintamente.
## Mapa de funcionalidades por perfil profissional

| Funcionalidade                         | Perfil profissional obrigatório |
| -------------------------------------- | ------------------------------- |
| Prescrever / editar prescrição         | Médico                          |
| Definir / alterar diagnóstico          | Médico                          |
| Validar protocolo terapêutico          | Médico                          |
| Dar alta assistencial                  | Médico                          |
| Checar administração de medicamento    | Enfermeira                      |
| Aplicar medicamento / infusão          | Enfermeira                      |
| Registrar evolução de enfermagem       | Enfermeira                      |
| Manipular / aviar medicamento          | Farmacêutica                    |
| Liberar medicamento para administração | Farmacêutica                    |
| Agendar consulta / procedimento        | -- (RBAC apenas)                |
| Faturar / lançar conta                 | -- (RBAC apenas)                |
	
## Fluxo principal
1.	Usuário acessa a tela de login do Gemed
2.	Informa e-mail (ou CPF) e senha
3.	Sistema valida credenciais contra o banco global
4.	Sistema verifica se o usuário está ativo e não bloqueado
5.	Sistema carrega os vínculos do usuário (clínicas às quais tem acesso)
6.	Sistema identifica os perfis de acesso (RBAC) e o perfil profissional do usuário
7.	Sistema monta o cockpit e a navegação com base na hierarquia RN-SEG-003-B
8.	Usuário realiza suas atividades dentro das permissões concedidas
9.	A cada ação crítica, o sistema registra log de auditoria
10.	Ao encerrar, usuário faz logout ou a sessão expira por inatividade
## Premissas
•	O banco global armazena usuários, perfis de acesso, perfil profissional e vínculos
•	Cada banco de dados do cliente (tenant) contém apenas os logs de auditoria das ações realizadas naquele tenant
•	A autenticação ocorre contra o banco global; a autorização combina RBAC + perfil profissional + vínculo
•	O sistema multi-tenant isola os dados: um usuário de um cliente não acessa dados de outro cliente sem vínculo explícito
•	Parâmetros de bloqueio e inatividade são globais, não configuráveis por cliente
## Dependências
•	Contexto Administrativo: Tela de gestão de perfis de acesso (CRUD de grupos, associação de permissões, vínculo de usuários)
•	Contexto Assistencial: Cada funcionalidade deve declarar o perfil profissional obrigatório em sua especificação
•	Gestão da Aplicação: Tela de parâmetros globais de segurança (tentativas, bloqueio, inatividade) e desbloqueio cross-tenant
•	Infraestrutura: Serviço de autenticação (JWT), claims do usuário contendo perfis de acesso + perfil profissional
