Referência técnica para integrar um projeto iGRP com o Access Management — panorama, sincronização, configuração e modelo de acesso.
Descreve como integrar um projeto (API backend + frontend Next.js) com o iGRP Access Management. No final, a aplicação terá permissões e menus sincronizados, autenticação via fornecedor de identidade partilhado e a SPA apresentará a árvore de menus correta por perfil (role).
Âmbito
Abrange a sincronização de permissões do backend, a sincronização de menus do frontend, e a superfície de variáveis de ambiente dos quatro intervenientes do sistema:
- Access Management (AM) — o servidor de autorização OAuth2 + API de administração.
- Application Center (AC) — o portal Next.js onde os administradores gerem utilizadores, perfis (roles), permissões, menus e (brevemente) clientes / contas de serviço.
- Backend da Aplicação — um serviço Spring Boot que expõe APIs de negócio.
- Frontend da Aplicação — uma SPA Next.js que consome essas APIs.
O IdP é transparente para os frontends
A partir das versões atuais do framework (igrp-framework-nextjs@dev, application-center@dev), a SPA deixou de comunicar diretamente com o fornecedor de identidade externo (Autentika / Keycloak / WSO2). Todos os frontends autenticam-se contra o Access Management através do fornecedor interno igrp-auth do framework; é depois o AM que trata internamente da federação com o IdP real. Isto significa deixar de existir variáveis KEYCLOAK_* do lado da SPA — apenas o bloco AUTH_PROVIDER=igrp-auth + IGRP_AUTH_* voltado para o AM, abaixo.
Percorrer a administração pelo Application Center
Esta página é uma referência técnica para integradores. Para os fluxos passo‑a‑passo do administrador (login, gestão de aplicações, departamentos, utilizadores, convites, etc.), a documentação vive em Utilizadores → Gestão de Acessos:
- Identidade & Login
- Application Center — Home & Definições
- Aplicações & Menus
- Departamentos & Perfis
- Utilizadores & Convites
- Fluxo de Convite (OTP)
- Âmbito do Gestor (Hierarquia)
Documentação de integração (esta secção, para developers):
- Sincronização — backend (permissões) e frontend (menus)
- Configuração — variáveis de ambiente por componente
- Guia Prático — percurso ponta-a-ponta e resolução de problemas
- Referência — localização de ficheiros e documentos relacionados
- Modelo de Acesso — entidades, hierarquias e fluxos de permissão
- Integração com Notification Service
- API M2M & SDK Java
Para uma análise aprofundada sobre a declaração de permissões e a configuração de @PreAuthorize, consulte o guia complementar iGRP Permissions Integration Guide. Este documento é a visão de alto nível que liga permissões, menus e configuração.
Panorama geral
| # | Quem | Quando | O que acontece | Endpoints |
|---|---|---|---|---|
| ① | Frontend do projeto | Login | O utilizador entra pelo fornecedor igrp-auth do framework; o Access Management emite o JWT | /oauth2/authorize, /oauth2/token, /connect/logout |
| ② | Frontend do projeto | Arranque | Publica os metadados da aplicação e os menus declarados no código (src/temp/menus/menus.ts) | POST /api/m2m/sync/applications, POST /api/m2m/sync/applications/{code}/menus |
| ③ | Backend do projeto | Arranque | Obtém um token client_credentials e publica o recurso e as permissões @IgrpPermission | POST /oauth2/token, POST /api/m2m/sync/resources, POST /api/m2m/sync/permissions |
| ④ | Application Center | Uso | Administração: utilizadores, departamentos, perfis, permissões, aplicações e menus | /api/users, /api/departments (perfis e permissões em …/{code}/roles/…), /api/applications (menus em …/{code}/menus), /api/clients, /api/service-accounts |
| ⑤ | Frontend → backend | Cada pedido | Chamadas de negócio com o JWT do utilizador; o backend decide com @PreAuthorize | — |
| ⑥ | Backend do projeto | Cada pedido | Valida a assinatura e o emissor do JWT com as chaves do Access Management | /.well-known/openid-configuration, JWKS |
| ⑦ | Access Management | Login | Federa a autenticação com o fornecedor de identidade configurado; os frontends nunca falam com ele | — |
Os passos ② e ③ são os da Sincronização; o ciclo completo de uma permissão (declaração, publicação, atribuição, verificação) está em Framework › Modelo de permissões.
Última atualização:
