Skip to main content
A Identity API gerencia parceiros e as aplicações deles. Use-a quando você gerencia parceiros pelas suas próprias ferramentas em vez do Console.

Antes de começar


Para gerenciar parceiros, um usuário precisa das permissões partners de plugin-identity: get para ler parceiros e catálogos de escopo, post para criar um parceiro, patch para alterar um e delete para excluir um. Gerenciar as aplicações dele precisa das permissões applications get, post e delete. O papel plugin-identity-editor-role tem todas elas.

As operações


Para saber quais dimensões um produto aceita em scope, leia o catálogo de escopo dele. Cada dimensão tem um name e as flags required, multi e explicit.

Os campos do parceiro


A resposta também traz id, applicationsCount, createdAt e updatedAt. Regras que valem para os campos:
  • product é o slug de produto que o catálogo de escopo do produto traz, como plugin-br-pix-jd.
  • Escreva actions como verbos HTTP em minúsculas: get, post, put, patch, delete.
  • resources × actions é um produto cartesiano completo. Para dar ações diferentes em recursos diferentes, envie mais de uma entrada para o mesmo produto.
  • O Access Manager recusa o curinga * em resources, actions e values. Liste os itens.
  • Um produto em scope também deve estar em permissions.
  • Um produto cujo catálogo de escopo declara dimensões precisa de pelo menos uma entrada de escopo em cada parceiro com permissões nesse produto. A exceção é uma entrada de permissões que tem apenas permissões que o produto reserva para parceiros: ela não precisa de escopo, e vale para o tenant inteiro. Sem uma entrada de escopo, o Access Manager recusa criar ou alterar o parceiro, com IDE-1060. Um parceiro guardado sem ela antes desta regra é recusado com 403 em toda requisição a esse produto, até você adicionar uma entrada de escopo.
  • Uma dimensão que o catálogo marca como required precisa de uma entrada de escopo em cada parceiro com permissões nesse produto, ou o Access Manager recusa com IDE-0001. Uma dimensão sem multi aceita apenas um valor, ou o Access Manager recusa com IDE-0002.
  • Para uma dimensão que o catálogo marca como explicit, uma permissão na coleção dessa dimensão precisa de uma entrada de escopo que liste os IDs dela. Sem ela, o Access Manager recusa com IDE-1052. O parceiro alcança só os IDs que você lista.
  • O Access Manager não confere se os values existem no produto. Use os identificadores que a própria API do produto retorna.
  • state é active ou suspended, nunca expired. Depois de validUntil, uma leitura ainda retorna o estado guardado.
  • Depois da data validUntil do parceiro, o Access Manager recusa as requisições dele, também com um token que ele já tem, e recusa tokens novos.

O campo de lista de IPs permitidos


ipAllowlist tem três significados no PATCH: Cada entrada da lista própria do parceiro deve ser um intervalo IPv4 de /24 ou mais estreito, ou um intervalo IPv6 de /48 ou mais estreito. Uma entrada mais ampla é recusada com IDE-1052. Uma entrada que o parceiro já tem não é verificada de novo. No POST, omita o campo ou envie null para usar a lista do seu tenant. Quando um parceiro tem uma lista de IPs própria, essa lista substitui a lista de IPs do tenant nas requisições do parceiro. validFrom e validUntil funcionam de forma parecida no PATCH. Omita um limite para mantê-lo, envie um instante para defini-lo ou envie null para removê-lo.

Exemplos


Troque os placeholders pela URL base da sua Identity API, pelo seu bearer token e por identificadores do seu próprio deploy.

Criar as aplicações do parceiro


Um parceiro chama um produto com uma aplicação que pertence a ele. Depois de criar o parceiro:
  1. Crie uma aplicação com Criar uma aplicação. Envie o id do parceiro em partnerId e o slug do produto em target, como plugin-br-pix-jd.
  2. A Identity API retorna o client secret somente na resposta que cria a aplicação. Guarde-o nesse momento. Se você perder o secret, exclua a aplicação e crie uma nova.
  3. Envie o client ID e o secret ao parceiro por um canal seguro.
  4. Repita os passos 1 a 3 para cada produto que o parceiro chama. Crie uma aplicação por produto.
Para listar as aplicações de um parceiro, envie o id dele no parâmetro de consulta partnerId de Listar aplicações. Se partnerId não nomear um parceiro do seu tenant, as duas operações retornam 404 com IDE-1046.

Alterar, suspender ou excluir um parceiro


  • No PATCH, envie apenas os campos que você altera. Uma lista permissions ou scope substitui a lista guardada inteira. Leia o parceiro antes e depois envie a nova lista completa.
  • Para suspender um parceiro, envie "state": "suspended". Para reativá-lo, envie "state": "active".
  • Suspender um parceiro no Access Manager interrompe o acesso dele, inclusive os tokens que ele já tem. Reativar o parceiro dentro da janela de validade dele restaura o acesso com as mesmas credenciais.
  • Quando uma alteração vale diz quando o parceiro vê uma alteração de permissões ou de escopo.
  • Você não pode excluir um parceiro que ainda tem aplicações. A resposta é 409 com IDE-1049, e a lista errors dela nomeia cada aplicação que bloqueia, com o client ID dela. Exclua essas aplicações antes.
  • Excluir uma aplicação faz os tokens dela pararem de funcionar.

Códigos de erro


Erros nas operações de parceiro: Para qualquer outro código, consulte a lista de erros do Access Manager.