Como criar papéis com a API

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

Este tópico discute como criar papéis personalizados e atribuir papéis a usuários por meio do API de gerenciamento. Também mostraremos como testar as 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 papel são definidas nos URIs da API de gerenciamento, e não nos URIs da interface de gerenciamento. Por exemplo, se você definir as permissões PUT, GET e/ou DELETE nas entidades de desenvolvedor de apps no Edge organização, você definiria permissões no recurso /developers, porque a o caminho da API de gerenciamento para desenvolvedores é https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers. Você não precisa incluir a parte de organização do caminho ao definir as permissões, porque As permissões têm o escopo definido para uma organização específica, já que as chamadas de API de gerenciamento neste tópico illustrate.)

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 permissão em algo como /environments/test/keyvaluemaps/fooMap ou /environments/test/keyvaluemaps/* para todos os mapas de chave-valor no teste de nuvem.
.

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 um papel permitir acesso somente leitura para todos os proxies de API, um usuário nessa função poderia usar a API List API Proxies, mas não o Crie uma API de proxy de API.
  • 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 Proxies.

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

Consulte a API Funções do usuário para informações de referência completas sobre o gerenciamento de funções.

Sintaxe e precedência

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

O método PUT também funciona como POST nas permissões.

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

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

Isso significa que o administrador do desenvolvedor pode:

  • Criar um desenvolvedor, mas não atualizar desenvolvedores específicos ou subentidades (devido a permissão GET mais específica desse 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 um "desenvolvimento" para permitir que os desenvolvedores visualizem, criem e atualizem 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 ao papel 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), bem como em artefatos individuais (como um app ou API específicos proxy ou produto da API) 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 LFC e assim por diante. A permissão PUT nas APIs permite que os desenvolvedores criar, modificar, importar, exportar, implantar e remover a implantação de proxies de API.

O atributo path 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 um papel: teste

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 ao papel de teste

O GET permite que os usuários visualizem todas as APIs, incluindo seus arquivos de configuração, bem como quaisquer políticas associadas, JavaScript, arquivos WebGL, e assim por diante. Ao adicionar essa permissão ao "teste" , os engenheiros de qualidade podem visualizar o conteúdo das APIs que estão testes. No entanto, os usuários nesse papel não poderão criar, modificar, importar, exportar, implantar e remover a implantação de 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 de usuário:

$ 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"} ] }'

Ver 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

Represente o usuário e faça uma solicitação aos serviços de API para criar um proxy de API. A solicitação será rejeitado pelos serviços da API, porque o papel "testing" não permite que o usuário crie APIs de terceiros.

$ 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, forneça ao usuário o papel de "desenvolvimento" de rede.

$ 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. A 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