Estás viendo la documentación de Apigee Edge.
Ve a la
Documentación de Apigee X. información
En este tema, se explica cómo crear roles personalizados y asignarlos a los usuarios a través de la API de administración. También mostramos cómo probar las asignaciones de roles con la API. (Para obtener una descripción general de los roles personalizados, consulta Cómo crear roles personalizados en la IU).
Información acerca de la configuración de permisos
Los permisos de rol se establecen en los URIs de la API de administración (no en los URI de la IU de administración). Por ejemplo, si
configurar permisos PUT, GET o DELETE en las entidades del desarrollador de apps en Edge
de tu organización, deberías establecer permisos en el recurso /developers
, ya que
de administración de identidades para desarrolladores es
https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers
(No necesitas incluir la parte de la organización de la ruta de acceso cuando definas los permisos, ya que estos se aplican a una organización específica, como se ilustra en las llamadas a la API de administración en este tema).
También puedes establecer permisos en entidades específicas. Por ejemplo:
- Si quieres establecer permisos en un solo desarrollador, configúralos en
/developers/steve@example.com
. - Para un producto de API específico, como free-api-product, configúralos en
/apiproducts/free-api-product
. - Para un mapa de par clave-valor en un entorno específico, deberías establecer permisos en algo como
/environments/test/keyvaluemaps/fooMap
o/environments/test/keyvaluemaps/*
para todos los mapas de par clave-valor de la prueba. en un entorno de nube.
Los permisos que estableces con la API son los siguientes:
- Permitir que los usuarios con un rol personalizado creen API de Management llamadas según sus permisos. Por ejemplo, si un rol permite el acceso de solo lectura a todos los proxies de API, un usuario con ese rol podría usar la API de List API Proxies, pero no la API de Create an API Proxy.
- Determinar qué pueden ver y hacer los usuarios de un rol personalizado en la IU de administración. Por ejemplo: El acceso de solo lectura a los proxies de API inhabilita el acceso a los botones + Proxy de API y Borrar en la API. Página de proxies
Para ver los recursos y las rutas para los que puedes establecer permisos, consulta la referencia de la API de Management en las diferentes URLs de recursos.
Consulta la API de Roles de usuario para obtener información de referencia completa sobre la administración de roles.
Sintaxis y precedencia
Puedes utilizar el comodín de asterisco (*) para indicar “todo lo que sigue”. en una configuración de permisos. Sin embargo, si configuras permisos solo en un recurso superior (como /developers) sin configurar permisos más específicos (como /developers/*), el permiso se aplica a todo desde /developers en adelante.
PUT también funciona como POST en los permisos.
Puedes combinar permisos generales con permisos más detallados sobre los recursos. La configuración más detallada tiene prioridad cuando hay una superposición de permisos. Por ejemplo, supongamos que los siguientes permisos están configurados en un rol "developeradmin":
- PUT en /developers
- GET en /developers/*
Esto significa que el administrador de desarrolladores puede hacer lo siguiente:
- Crear un desarrollador, pero no actualizar ningún desarrollador específico ni ninguna subentidad (debido a el permiso GET más específico para esa ruta).
- Obtener cualquier desarrollador o subentidad, pero no obtener una lista de todos los desarrolladores
Consulta la Referencia de permisos para obtener una lista completa de los permisos que puedes configurar con la API.
Crea un nuevo rol personalizado llamado "development".
Crea un “desarrollo” para que los desarrolladores puedan ver, crear y actualizar 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" } ] }'
Agrega permisos a la función de desarrollo
Los permisos que se pueden establecer en un grupo completo de artefactos de Edge (como todos los /apps, /apis, /apiproducts, etcétera), así como en artefactos individuales (como una app, un proxy de API o un producto de API específicos) son GET, PUT y DELETE.
GET permite a los usuarios ver cualquier API, incluidos los archivos de configuración de proxy de API, asociados políticas, JavaScript, archivos XSLT, etcétera. El permiso PUT en las APIs permite a los desarrolladores crear, modificar, importar, exportar, implementar y anular la implementación de proxies de API.
El atributo de ruta especifica el artefacto en el que estableces los permisos. Por ejemplo, /applications, /apps, /apiproducts, /developers o /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" ]}'
Crea un rol: pruebas
Crea una prueba rol que permite a los ingenieros de calidad ver los proxies de API y su contenido (incluidas, por ejemplo, las 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" } ] }'
Agrega permisos a la función de prueba
GET permite a los usuarios ver cualquier API, incluidos sus archivos de configuración, así como cualquier política asociada, JavaScript, archivos XSLT, etcétera. Al agregar este permiso "testing" permitimos que los ingenieros de calidad vean el contenido de las APIs y pruebas. Sin embargo, los usuarios con este rol no podrán crear, modificar, importar, exportar, implementar ni anular la implementación 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 una instalación local de Edge, el conjunto mínimo de permisos que se deben establecer como que permiten que el usuario acceda a la IU de Edge:
{"path" : "/","permissions" : [ "get" ]} {"path" : "/*","permissions" : [ ]} {"path" : "/environments","permissions" : [ "get" ]} {"path" : "/userroles","permissions" : [ "get" ]}
Usa el siguiente comando de cURL para establecer estos permisos:
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"] } ] }'
donde <ms-IP> es la dirección IP o el nombre de DNS del servidor de administración perimetral.
Agrega un usuario a la función de prueba
Para aprovisionar un usuario con un rol de usuario, sigue estos pasos:
$ 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 usuario
Roba la identidad del usuario y realiza una solicitud a los servicios de la API para ver los proxies de API. El usuario debería poder ver las APIs junto con su contenido.$ 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
Crea la API como usuario con el rol de prueba
Suplantar la identidad del usuario y realizar una solicitud a los servicios de API para crear un proxy de API Los servicios de API rechazarán la solicitud, ya que el rol "testing" no le permite al usuario crear 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"}'
Agregar usuario a la función de desarrollo
Ahora, aprovisiona al usuario con el rol de "desarrollo".
$ 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"} ] }'
Crear API como usuario en el rol de desarrollo
Roba la identidad del usuario y repite la solicitud a la plataforma de API para crear un proxy de API. La solicitud será exitosa, ya que el rol "development" permite que el usuario cree 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"}'
Cómo obtener roles para un usuario
Como administrador de la organización, puedes verificar la lista de roles de un usuario (en todas organizaciones) en cualquier momento:
$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles