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ência | Gerada 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:
Utilizadores
Utilizador autenticado
Convites
Departamentos
Perfis
Aplicações
Autorização
M2M
Sessões
Clientes OAuth
Ficheiros e configuração
Auditoria
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.
Última atualização:
