iGRPIGRP 3.0Documentation

API REST

API REST do Access Management — base, autenticação, referência gerada do OpenAPI e exemplos.

O access-management-api guarda departamentos, perfis, utilizadores, aplicações e permissões, emite os tokens e gere as sessões — ver o modelo de controlo de acesso.

Base (workspace)http://<slug>:2575/gateway-api/<serviço>-access-management
Prefixo/api (está no caminho dos recursos)
ReferênciaGerada do OpenAPI do serviço (springdoc em /v3/api-docs)

O <serviço> é o nome com que o serviço está registado no Eureka.


Autenticação

Authorization: Bearer <token>

Nas apps é o token do utilizador: leva as permissões do perfil ativo em permissions e o departamento dele em org — ver Claims do JWT. Entre serviços usa um token client_credentials — ver API M2M.

Cada endpoint de gestão exige uma permissão (igrp.users.view, igrp.users.manage, …), indicada na referência de cada operação.


Referência

Cada operação, com a permissão, os parâmetros, o corpo do pedido, as respostas e exemplos em várias linguagens:

Testar no playground

O botão Testar no playground envia o pedido a partir do browser para o servidor indicado (por omissão, o gateway do workspace em localhost:2575). Preenche o host e o servico do teu ambiente e um token em Autorização. O gateway tem de aceitar pedidos (CORS) vindos da origem da documentação; se não aceitar, usa os exemplos curl.


Exemplos

$AM é a base do serviço (por exemplo http://<slug>:2575/gateway-api/<serviço>-access-management).

Listar aplicações

curl "$AM/api/applications" \
  -H "Authorization: Bearer $TOKEN"

Criar aplicação

curl -X POST "$AM/api/applications" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "MINHA_APP",
    "name": "Minha App",
    "type": "INTERNAL",
    "description": "Aplicação de exemplo"
  }'

code, name e type (INTERNAL, EXTERNAL ou SYSTEM) são obrigatórios.

Verificar uma autorização

curl -X POST "$AM/api/authorize/check" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "action": "igrp.documento.ler" }'

action é o código da permissão; resource é opcional e identifica o recurso. A resposta diz se é permitido (allowed), por que perfis (viaRoles) e o motivo (reason).

Trocar o perfil ativo

curl -X POST "$AM/api/users/me/roles/active" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "roleCode": "arquivista", "departmentCode": "ARQ" }'

A troca revoga as sessões do utilizador: o token seguinte traz as permissões do novo perfil.

How is this guide?

Última atualização: