Rollen mit der API erstellen

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

In diesem Thema wird erläutert, wie Sie über die Management API benutzerdefinierte Rollen erstellen und Nutzern Rollen zuweisen. Außerdem erfahren Sie, wie Sie Rollenzuweisungen über die API testen. Eine Übersicht über benutzerdefinierte Rollen finden Sie unter Benutzerdefinierte Rollen in der UI erstellen.

Informationen zur Berechtigungseinstellung

Rollenberechtigungen werden für Verwaltungs-API-URIs (nicht für Verwaltungs-UI-URIs) festgelegt. Wenn Sie beispielsweise PUT-, GET- und/oder DELETE-Berechtigungen für die App-Entwicklerentitäten in Ihrer Edge-Organisation festlegen möchten, legen Sie Berechtigungen für die Ressource /developers fest, da der Verwaltungs-API-Pfad für Entwickler https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers ist. (Sie müssen beim Definieren von Berechtigungen den Organisationsteil nicht in den Pfad aufnehmen, da Berechtigungen auf eine bestimmte Organisation beschränkt sind, wie die Verwaltungs-API-Aufrufe in diesem Thema zeigen.)

Sie können auch Berechtigungen für bestimmte Entitäten festlegen. Beispiel:

  • Wenn Sie Berechtigungen für einen einzelnen Entwickler festlegen möchten, legen Sie dies auf /developers/steve@example.com fest
  • Legen Sie für ein bestimmtes API-Produkt, z. B. das kostenlose API-Produkt, auf /apiproducts/free-api-product fest.
  • Für eine Schlüssel/Wert-Zuordnung in einer bestimmten Umgebung sollten Sie eine Berechtigung wie /environments/test/keyvaluemaps/fooMap oder /environments/test/keyvaluemaps/* für alle Schlüssel/Wert-Zuordnungen in der Testumgebung festlegen.

Die Berechtigungen, die Sie über die API festlegen:

  • Erlauben Sie Nutzern mit einer benutzerdefinierten Rolle, gemäß ihren Berechtigungen Verwaltungs-API-Aufrufe auszuführen. Wenn eine Rolle beispielsweise Lesezugriff auf alle API-Proxys zulässt, kann ein Nutzer mit dieser Rolle die List API Proxies API verwenden, nicht aber die Create an API Proxy API.
  • Festlegen, was Nutzer mit einer benutzerdefinierten Rolle in der Verwaltungsoberfläche sehen und tun können Beispielsweise wird durch den Lesezugriff auf API-Proxys der Zugriff auf die Schaltflächen „+API-Proxy“ und „Löschen“ auf der Seite „API-Proxys“ deaktiviert.

Die Ressourcen und Pfade, für die Sie Berechtigungen festlegen können, finden Sie in der Verwaltungs-API-Referenz unter den verschiedenen Ressourcen-URLs.

Vollständige Referenzinformationen zur Rollenverwaltung finden Sie in der API für Nutzerrollen.

Syntax und Rangfolge

Sie können das Sternchen-Platzhalterzeichen (*) verwenden, um „alles danach“ in einer Berechtigungseinstellung anzugeben. Wenn Sie jedoch nur Berechtigungen für eine übergeordnete Ressource festlegen (z. B. für /developers), ohne spezifischere Berechtigungen festzulegen (z. B. /developers/*), gilt die Berechtigung für alle Elemente ab /developers.

PUT dient auch als POST in den Berechtigungen.

Sie können allgemeine mit detaillierteren Berechtigungen für Ressourcen kombinieren. Wenn sich Berechtigungen überschneiden, haben die detaillierteren Einstellungen Vorrang. Angenommen, die folgenden Berechtigungen sind für die Rolle „developeradmin“ festgelegt:

  • PUT auf /developers
  • GET auf /developers/*

Das bedeutet, dass der Entwickleradministrator Folgendes tun kann:

  • Erstellen Sie einen Entwickler, aber aktualisieren Sie keine bestimmten Entwickler oder Unterentitäten (aufgrund der spezifischeren GET-Berechtigung in diesem Pfad).
  • Entwickler oder Unterentität abrufen, aber keine Liste aller Entwickler abrufen

Eine vollständige Liste der Berechtigungen, die Sie mit der API festlegen können, finden Sie in der Berechtigungsreferenz.

Erstellen Sie eine neue benutzerdefinierte Rolle mit dem Namen „Entwicklung“.

Erstellen Sie eine Entwicklungsrolle, damit Entwickler API-Proxys ansehen, erstellen und aktualisieren können.

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

Der Entwicklungsrolle Berechtigungen hinzufügen

Die Berechtigungen, die für eine ganze Gruppe von Edge-Artefakten (z. B. alle /apps, /apis, /apiproducts usw.) sowie für einzelne Artefakte (z. B. eine bestimmte Anwendung, einen API-Proxy oder ein API-Produkt) festgelegt werden können, sind GET, PUT und DELETE.

Mit GET können Nutzer alle APIs aufrufen, einschließlich API-Proxy-Konfigurationsdateien, zugehöriger Richtlinien, JavaScript- und XSLT-Dateien usw. Mit der PUT-Berechtigung für APIs können Entwickler API-Proxys erstellen, ändern, importieren, exportieren, bereitstellen und ihre Bereitstellung aufheben.

Das Pfadattribut gibt das Artefakt an, für das Sie die Berechtigungen festlegen. Beispiel: /applications, /apps, /apiproducts, /developers oder /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" ]}'

Rolle erstellen: Testen

Erstellen Sie eine Testrolle, damit Qualitätstechniker API-Proxys und deren Inhalte (z. B. Richtlinien) ansehen können.

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

Berechtigungen zur Testrolle hinzufügen

Mit GET können Nutzer alle APIs aufrufen, einschließlich ihrer Konfigurationsdateien sowie zugehöriger Richtlinien, JavaScript-, XSLT-Dateien usw. Durch das Hinzufügen dieser Berechtigung zur Rolle „Test“ ermöglichen wir Qualitätsentwicklern, die Inhalte der zu testenden APIs einzusehen. Nutzer in dieser Rolle können jedoch keine API-Proxys erstellen, ändern, importieren, exportieren, bereitstellen und deren Bereitstellung aufheben.

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

Bei einer lokalen Installation von Edge müssen folgende Mindestberechtigungen festgelegt werden, damit sich der Benutzer bei der Edge-Benutzeroberfläche anmelden kann:

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

Verwenden Sie den folgenden cURL-Befehl, um diese Berechtigungen festzulegen:

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

Dabei ist <ms-IP> die IP-Adresse oder der DNS-Name des Edge Management Servers.

Nutzer zur Testrolle hinzufügen

So stellen Sie einen Nutzer mit einer Nutzerrolle bereit:

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

APIs als Nutzer ansehen

Geben Sie die Identität des Nutzers an und stellen Sie eine Anfrage an API-Dienste, um API-Proxys anzusehen. Der Nutzer sollte die APIs und deren Inhalte sehen können.
$ 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

API als Nutzer in der Testrolle erstellen

Übernehmen Sie die Identität des Nutzers und stellen Sie eine Anfrage an die API-Dienste, um einen API-Proxy zu erstellen. Die Anfrage wird von API-Diensten abgelehnt, da der Nutzer mit der Rolle „Test“ keine APIs erstellen kann.

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

Nutzer zu Entwicklungsrolle hinzufügen

Stellen Sie dem Nutzer jetzt die Rolle "development" bereit.

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

API als Nutzer in Entwicklungsrolle erstellen

Geben Sie die Identität des Nutzers an und wiederholen Sie die Anfrage an die API-Plattform, um einen API-Proxy zu erstellen. Die Anfrage ist erfolgreich, da der Nutzer mit der Rolle „development“ APIs erstellen kann.

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

Nutzerrollen für einen Nutzer abrufen

Als Organisationsadministrator können Sie die Liste der Nutzerrollen für einen Nutzer (in allen Organisationen) jederzeit aufrufen:

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