Crea funciones con la API

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

En este tema, se analiza cómo crear roles personalizados y asignar roles a los usuarios a través de la API de Management. También mostramos cómo probar las asignaciones de roles a través de la API. (Para obtener una descripción general de las funciones personalizadas, consulta Crea funciones personalizadas en la IU).

Acerca de la configuración de permisos

Los permisos de función se establecen en los URI de la API de administración (no en los URI de la IU de administración). Por ejemplo, si deseas establecer permisos PUT, GET o DELETE en las entidades del desarrollador de apps de tu organización de Edge, debes establecer permisos en el recurso /developers, porque la ruta de la API de administración para desarrolladores es https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers. No es necesario que incluyas la parte de organización de la ruta cuando defines los permisos, ya que los permisos tienen alcance para una organización específica, como se muestra en las llamadas a la API de administración en este tema.

También puedes establecer permisos en entidades específicas. Por ejemplo:

  • Si deseas establecer permisos para un solo desarrollador, establécelos en /developers/steve@example.com.
  • Para un producto de API específico, como free-api-product, configúralo en /apiproducts/free-api-product.
  • Para un mapa de par clave-valor en un entorno específico, debes establecer permisos en algo como /environments/test/keyvaluemaps/fooMap o /environments/test/keyvaluemaps/* para todos los mapas de pares clave-valor en el entorno de pruebas.

Los permisos que configuras con la API son los siguientes:

  • Permite que los usuarios con una función personalizada realicen llamadas a la API de administración según sus permisos. Por ejemplo, si una función permite el acceso de solo lectura a todos los proxies de API, un usuario con esa función podría usar la API de List API Proxies, pero no la de Create an API Proxy.
  • Determina lo que pueden ver y hacer los usuarios con 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 +-API Proxy y Delete en la página Proxies de API.

Para ver las rutas y los recursos en los que puedes configurar permisos, consulta la referencia de la API de administración en las diferentes URL de recursos.

Consulta la API de Roles de usuario para obtener información de referencia completa sobre la administración de funciones.

Sintaxis y prioridad

Puedes usar el asterisco (*) como comodín para indicar "todo después" en una 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 desde /developers y las versiones posteriores.

PUT también sirve 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 se superponen los permisos. Por ejemplo, supongamos que los siguientes permisos están configurados en una función de “developeradmin”:

  • PUT en /developers
  • GET en /developers/*

Esto significa que developeradmin puede hacer lo siguiente:

  • Crear un desarrollador, pero no actualizar ningún desarrollador específico ni ninguna subentidad (debido al permiso GET más específico de esa ruta de acceso)
  • Obtener cualquier desarrollador o subentidad, pero no 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 “desarrollo”.

Crea un rol de “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 configurar en un grupo completo de artefactos de Edge (como todos /apps, /apis, /apiproducts, etc.) y en artefactos individuales (como una app específica, un proxy de API o un producto de API) son GET, PUT y DELETE.

GET permite a los usuarios ver cualquier API, incluidos los archivos de configuración de proxy de API, las políticas asociadas, 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 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" ]}'

Crear una función: pruebas

Crea una función de “prueba” para que los ingenieros de calidad puedan 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 las políticas asociadas, JavaScript, archivos XSLT, etcétera. Cuando se agrega este permiso a la función "prueba", los ingenieros de calidad pueden ver el contenido de las API que están probando. Sin embargo, los usuarios que cumplan esta función 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" ]}'

En una instalación local de Edge, los siguientes son los permisos mínimos que se deben establecer para permitir 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 configurar 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"]
   }
  ]
}'

En el ejemplo anterior, <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 rol del usuario a un 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 usuarios

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, 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

Crear una API como usuario en la función 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 APIs rechazarán la solicitud, ya que la función de prueba 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"}'

Agregar usuario a la función de desarrollo

Otórgale al usuario la función 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 una API como usuario en función de desarrollo

Suplantar la identidad del usuario y repetir la solicitud a la plataforma de API para crear un proxy de API La solicitud será exitosa, ya que la función de desarrollo permite que el usuario cree API.

$ 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 del usuario

Como administrador de una 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