60 lines
1.7 KiB
Markdown
60 lines
1.7 KiB
Markdown
# 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.
|