# identity-gateway `identity-gateway` é a autoridade de identidade **interna** da plataforma. Ele existe para unificar identidade, RBAC e emissão de tokens confiáveis para serviços internos. **Não é** um produto de auth para o mercado, não compete com Auth0/Clerk e não oferece SDKs públicos ou UI de login white-label. ## Por que NÃO é Auth0 - Não é vendido como produto standalone de autenticação. - Não é SDK-first e não prioriza experiência de dev externo. - Tokens são internos e consumidos apenas por serviços confiáveis. - UI de login não é foco (nem fornecida aqui). ## Papel do identity-gateway - Centralizar autenticação e autorização. - Emitir JWTs para serviços internos. - Manter RBAC e permissões por tenant. - Ser a autoridade de identidade para: - `baas-control-plane` - `billing-finance-core` - `crm-core` ## Fluxo de confiança 1. Usuário autentica no `identity-gateway`. 2. O gateway valida a identidade (provider local/externo). 3. O gateway emite JWT interno com claims mínimas. 4. Serviços internos validam e confiam no token. > Nenhum serviço externo emite tokens para o gateway. ## Modelo de tokens Veja [`docs/token-model.md`](docs/token-model.md). ## Rodando localmente ```bash cp .env.example .env npm install npm run dev ``` ## Docker ```bash docker-compose up --build ``` ## Estrutura - `src/core`: guards e serviços centrais. - `src/modules`: auth, users, roles, permissions, sessions, providers. - `docs`: arquitetura, segurança e modelo de tokens. ## Notas de segurança - JWTs são internos e não devem ser expostos diretamente a apps públicos. - Refresh tokens são armazenados com hash no banco.