<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la documentation sur Apigee X. info
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 expliquons également comment tester les attributions de rôles via l'API. (Pour en savoir plus sur les 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 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 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 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 peut utiliser l'API List API Proxies (Liste des proxys d'API), mais pas l'API Create an API Proxy (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 mandataires d'API désactive l'accès aux boutons + Proxy d'API et Supprimer sur l'API Page "Proxies".
Pour afficher les ressources et les chemins pour lesquels vous pouvez définir des autorisations, consultez les différentes URL de ressources dans la documentation de référence de l'API de gestion.
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 à 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 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 développeur peut :
- Créez un développeur, mais ne mettez pas à jour de développeurs ni de sous-entités spécifiques (en raison de l'autorisation GET 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éez 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éez un rôle de test pour permettre aux ingénieurs qualité de consulter 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. Toutefois, les utilisateurs de ce rôle ne pourront pas créer, modifier, importer, exporter, déployer ni désinstaller 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 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"] } ] }'
où <ms-IP> 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 une API en tant qu'utilisateur avec le rôle de testeur
Impersonnez l'utilisateur et envoyez une requête aux services API pour créer un proxy d'API. La requête sera rejeté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 un utilisateur au rôle de développeur
Provisionnez maintenant l'utilisateur avec le rôle "développement".
$ 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 requête aboutit, car le rôle "développement" 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 d'une organisation, vous pouvez consulter la liste des rôles utilisateur organisations) à tout moment:
$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles