Você está lendo 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 aos usuários pela API Management. Também mostramos como testar atribuições de papéis pela API. Para uma visão geral dos papéis personalizados, consulte Como criar papéis personalizados na interface.
Sobre a configuração de permissões
As permissões de papel são definidas em URIs da API Management (não em URIs da interface 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 Management 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
elas são definidas para uma organização específica, como ilustram as chamadas da API Management neste tópico
.
Também é possível definir permissões em entidades específicas. Por exemplo:
- Se você quiser definir permissões em um único desenvolvedor, defina-as em
/developers/steve@example.com - Para um produto de API específico, como free-api-product, defina-as
em
/apiproducts/free-api-product - Para um mapa de chave-valor em um ambiente específico, defina 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:
- Permitem que os usuários em um papel personalizado façam chamadas da API Management de acordo com as permissões. Por exemplo, se um papel permitir acesso somente leitura a todos os proxies de API, um usuário nesse papel poderá usar a API List API Proxies, mas não a API Create an API Proxy.
- Determinam o que os usuários em um papel personalizado podem ver e fazer na interface de gerenciamento. Por exemplo, o acesso somente leitura aos proxies de API desativa o acesso aos botões +API Proxy e Delete na página API Proxies.
Para conferir os recursos e caminhos em que é possível definir permissões, consulte a referência da API Management nos diferentes URLs de recursos.
Consulte a API User roles para informações de referência completas sobre o gerenciamento de papéis.
Sintaxe e precedência
É possível 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 em /developers) sem definir permissões mais específicas (como /developers/*), a permissão será aplicada a tudo de /developers em diante.
PUT também serve como POST em permissões.
É possível misturar permissões gerais com permissões mais granulares em recursos. As configurações mais granulares têm precedência quando há uma sobreposição de permissões. Por exemplo, suponha que as seguintes permissões sejam definidas em um papel "developeradmin":
- PUT em /developers
- GET em /developers/*
Isso significa que o developeradmin pode:
- Criar um desenvolvedor, mas não atualizar nenhum desenvolvedor específico ou subentidade (devido a permissão GET mais específica nesse caminho).
- Receber qualquer desenvolvedor ou subentidade, mas não receber uma lista de todos os desenvolvedores.
Consulte a Referência de permissões para uma lista completa de permissões que podem ser definidas com a API.
Criar um novo papel personalizado chamado "development"
Crie um papel "development" 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, proxy de API ou produto de API específico) são GET, PUT e DELETE.
O GET permite que os usuários visualizem qualquer API, incluindo arquivos de configuração de proxy de API, políticas associadas , JavaScript, arquivos XSLT 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 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
Crie um papel "testing" para permitir que os 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 qualquer API, incluindo arquivos de configuração, bem como quaisquer políticas associadas, JavaScript, arquivos XSLT e assim por diante. Ao adicionar essa permissão ao papel "testing", permitimos que os engenheiros de qualidade visualizem o conteúdo das APIs que estão testando. 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 definidas para permitir que o usuário faça login na interface do Edge é:
{"path" : "/","permissions" : [ "get" ]}
{"path" : "/*","permissions" : [ ]}
{"path" : "/environments","permissions" : [ "get" ]}
{"path" : "/userroles","permissions" : [ "get" ]}Use o seguinte comando cURL 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 <ms-IP> é o endereço IP ou o nome DNS do servidor de gerenciamento do Edge.
Adicionar usuário ao papel de teste
Para provisionar um usuário com um papel 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"} ] }'
Visualizar APIs como usuário
Represente o usuário e faça uma solicitação aos serviços de API para visualizar proxies de API. O usuário poderá visualizar APIs e o 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 no papel 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á rejeitada pelos serviços de API, já que 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 ao papel de desenvolvimento
Agora provisione o usuário com o papel "development".
$ 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 no papel de desenvolvimento
Represente o usuário e repita a solicitação para a plataforma de API para criar um proxy de API. A solicitação será bem-sucedida, já que o papel "development" 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 papéis de usuário para um usuário
Como administrador da organização, você pode conferir a lista de papéis de usuário para um usuário (em todas as organizações) a qualquer momento:
$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles