Como criar papéis com a API

Você está visualizando a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Este tópico discute como criar papéis personalizados e atribuir papéis a usuários por meio do API de gerenciamento. Também mostramos como testar atribuições de função pela API. (Para uma visão geral papéis personalizados, consulte Como criar papéis personalizados na IU.

Sobre a configuração de permissão

As permissões de função são definidas nos URIs da API de gerenciamento, não nos URIs da IU de gerenciamento. Por exemplo, se você quiser definir permissões PUT, GET e/ou DELETE nas entidades de desenvolvedor de apps na sua organização do Edge, defina permissões no recurso /developers, porque o caminho da API de gerenciamento para desenvolvedores é https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers. Não é necessário incluir a parte da organização do caminho ao definir permissões, porque as permissões são aplicadas a uma organização específica, como ilustram as chamadas de API de gerenciamento neste tópico.

Também é possível definir permissões em entidades específicas. Exemplo:

  • Se você quiser definir permissões para um único desenvolvedor, configure-as em /developers/steve@example.com
  • Para um produto de API específico, como free-api-product, defina-os no dia /apiproducts/free-api-product
  • Para um mapa de chave-valor em um ambiente específico, você definiria a permissão em algo como /environments/test/keyvaluemaps/fooMap ou /environments/test/keyvaluemaps/* para todos os mapas de chave-valor no ambiente de teste.

As permissões definidas usando a API:

  • Permita que os usuários em uma função personalizada criem a API de gerenciamento chamadas de acordo com as permissões. Por exemplo, se uma função permitir acesso somente leitura a todos os proxies de API, um usuário nessa função poderá usar a API List API Proxies, mas não a Create an API Proxy.
  • Determinar o que os usuários em uma função personalizada podem ver e fazer na interface de gerenciamento. Por exemplo: o acesso somente leitura aos proxies da API desativa o acesso aos botões + Proxy da API e Excluir na API página "Proxies".

Para conferir os recursos e caminhos em que você pode definir permissões, consulte a referência da API de gerenciamento nos diferentes URLs de recursos.

Consulte a API User roles para informações completas de referência sobre o gerenciamento de funções.

Sintaxe e precedência

Você pode usar o caractere curinga asterisco (*) para indicar "tudo depois" em uma configuração de permissão. No entanto, se você definir permissões apenas em um recurso pai (como /developers) sem definir permissões mais específicas (como /developers/*), a permissão será aplicada a tudo a partir de /developers.

PUT também serve como POST nas permissões.

É possível misturar permissões gerais e mais detalhadas nos recursos. As configurações mais granulares têm precedência quando há sobreposição de permissões. Por exemplo, suponha que as seguintes permissões estejam definidas em um papel "administrador de desenvolvedor":

  • PUT em /developers
  • GET em /developers/*

Isso significa que o administrador de desenvolvedores pode:

  • Crie um desenvolvedor, mas não atualize desenvolvedores específicos ou subentidades (por causa da permissão GET mais específica nesse caminho).
  • Encontrar qualquer desenvolvedor ou subentidade, mas não uma lista de todos os desenvolvedores.

Consulte a Referência de permissões para uma lista completa de permissões que você pode definir com a API.

crie um papel personalizado chamado "development"

Crie uma função de "desenvolvimento" para que os desenvolvedores possam visualizar, criar e atualizar proxies de API.

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "development" } ] }'

Adicionar permissões à função de desenvolvimento

As permissões que podem ser definidas em um grupo inteiro de artefatos do Edge (como todos os /apps, /apis, /apiproducts e assim por diante) e em artefatos individuais (como um app, um proxy ou um produto de API específico) são GET, PUT e DELETE.

O GET permite que os usuários visualizem todas as APIs, incluindo arquivos de configuração de proxy de API, de código aberto, JavaScript, arquivos impactantes e assim por diante. A permissão PUT em APIs permite que os desenvolvedores criem, modifiquem, importem, exportem, implantem e removam a implantação de proxies de API.

O atributo de caminho especifica o artefato em que você define as permissões. Por exemplo: /applications, /apps, /apiproducts, /developers ou /reports.

curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/development/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "put", "get" ]}'

Criar uma função: testes

Criar um "teste" para permitir que engenheiros de qualidade visualizem proxies de API e o conteúdo deles (incluindo, por exemplo, políticas).

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "testing" } ] }'

Adicionar permissões à função de teste

O GET permite que os usuários acessem qualquer API, incluindo os arquivos de configuração, bem como as políticas associadas, JavaScript, arquivos XSLT e assim por diante. Ao adicionar essa permissão à função "teste", permitimos que engenheiros de qualidade acessem o conteúdo das APIs que estão testando. No entanto, os usuários nessa função não poderão criar, modificar, importar, exportar, implantar e desimplantar proxies de API.

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/testing/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "get" ]}'

Para uma instalação local do Edge, o conjunto mínimo de permissões que precisam ser definidos como permitem que o usuário faça login na interface do usuário do Edge são:

{"path" : "/","permissions" : [ "get" ]}
{"path" : "/*","permissions" : [ ]}
{"path" : "/environments","permissions" : [ "get" ]}
{"path" : "/userroles","permissions" : [ "get" ]}

Use o comando cURL a seguir para definir essas permissões:

curl -H "Content-Type:application/json" -u email:password \
-X POST \
http://<ms-IP>:8080/v1/organizations/{org_name}/userroles/testing/resourcepermissions  \
-d '{
 "resourcePermission" : [ 
   {
    "path" : "/",
    "permissions" : [ "get" ]
   }, 
{
    "path" : "/*",
    "permissions" : []
   },
{
    "path" : "/environments",
    "permissions" : [ "get" ]
   },
   {
    "path" : "/userroles",
    "permissions" : [ "get"]
   }
  ]
}'

em que &lt;ms-IP&gt; é o endereço IP ou nome DNS do servidor de gerenciamento de borda.

Adicionar usuário à função de teste

Para provisionar um usuário com uma função:

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "testing"} ] }'

Visualizar APIs como usuário

Representar o usuário e fazer uma solicitação à API Serviços para visualizar proxies de API. O usuário precisa ter acesso às APIs e ao conteúdo delas.
$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis
$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/policies

Criar API como usuário na função de teste

Impersonar o usuário e fazer uma solicitação aos serviços de API para criar um proxy de API. A solicitação será rejeitada pelos Serviços de API, porque o papel "testing" não permite que o usuário crie APIs.

$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'

Adicionar usuário à função de desenvolvimento

Agora provisione o usuário com a função "desenvolvimento".

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "development"} ] }'

Criar API como usuário na função de desenvolvimento

Represente o usuário e repita a solicitação à plataforma de API para criar um proxy de API. O solicitação será bem-sucedida, já que o papel "development" não permite que o usuário crie APIs.

$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'

Receber funções de um usuário

Como administrador da organização, você pode verificar a lista de funções de um usuário (em todas organizações) a qualquer momento:

$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles