Usuários do Portal BaaS
Gerencie os usuários do portal do parceiro BaaS (mesmo fluxo do portal em /management/users/list).
A identidade canônica é o Keycloak (realm baas, client api-baas). O atributo baasId do usuário isola o tenant. A Banking API também mantém um espelho leve na tabela local User do banco BaaS (usado no login do portal).
Pré-requisitos
- Credencial com
credential_type = BAAS - Scopes:
baas-users.read— listar e consultarbaas-users.write— criar, atualizar, excluir e gerir permissões
Endpoints
| Método | Path | Scope | Descrição |
|---|---|---|---|
GET | /baas-users | baas-users.read | Lista paginada |
GET | /baas-users/{id} | baas-users.read | Detalhe + roles + groups |
POST | /baas-users | baas-users.write | Criar |
PUT | /baas-users/{id} | baas-users.write | Atualizar perfil/senha |
DELETE | /baas-users/{id} | baas-users.write | Excluir |
PUT | /baas-users/{id}/permissions | baas-users.write | Substituir roles e groups |
Listar usuários
curl -X GET "https://api.example.com/baas-users?page=1&perPage=20&filter=ana" \
-H "Authorization: Bearer SEU_TOKEN" \
--cert client.pem --key client.key
O filter busca em username, email e name.
Resposta
{
"meta": {
"total": 1,
"perPage": 20,
"currentPage": 1,
"firstPage": 1,
"lastPage": 1,
"nextPage": null,
"prevPage": null
},
"data": [
{
"id": "7f1c58a3-1234-4abc-8def-0123456789ab",
"username": "ana.silva",
"email": "[email protected]",
"name": "Ana Silva",
"firstName": "Ana",
"lastName": "Silva"
}
]
}
Criar usuário
curl -X POST "https://api.example.com/baas-users" \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
--cert client.pem --key client.key \
-d '{
"email": "[email protected]",
"username": "ana.silva",
"firstName": "Ana",
"lastName": "Silva",
"password": "SenhaForte123"
}'
Resposta 201
{
"userId": "7f1c58a3-1234-4abc-8def-0123456789ab"
}
O usuário é criado no Keycloak com:
attributes.baasId = <baas_id do token>- role inicial
api-baasno clientapi-baas
A senha não é retornada na resposta e não é logada.
Consultar usuário
curl -X GET "https://api.example.com/baas-users/{id}" \
-H "Authorization: Bearer SEU_TOKEN" \
--cert client.pem --key client.key
Resposta
{
"user": {
"id": "7f1c58a3-1234-4abc-8def-0123456789ab",
"username": "ana.silva",
"email": "[email protected]",
"name": "Ana Silva",
"firstName": "Ana",
"lastName": "Silva"
},
"groups": [
{ "id": 12, "groupName": "Operações" }
],
"permissions": [
"api-baas",
"feerule.read",
"feerule.write"
]
}
Atualizar usuário
curl -X PUT "https://api.example.com/baas-users/{id}" \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
--cert client.pem --key client.key \
-d '{
"email": "[email protected]",
"firstName": "Ana",
"lastName": "Souza",
"password": "NovaSenhaForte123"
}'
Todos os campos do body são opcionais. username não é alterável.
Atualizar permissões
curl -X PUT "https://api.example.com/baas-users/{id}/permissions" \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
--cert client.pem --key client.key \
-d '{
"accessPermissions": ["api-baas", "feerule.read", "feerule.write"],
"accessGroups": ["12", "34"]
}'
accessPermissions: conjunto final de roles do clientapi-baas(substitui o anterior)accessGroups: ids numéricos dos access groups; no Keycloak viram gruposaccess-group-{id}
Excluir usuário
curl -X DELETE "https://api.example.com/baas-users/{id}" \
-H "Authorization: Bearer SEU_TOKEN" \
--cert client.pem --key client.key
Resposta: 204 No Content. Remove o usuário do Keycloak e o espelho local no banco BaaS.
Isolamento e segurança
- Credenciais
ACCOUNTrecebem403 - Usuários de outro
baasIdnão são acessíveis (403/404) - Nunca envie senhas em logs, webhooks ou tickets