Pular para o conteúdo principal
Um parceiro pode chamar o Midaz com uma credencial própria. No Midaz, você restringe essa credencial a uma organização e, se quiser, a alguns itens dentro dela. Esta página mostra como escolher esse escopo, o que cada escolha alcança e o que o parceiro recebe quando sai dele. Todo parceiro do Midaz precisa de escopo. A organização é sempre obrigatória.

Passo a passo


1

Escolha onde o parceiro atua

Escolha o escopo mais estreito que cobre o que o parceiro precisa. Cada linha é uma restrição que você pode adicionar. O campo na API é o field de uma entrada de escopo; o Console mostra o nome da primeira coluna.O catálogo de escopo lista todas as restrições do Midaz, inclusive as que não estão nesta tabela. Leia-o com Consultar o catálogo de escopo de um produto para midaz.Algumas regras valem para todo escopo:
  • Uma requisição que não nomeia um item de um tipo restrito é recusada quando atua sobre o que essa restrição limita. Por exemplo, um parceiro restrito a alguns ledgers não pode listar todos os ledgers da organização dele. Uma requisição fora do que a restrição limita só precisa da organização.
  • Uma requisição que lista vários valores, como vários aliases num corpo ou numa query, é recusada quando qualquer um deles está fora do escopo.
  • As rotas que atuam sobre o tenant inteiro, como listar organizações ou ler configurações do tenant, são recusadas a todo parceiro.
2

Dê ao parceiro as permissões e o escopo

Crie o parceiro, ou altere-o, no Console ou com a API do Identity. O identificador do produto é midaz.
  • Adicione a entrada de escopo da organização, com exatamente um valor. Sem ela, o Access Manager recusa o parceiro com 400 e IDE-0001. Com duas organizações, recusa com IDE-0002.
  • Adicione as outras restrições que você escolheu no passo 1.
  • Marque os recursos e as ações. O máximo que você pode dar é o que o papel midaz-editor-role tem no seu tenant. Acima disso, o Access Manager recusa com IDE-1043.
O Access Manager confere cada escrita que você dá contra o escopo:
  • Uma escrita que atua sobre o tenant inteiro, como criar uma organização, nunca é dada a um parceiro.
  • Uma escrita que atua acima do escopo do parceiro é recusada. Por exemplo, um parceiro restrito a um ledger não pode receber o direito de criar, alterar ou excluir ledgers, titulares, ou rotas de operação e de transação: essas escritas atuam sobre a organização inteira.
  • As duas recusas respondem 400 com IDE-1056. O Console marca a linha como Fora do escopo.
Para dar leitura das rotas de operação ou de transação, liste os IDs das rotas no escopo. Sem eles, o Access Manager recusa o parceiro com 400 e IDE-1052. O Access Manager não confere se o ID de uma rota pertence ao ledger do parceiro: o parceiro lê toda rota cujo ID você lista. Liste só as rotas dos ledgers dele.Não dê transactions com post a um parceiro restrito só por carteira, segmento ou titular. O Access Manager aceita, mas toda transação desse parceiro é recusada.
3

Crie a aplicação dele no Midaz

Crie a aplicação do parceiro com o produto midaz. Veja Criar as aplicações do parceiro no guia da API, ou no Console. Envie o client ID e o client secret ao parceiro por um canal seguro.
4

Diga ao parceiro como nomear os itens dele

O parceiro nomeia os itens dele nos paths, queries e corpos que o Midaz já tem. Nada extra é enviado. Estes casos pedem atenção:
  • Contas filtradas por carteira, segmento ou titular. Envie portfolio_id, segment_id ou holder_id na query da lista de contas.
  • Contas de um titular. Envie ledger_id na query, com um ledger dentro do escopo. A resposta traz só as contas desse ledger.
  • Contas novas. Um parceiro restrito por carteira ou segmento envia a própria portfolioId ou segmentId no corpo. Um parceiro restrito por conta envia uma das próprias contas em parentAccountId.
  • Transações nas rotas /v2/transactions (direct, hold, block, unblock e batch). Todo débito e todo crédito nomeia uma organização e um ledger dentro do escopo. Um parceiro restrito por alias só pode usar os próprios aliases nos dois lados, então ele só move dinheiro entre as próprias contas.
  • Transações nas rotas de ledger da /v1 (json, outflow, annotation, block e unblock). Os aliases de origem em send.source.from[].accountAlias têm que ser do parceiro.
Nas rotas de transação da /v1, só as contas de origem são conferidas. Um parceiro restrito por alias pode enviar dinheiro dos próprios aliases para qualquer conta do ledger dele. Para mantê-lo entre as próprias contas, dê a ele só as rotas /v2/transactions, ou não dê transactions com post.
Um parceiro restrito por conta ou alias não pode usar estas rotas de transação: inflow na /v1, e confirmar, cancelar, reverter, alterar, ler por ID ou listar. Ele pode criar uma retenção, mas não pode confirmá-la nem cancelá-la. Um parceiro restrito por ID de conta não pode criar transações nas rotas da /v1. Para deixá-lo mover dinheiro de contas específicas, restrinja-o por alias.
5

Confirme que funciona

Esta conferência supõe que o parceiro tem o recurso accounts com a ação get no Midaz, e um escopo restrito a uma organização e a um ou mais ledgers dela. Use a credencial do parceiro. Liste as contas de um ledger dentro do escopo dele. A resposta é 200:
Envie a mesma requisição com um ledger da mesma organização que está fora do escopo. A resposta é 403 com o código AUT-1020.

Se algo falhar


A resposta não diz se foram as permissões ou o escopo que recusaram a requisição. Isso é proposital: um parceiro não consegue usar uma recusa para descobrir quais itens existem fora do escopo dele. Para todos os outros códigos, veja a lista de erros do Midaz. Para as recusas ao criar ou alterar um parceiro, veja os códigos de erro no guia da API.