Créer des rôles avec l'API

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Cet article explique comment créer des rôles personnalisés et les attribuer aux utilisateurs via l'API de gestion. Nous vous expliquons é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 du paramètre d'autorisation

Les autorisations des rôles 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éveloppement d'applications de votre organisation Edge, vous devez définir des autorisations sur la ressource /developers, car le chemin d'accès à l'API de gestion pour les développeurs est https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers. (Il n'est pas nécessaire d'inclure la partie organisation du chemin 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 présentés dans 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 de clé-valeur dans un environnement spécifique, vous devez définir l'autorisation sur un niveau tel que /environments/test/keyvaluemaps/fooMap ou /environments/test/keyvaluemaps/* pour tous les mappages de clés-valeurs de l'environnement de test.

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

  • Autorisez les utilisateurs disposant d'un rôle personnalisé à effectuer des appels d'API de gestion en fonction de leurs autorisations. Par exemple, si un rôle autorise un accès en lecture seule à tous les proxys d'API, un utilisateur doté de ce rôle peut utiliser l'API List API Proxies, mais pas l'API Créer un proxy d'API.
  • Déterminez 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 +Proxy d'API et Supprimer sur la page Proxies de l'API.

Pour connaître les ressources et les chemins sur lesquels vous pouvez définir des autorisations, consultez la documentation de référence de l'API de gestion sur les différentes URL de ressources.

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

Syntaxe et priorité

Vous pouvez utiliser un caractère générique astérisque (*) pour indiquer "tout ce qui suit" dans un paramètre d'autorisation. Toutefois, si vous définissez des autorisations uniquement sur une ressource parente (par exemple, sur /developers) sans définir d'autorisations plus spécifiques (telles que /developers/*), l'autorisation s'applique à tout, à partir de /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 prévalent en cas de chevauchement des autorisations. Par exemple, supposons que les autorisations suivantes soient définies sur un rôle "developeradmin" :

  • PUT sur /developers
  • OBTENIR sur /developers/*

Cela signifie que l'administrateur du développeur peut:

  • Créez un développeur, mais ne mettez pas à jour des développeurs spécifiques ni aucune sous-entité (en raison de l'autorisation GET plus spécifique sur ce chemin).
  • Permet d'obtenir n'importe quel développeur ou sous-entité, mais pas 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é "développement"

Créez un rôle de développement 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 pouvant être définies sur un groupe entier d'artefacts Edge (comme tous les /apps, /apis, /apiproducts, etc.) ainsi que sur des artefacts individuels (tels qu'une application spécifique, un proxy d'API ou un produit d'API) sont GET, PUT et DELETE.

GET permet aux utilisateurs d'afficher toutes les API, y compris les fichiers de configuration du proxy d'API, les règles associées, JavaScript, les fichiers 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 de chemin d'accès 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: test

Créez un rôle "Test" pour permettre aux ingénieurs chargés de la 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 les règles associées, JavaScript, les fichiers XSLT, etc. En ajoutant cette autorisation au rôle "Test", nous permettons aux ingénieurs chargés de la 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 Edge sur site, l'ensemble minimal d'autorisations qui doivent être définis 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 l'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

Emprunter l'identité de l'utilisateur et envoyer une requête aux services d'API pour afficher les proxys d'API. L'utilisateur doit pouvoir afficher les API et 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 en phase de test

Emprunter l'identité de l'utilisateur et envoyer une requête aux services d'API pour créer un proxy d'API. La requête sera refusée par les services d'API, car le rôle "test" 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 l'utilisateur au rôle de développement

Attribuez maintenant le rôle "development" à l'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" : "development"} ] }'

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

Empruntez l'identité de l'utilisateur et répétez la requête auprès de la plate-forme d'API pour créer un proxy d'API. La requête aboutira, 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 à tout moment consulter la liste des rôles utilisateur attribués à un utilisateur (dans toutes les organisations) :

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