Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
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 a través de la API. (Para obtener una descripción general de los roles personalizados, consulta Cómo crear roles personalizados en la IU).
Información sobre la configuración de permisos
Los permisos de rol se establecen en los URIs de la API de administración (no en los URIs 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 acceso de la API de administración para desarrolladores es https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers.
(No es necesario incluir la parte de la organización de la ruta de acceso cuando se definen los permisos, ya que
los permisos se limitan a una organización específica, como lo ilustran 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 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 clave-valor en un entorno específico, debes establecer el permiso en algo como
/environments/test/keyvaluemaps/fooMap, o/environments/test/keyvaluemaps/*para todos los mapas de clave-valor en el entorno de prueba.
Los permisos que estableces con la API permiten lo siguiente:
- Permiten que los usuarios de 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 List API Proxies, pero no la API de Create an API Proxy.
- Determinan lo que los usuarios de 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 +API Proxy y Delete en la página API Proxies.
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 User roles 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 estableces permisos solo en un recurso superior (como en /developers) sin establecer permisos más específicos (como /developers/*), el permiso se aplica a todo lo que sigue a /developers.
PUT también funciona como POST en los permisos.
Puedes combinar 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 rol developeradmin 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 en esa ruta de acceso)
- Obtener cualquier desarrollador o subentidad, pero no obtener una lista de todos los desarrolladores
Consulta 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 "development" 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 development
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 del proxy de API, las políticas asociadas, JavaScript, los 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" ]}'
Crea un rol: testing
Crea un rol 'testing' 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 testing
GET permite a los usuarios ver cualquier API, incluidos sus archivos de configuración, así como las políticas asociadas, JavaScript, los archivos XSLT, etcétera. Si agregamos este permiso al rol "testing", permitimos 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 establecer 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 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 testing
Para aprovisionar un usuario con un rol, haz lo siguiente:
$ 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"} ] }'
Visualiza las APIs como usuario
Toma la identidad del usuario y realiza 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
Crea una API como usuario con el rol testing
Toma la identidad del usuario y realiza 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 development
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 development
Toma la identidad del usuario y repite la solicitud a la plataforma de API para crear un proxy de API. La solicitud se realizará correctamente, 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"}'
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