4.4 KiB
Estrategia De Credenciais Para StaffAccount
Este documento define a estrategia inicial de credenciais para contas administrativas internas (StaffAccount).
Objetivo
Permitir autenticacao web no orquestrador-admin sem misturar a identidade do painel com o User do atendimento.
O que e o StaffAccount
StaffAccount e a conta administrativa interna do sistema.
Ela representa um funcionario ou administrador da empresa e existe apenas no dominio administrativo. Nao deve ser usada para identificar cliente do atendimento.
Responsabilidades principais do StaffAccount:
- autenticar acesso ao painel administrativo
- carregar papel de autorizacao (
colaborador,diretor) - auditar quem executou uma acao interna
- governar drafts, configuracoes, relatorios e publicacao de tools
O que e a StaffSession
StaffSession representa uma sessao administrativa ativa derivada de um login do StaffAccount.
Cada sessao possui:
session_idrefresh_token_hash- data de expiracao
- marcador de revogacao
- metadados simples de IP e user-agent
Isso permite tratar login, refresh e logout sem depender apenas de um access token solto.
Identificador de login
O identificador principal de login sera:
email
Regras:
- deve ser unico no banco administrativo
- deve ser normalizado em lowercase na camada de servico e repositorio
- nao sera compartilhado com a identidade do atendimento
Segredo primario
O segredo primario inicial sera:
- senha gerenciada internamente
A senha nunca deve ser armazenada em texto puro.
Estrategia de hash
A estrategia inicial definida para password_hash e:
- esquema:
pbkdf2_sha256 - iteracoes padrao:
390000 - salt aleatorio por conta
- pepper opcional via ambiente:
ADMIN_AUTH_PASSWORD_PEPPER
Formato de persistencia adotado:
pbkdf2_sha256$<iterations>$<salt>$<digest>
Politica inicial de senha
Politica minima definida:
- tamanho minimo:
12 - exigir letra maiuscula
- exigir letra minuscula
- exigir digito
- exigir simbolo
A validacao dessa politica ja esta refletida no runtime administrativo.
Tokens e sessao
Estrategia inicial para a autenticacao web:
- access token curto:
30minutos - refresh token:
7dias - secret de assinatura dedicado:
ADMIN_AUTH_TOKEN_SECRET - issuer do admin runtime:
ADMIN_AUTH_TOKEN_ISSUER - tamanho configuravel do refresh token:
ADMIN_AUTH_REFRESH_TOKEN_BYTES
Nesta etapa, o runtime administrativo ja faz:
- emissao de access token assinado por HMAC-SHA256
- emissao de refresh token opaco
- armazenamento hash do refresh token em
StaffSession - rotacao do refresh token no endpoint de refresh
- revogacao da sessao no logout
Bootstrap do primeiro diretor
A primeira conta de diretor deve nascer por fluxo controlado, nunca por startup automatico.
Variaveis previstas:
ADMIN_BOOTSTRAP_ENABLEDADMIN_BOOTSTRAP_EMAILADMIN_BOOTSTRAP_DISPLAY_NAMEADMIN_BOOTSTRAP_PASSWORDADMIN_BOOTSTRAP_ROLE
Regras:
- o bootstrap deve ser executado por comando explicito no futuro
- nao deve criar conta automaticamente ao subir o servico
- o papel padrao do bootstrap e
diretor
Relacao com papeis e permissoes
A conta StaffAccount continua acoplada a hierarquia compartilhada:
colaboradordiretor
A senha autentica a identidade; o role governa autorizacao.
Configuracoes adicionadas ao admin runtime
As configuracoes de credenciais passam a existir em admin_app/core/settings.py:
admin_auth_password_hash_schemeadmin_auth_password_hash_iterationsadmin_auth_password_min_lengthadmin_auth_password_require_uppercaseadmin_auth_password_require_lowercaseadmin_auth_password_require_digitadmin_auth_password_require_symboladmin_auth_password_pepperadmin_auth_token_secretadmin_auth_token_issueradmin_auth_access_token_ttl_minutesadmin_auth_refresh_token_ttl_daysadmin_auth_refresh_token_bytesadmin_bootstrap_enabledadmin_bootstrap_emailadmin_bootstrap_display_nameadmin_bootstrap_passwordadmin_bootstrap_role
Endpoints iniciais de autenticacao
Nesta etapa, o orquestrador-admin passa a expor:
POST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/me
Proximos passos naturais
- implementar autorizacao por papel nas demais rotas administrativas
- implementar fluxo explicito de bootstrap do primeiro diretor
- implementar gestao de sessoes revogaveis por tela administrativa