Arquitetura & EngenhariaAutenticação
Autenticação (OIDC)
Como a autenticação funciona usando o provedor OIDC.
O Urbis implementa um sistema de autenticação centralizado usando o protocolo OpenID Connect (OIDC). Utilizamos o node-oidc-provider integrado diretamente no NestJS.
Por que OIDC?
- Identidade Centralizada: Os usuários fazem login uma vez e podem acessar múltiplas aplicações (Contas, Docs, futuras aplicações).
- Protocolo Padrão: É um padrão da indústria, tornando-o compatível com bibliotecas para todas as linguagens e frameworks.
- Segurança: Suporta fluxos de segurança modernos, como o Fluxo de Código de Autorização com PKCE.
Fluxos
Fluxo de Código de Autorização com PKCE
Este é o fluxo principal utilizado por nossas aplicações frontend (SPAs).
- Usuário clica em Login: O frontend redireciona o usuário para o endpoint de autorização da API.
- Página de Login: A API serve uma página de login (renderizada no servidor ou estática).
- Autenticação: O usuário insere as credenciais. A API as valida no banco de dados.
- Consentimento: (Opcional) O usuário consente com os escopos.
- Redirecionamento: A API redireciona de volta para o frontend com um código de autorização.
- Troca de Token: O frontend troca o código por um Token de Acesso e um Token de ID.
Endpoints
- Descoberta:
/auth/oidc/.well-known/openid-configuration - Autorização:
/auth/oidc/auth - Token:
/auth/oidc/token - Informações do Usuário:
/auth/oidc/me