Portal Aura
IN-SCOPE
Painel Administrativo (
Seção intitulada “Painel Administrativo (/admin)”
Visão Geral
Seção intitulada “Visão Geral”O Portal Aura é a home da plataforma — ponto de entrada para todas as aplicações internas do Grupo Profarma. Funciona como um catálogo de apps com autenticação SSO integrada.
| Atributo | Valor |
|---|---|
| URL | https://app.profarma.dev/ |
| Path | / |
| Tipo | SPA (Single Page Application) |
| Auth | Azure AD SSO (primário), Login local, Guest access |
| Stack Frontend | React + Tailwind CSS |
| Status | Produção |
Funcionalidades
Seção intitulada “Funcionalidades”Catálogo de Apps
Seção intitulada “Catálogo de Apps”- Grid responsivo com cards dos apps disponíveis
- Filtragem por status (publicado, draft, fork)
- Verificação de acesso via Cloudflare Turnstile
- Deep links para cada aplicação
Autenticação
Seção intitulada “Autenticação”- SSO Microsoft (Azure AD / Entra ID) — OAuth 2.0 + OIDC
- Login local — email + password (bcrypt hash)
- Guest access — convites com token + Turnstile
Painel Administrativo (/admin)
Seção intitulada “Painel Administrativo (/admin)”- CRUD de aplicações (título, ícone, URL, visibilidade)
- Gestão de convites guest (criar, revogar, listar)
- Monitoramento de acessos e verificações
- Acesso restrito a emails com flag
isAdmin
Endpoints Relevantes
Seção intitulada “Endpoints Relevantes”| Método | Path | Auth | Descrição |
|---|---|---|---|
| GET | / | JWT Cookie | Portal SPA (index.html) |
| GET | /api/apps | JWT | Lista apps publicados |
| GET | /api/apps/:slug/forks | JWT | Lista forks de um app |
| GET | /api/admin/apps | JWT + isAdmin | Lista todos os apps |
| POST | /api/admin/apps | JWT + isAdmin | Cria app |
| PUT | /api/admin/apps/:id | JWT + isAdmin | Atualiza app |
| DELETE | /api/admin/apps/:id | JWT + isAdmin | Deleta app |
Fluxo de Acesso
Seção intitulada “Fluxo de Acesso”flowchart TD
U["Usuário"] --> URL["app.profarma.dev"]
URL --> AUTH{"Autenticado?"}
AUTH -- "Não" --> SSO["Redirect SSO<br/>Microsoft"]
SSO --> URL
AUTH -- "Sim" --> PORTAL["Portal<br/>Grid de Apps"]
PORTAL --> CLICK["Click em App"]
CLICK --> TURN["Turnstile<br/>Challenge"]
TURN --> APP["App Carrega"]
style U fill:#1a2744,stroke:#00aaaf,color:#e0e6f0
style URL fill:#00aaaf,stroke:#008a8e,color:#fff
style AUTH fill:#3c1469,stroke:#2a0e4a,color:#fff
style SSO fill:#0078d4,stroke:#005a9e,color:#fff
style PORTAL fill:#1a2744,stroke:#00aaaf,color:#e0e6f0
style TURN fill:#f59e0b,stroke:#d97706,color:#1a1a1a
style APP fill:#22c55e,stroke:#16a34a,color:#fff
Observações para Pentest
Seção intitulada “Observações para Pentest”- Testar bypass de Turnstile challenge no acesso a apps
- Validar RBAC: usuário regular não deve acessar
/admin - Verificar session fixation nos fluxos SSO → local → guest
- Testar rate limiting nos endpoints de auth