Créer des rôles avec l'API

Vous consultez la documentation Apigee Edge.
Accédez à la documentation**Apigee X**.
info

Cette rubrique explique comment créer des rôles personnalisés et les attribuer à des utilisateurs via l' API de gestion. Nous vous montrons également comment tester les attributions de rôles via l'API. (Pour obtenir une présentation des rôles personnalisés, consultez la section Créer des rôles personnalisés dans l' interface utilisateur.)

À propos de la configuration des autorisations

Les autorisations de rôle sont définies sur les URI de l'API de gestion (et non sur les URI de l'interface utilisateur de gestion). Par exemple, si vous souhaitez définir des autorisations PUT, GET et/ou DELETE sur les entités de développeur d'applications dans votre organisation Edge , vous devez définir des autorisations sur la ressource /developers, car le chemin d'accès de l'API de gestion pour les développeurs est https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers. (Vous n'avez pas besoin d'inclure la partie de l'organisation dans le chemin d'accès lorsque vous définissez des autorisations, car celles-ci sont limitées à une organisation spécifique, comme l'illustrent les appels d'API de gestion de cette rubrique.)

Vous pouvez également définir des autorisations sur des entités spécifiques. Exemple :

  • Si vous souhaitez définir des autorisations pour un seul développeur, définissez-les sur /developers/steve@example.com
  • Pour un produit d'API spécifique, tel que free-api-product, définissez-les sur /apiproducts/free-api-product
  • Pour un mappage clé-valeur dans un environnement spécifique, vous devez définir une autorisation sur un élément tel que /environments/test/keyvaluemaps/fooMap, ou /environments/test/keyvaluemaps/* pour tous les mappages clé-valeur de l'environnement de test.

Les autorisations que vous définissez à l'aide de l'API :

  • permettent aux utilisateurs d'un rôle personnalisé d'effectuer des appels d'API de gestion selon leurs autorisations. Par exemple, si un rôle autorise l'accès en lecture seule à tous les proxys d'API, un utilisateur disposant de ce rôle peut utiliser l'API List API Proxies, mais pas l'API Create an API Proxy.
  • déterminent ce que les utilisateurs d'un rôle personnalisé peuvent voir et faire dans l'interface utilisateur de gestion. Par exemple, l'accès en lecture seule aux proxys d'API désactive l'accès aux boutons +API Proxy et Supprimer sur la page Proxys d'API.

Pour afficher les ressources et les chemins d'accès sur lesquels vous pouvez définir des autorisations, consultez la documentation de référence de l'API de gestion pour les différentes URL de ressources.

Consultez l'API User roles pour obtenir des informations de référence complètes sur la gestion des rôles.

Syntaxe et priorité

Vous pouvez utiliser le caractère générique astérisque (*) pour indiquer "tout ce qui suit" dans un paramètre d'autorisation. Toutefois, si vous ne définissez des autorisations que sur une ressource parente (par exemple, sur /developers) sans définir d'autorisations plus spécifiques (par exemple, /developers/*), l'autorisation s'applique à tout ce qui se trouve après /developers.

PUT sert également de POST dans les autorisations.

Vous pouvez combiner des autorisations générales et plus précises sur les ressources. Les paramètres les plus précis sont prioritaires en cas de chevauchement des autorisations. Par exemple, supposons que les autorisations suivantes soient définies sur un rôle "developeradmin" :

  • PUT sur /developers
  • GET sur /developers/*

Cela signifie que l'administrateur de développement peut :

  • créer un développeur, mais pas mettre à jour de développeurs spécifiques ni de sous-entités (en raison de l'autorisation GET plus spécifique sur ce chemin d'accès).
  • obtenir n'importe quel développeur ou sous-entité, mais pas obtenir la liste de tous les développeurs.

Consultez la documentation de référence sur les autorisations pour obtenir la liste complète des autorisations que vous pouvez définir avec l'API.

Créer un rôle personnalisé appelé "development"

Créez un rôle "development" pour permettre aux développeurs d'afficher, de créer et de mettre à jour des proxys d'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" } ] }'

Ajouter des autorisations au rôle de développement

Les autorisations qui peuvent être définies sur un groupe entier d'artefacts Edge (tels que tous les /apps, /apis, /apiproducts, etc.) ainsi que sur des artefacts individuels (tels qu'une application, un proxy d'API ou un produit d'API spécifiques) sont GET, PUT et DELETE.

GET permet aux utilisateurs d'afficher toutes les API, y compris les fichiers de configuration des proxys d'API, les règles associées, les fichiers JavaScript, XSLT, etc. L'autorisation PUT sur les API permet aux développeurs de créer, modifier, importer, exporter, déployer et annuler le déploiement de proxys d'API.

L'attribut path spécifie l'artefact sur lequel vous définissez les autorisations. Par exemple, /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" ]}'

Créer un rôle : testing

Créez un rôle 'testing' pour permettre aux ingénieurs qualité d'afficher les proxys d'API et leur contenu (y compris, par exemple, les règles).

$ 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" } ] }'

Ajouter des autorisations au rôle de test

GET permet aux utilisateurs d'afficher toutes les API, y compris leurs fichiers de configuration, ainsi que toutes les règles associées, les fichiers JavaScript, XSLT, etc. En ajoutant cette autorisation au rôle "testing", nous permettons aux ingénieurs qualité d'afficher le contenu des API qu'ils testent. Toutefois, les utilisateurs disposant de ce rôle ne pourront pas créer, modifier, importer, exporter, déployer ni annuler le déploiement de proxys d'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" ]}'

Pour une installation sur site d'Edge, l'ensemble minimal d'autorisations à définir pour permettre à l'utilisateur de se connecter à l'interface utilisateur Edge est le suivant :

{"path" : "/","permissions" : [ "get" ]}
{"path" : "/*","permissions" : [ ]}
{"path" : "/environments","permissions" : [ "get" ]}
{"path" : "/userroles","permissions" : [ "get" ]}

Utilisez la commande cURL suivante pour définir ces autorisations :

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"]
   }
  ]
}'

<ms-IP> correspond à l'adresse IP ou au nom DNS du serveur de gestion Edge.

Ajouter un utilisateur au rôle de test

Pour provisionner un utilisateur avec un rôle utilisateur :

$ 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"} ] }'

Afficher les API en tant qu'utilisateur

Empruntez l'identité de l'utilisateur et envoyez une requête à API Services pour afficher les proxys d'API. L'utilisateur doit pouvoir afficher les API, ainsi que leur contenu.
$ 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

Créer une API en tant qu'utilisateur disposant du rôle de test

Empruntez l'identité de l'utilisateur et envoyez une requête à API Services pour créer un proxy d'API. La requête sera rejetée par API Services, car le rôle "testing" ne permet pas à l'utilisateur de créer des 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"}'

Ajouter un utilisateur au rôle de développement

Provisionnez maintenant l'utilisateur avec le rôle "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"} ] }'

Créer une API en tant qu'utilisateur disposant du rôle de développement

Empruntez l'identité de l'utilisateur et répétez la requête à la plate-forme d'API pour créer un proxy d'API. La requête sera acceptée, car le rôle "development" permet à l'utilisateur de créer des 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"}'

Obtenir les rôles utilisateur d'un utilisateur

En tant qu'administrateur de l'organisation, vous pouvez consulter la liste des rôles utilisateur d'un utilisateur (dans toutes les organisations) à tout moment :

$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles