Créer des rôles avec l'API

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Cette rubrique explique comment créer des rôles personnalisés et attribuer des rôles aux utilisateurs via le l'API de gestion de projet. Nous vous montrerons également comment tester les attributions de rôles via l'API. (Pour obtenir un aperçu des rôles personnalisés, consultez la section Créer des rôles personnalisés dans le UI).

À propos du paramètre d'autorisation

Les autorisations de rôle sont définies sur les URI de l'API de gestion (et non sur les URI de l'UI 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 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" dans le chemin lorsque vous définissez des autorisations, car les autorisations sont étendues à une organisation spécifique, car les appels de l'API de gestion dans cette rubrique illustrate.)

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 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 définiriez une autorisation sur quelque chose comme /environments/test/keyvaluemaps/fooMap ou /environments/test/keyvaluemaps/* pour tous les mappages clé-valeur du test environnement.

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

  • Autoriser les utilisateurs disposant d'un rôle personnalisé à utiliser l'API de gestion des appels 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 disposant de ce rôle pourrait utiliser l'API List API Proxies, mais pas l'API Créez 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 mandataires d'API désactive l'accès aux boutons + Proxy d'API et Supprimer sur l'API Page "Proxys".

Pour voir les ressources et les chemins pour 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 User roles 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 (telle que /developers) sans en définissant des autorisations plus spécifiques (telles que /developers/*), l'autorisation s'applique à tout depuis /developers et après.

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 sont définies sur "developeradmin" rôle:

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

Cela signifie qu'il peut:

  • Créer un développeur, mais ne pas mettre à jour des développeurs spécifiques ni aucune sous-entité l'autorisation GET la plus spécifique sur ce chemin).
  • obtenir un développeur ou une 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éer un objet "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 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 (une application ou une API spécifique, proxy ou produit API) sont GET, PUT et DELETE.

GET permet aux utilisateurs d'afficher toutes les API, y compris les fichiers de configuration du proxy API, associées des règles, des fichiers JavaScript, des 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 "path" spécifie l'artefact pour 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éer un objet "test" rôle permettant 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 les stratégies associées, les fichiers JavaScript, les fichiers XSLT, etc. En ajoutant cette autorisation au "test" nous permettons aux ingénieurs qualité de visualiser le contenu des API qu'ils tests. Les utilisateurs dotés de ce rôle ne pourront toutefois pas créer, modifier, importer, exporter ni déployer et annuler le déploiement des 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 de Edge sur site, l'ensemble minimal d'autorisations qui doit être défini sur permettre à l'utilisateur de se connecter à l'interface utilisateur Edge sont:

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

&lt;ms-IP&gt; est l'adresse IP ou le nom DNS du serveur de gestion Edge.

Ajouter l'utilisateur au rôle de test

Pour attribuer un rôle utilisateur à un 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 à l'API Services permettant d'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 l'API en tant qu'utilisateur dans un rôle de test

Empruntez l'identité de l'utilisateur et demandez aux services d'API de créer un proxy d'API. La demande sera rejeté par les services d'API, car le rôle "test" n'autorise pas l'utilisateur à créer 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 "Développement"

Attribuez à l'utilisateur l'autorisation "development" rôle de ressource.

$ 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 dans le rôle de développement

Empruntez l'identité de l'utilisateur et répétez la demande à la plate-forme d'API pour créer un proxy d'API. La que votre demande 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 des rôles utilisateur pour un utilisateur

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

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