Estás viendo la documentación de Apigee Edge.
Ir a la documentación de
Apigee X. info
En este tema, se analiza 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 a través de la API. (Para obtener una descripción general de los roles personalizados, consulta Crea roles personalizados en la IU).
Acerca de la configuración de permisos
Los permisos de rol se establecen en los URI de la API de Management (no en los URI de la IU de administración). Por ejemplo, si
deseas establecer permisos PUT, GET o DELETE en las entidades de desarrolladores de apps de tu organización
de Edge, debes establecer permisos en el recurso /developers, ya que la
ruta de la API de Management para los desarrolladores es
https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers.
No es necesario que incluyas la parte de la organización de la ruta de acceso cuando definas los permisos, ya que
estos se limitan 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, establécelos 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 pares clave-valor en un entorno específico, debes establecer el permiso en algo como
/environments/test/keyvaluemaps/fooMapo/environments/test/keyvaluemaps/*para todos los mapas de pares clave-valor en el entorno de pruebas.
Los permisos que estableces con la API:
- Permite que los usuarios con un rol personalizado realicen llamadas a la API de administración 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 Lista de proxies de API, pero no la API de Creación de un proxy de API.
- Determina lo que los usuarios con un rol personalizado pueden ver y hacer 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 página Proxies de API.
Para ver los recursos y las rutas de acceso en los que puedes establecer permisos, consulta la referencia de la API de administración 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 usar el comodín de asterisco (*) para indicar "todo lo que sigue" en un parámetro de configuración de permisos. Sin embargo, si configuras permisos solo en un recurso superior (como en /developers) sin configurar permisos más específicos (como /developers/*), el permiso se aplica a todo lo que esté en /developers y después.
PUT también funciona como POST en los permisos.
Puedes mezclar permisos generales con permisos más detallados en los recursos. La configuración más detallada tiene prioridad cuando hay una superposición de permisos. Por ejemplo, supongamos que se establecen los siguientes permisos 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 entidad secundaria (debido al permiso GET más específico en esa ruta de acceso).
- Obtener cualquier desarrollador o entidad secundaria, pero no una lista de todos los desarrolladores
Consulta la referencia de permisos para obtener una lista completa de los permisos que puedes establecer con la API.
Crea un nuevo rol personalizado llamado "development".
Crea un rol de "desarrollo" para permitir que los desarrolladores vean, creen y actualicen 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 al rol de desarrollo
Los permisos que se pueden configurar 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 que los usuarios vean cualquier API, incluidos los archivos de configuración del proxy de API, las políticas asociadas, JavaScript, los archivos XSLT, etcétera. El permiso PUT en las APIs permite que los desarrolladores creen, modifiquen, importen, exporten, implementen y anulen la implementación de proxies de API.
El atributo path 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 un rol de "prueba" para permitir que los ingenieros de calidad vean 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 al rol de prueba
GET permite que los usuarios vean cualquier API, incluidos sus archivos de configuración, así como cualquier política asociada, JavaScript, archivos XSLT, etcétera. Si agregas este permiso al rol de "pruebas", permites que los ingenieros de calidad vean el contenido de las APIs que están probando. 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 configurar para permitir que el usuario acceda a la IU de Edge es el siguiente:
{"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 de Edge.
Agrega un usuario al rol de prueba
Para aprovisionar a 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 las APIs como usuario
Suplantar la identidad del usuario y realizar una solicitud a los servicios de API para ver los proxies de API El usuario debería poder ver las APIs y 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 una 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 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"}'
Agrega un usuario al rol de desarrollo
Ahora, aprovisiona al usuario con el rol "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"} ] }'
Crea una API como usuario con el rol de desarrollo
Suplantar al usuario y repetir la solicitud a la plataforma de la API para crear un proxy de API La solicitud se realizará correctamente, ya que el rol "development" 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"}'
Obtén los roles de un usuario
Como administrador de la organización, puedes consultar la lista de roles de un usuario (en todas las organizaciones) en cualquier momento:
$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles