Rollen mit der API erstellen

Sie lesen gerade die Apigee Edge -Dokumentation.
Zur Apigee X -Dokumentation.
info

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

Berechtigungen festlegen

Rollenberechtigungen werden für Management API-URIs (nicht für Management 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 /developers Ressource fest, da der Management API-Pfad für Entwickler https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers ist. Sie müssen den Organisationsteil des Pfads nicht angeben, wenn Sie Berechtigungen definieren, da Berechtigungen auf eine bestimmte Organisation beschränkt sind, wie die Management 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 sie für /developers/steve@example.com fest.
  • Für ein bestimmtes API-Produkt wie „free-api-product“ legen Sie sie für /apiproducts/free-api-product fest.
  • Für eine Schlüssel/Wert-Zuordnung in einer bestimmten Umgebung legen Sie die Berechtigung für etwas wie /environments/test/keyvaluemaps/fooMap, oder /environments/test/keyvaluemaps/* für alle Schlüssel/Wert-Zuordnungen in der Test Umgebung fest.

Die Berechtigungen, die Sie mit der API festlegen:

  • Ermöglichen Nutzern in einer benutzerdefinierten Rolle, Management API Aufrufe entsprechend ihren Berechtigungen auszuführen. Wenn eine Rolle beispielsweise schreibgeschützten Zugriff auf alle API-Proxys ermöglicht, kann ein Nutzer mit dieser Rolle die API „List API Proxies“ verwenden, aber nicht die API „Create an API Proxy“.
  • Bestimmen, was Nutzer in einer benutzerdefinierten Rolle in der Management UI sehen und tun können. Durch schreibgeschützten Zugriff auf API-Proxys wird beispielsweise der Zugriff auf die Schaltflächen „+API Proxy“ und „Delete“ auf der Seite „API Proxies“ deaktiviert.

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

Vollständige Referenzinformationen zur Rollenverwaltung finden Sie in der User roles API.

Syntax und Vorrang

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

PUT dient in Berechtigungen auch als POST.

Sie können allgemeine mit detaillierteren Berechtigungen für Ressourcen kombinieren. Die detaillierteren Einstellungen haben Vorrang, wenn es zu einer Überschneidung der Berechtigungen kommt. Angenommen, die folgenden Berechtigungen sind für eine „developeradmin“-Rolle festgelegt:

  • PUT für /developers
  • GET für /developers/*

Das bedeutet, dass der Entwickleradministrator Folgendes tun kann:

  • Einen Entwickler erstellen, aber keine bestimmten Entwickler oder Unterentitäten aktualisieren (aufgrund von der spezifischeren GET-Berechtigung für diesen Pfad).
  • Jeden Entwickler oder jede 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.

Neue benutzerdefinierte Rolle „development“ erstellen

Erstellen Sie eine Rolle „development“, 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 Rolle „development“ Berechtigungen hinzufügen

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

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

Das Attribut „path“ gibt das Artefakt an, für das Sie die Berechtigungen festlegen. Beispiele: /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: „testing“

Erstellen Sie eine Rolle „testing“, damit Qualitätssicherer API-Proxys und deren Inhalte (einschließlich 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" } ] }'

Der Rolle „testing“ Berechtigungen hinzufügen

Mit GET können Nutzer alle APIs ansehen, einschließlich ihrer Konfigurationsdateien sowie aller zugehörigen Richtlinien, JavaScript-, XSLT-Dateien usw. Wenn wir diese Berechtigung der Rolle „testing“ hinzufügen, können Qualitätssicherer die Inhalte der APIs ansehen, die sie testen. Nutzer mit dieser Rolle können jedoch keine API-Proxys erstellen, ändern, importieren, exportieren, bereitstellen und die 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 sind die folgenden Berechtigungen mindestens erforderlich, damit sich der Nutzer in der Edge UI 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 Server.

Nutzer der Rolle „testing“ hinzufügen

So stellen Sie einem Nutzer eine 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

Nehmen Sie die Identität des Nutzers an und senden Sie eine Anfrage an API Services, um API-Proxys anzusehen. Der Nutzer sollte APIs zusammen mit ihren Inhalten ansehen 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 Rolle „testing“ erstellen

Nehmen Sie die Identität des Nutzers an und senden Sie eine Anfrage an API Services, um einen API-Proxy zu erstellen. Die Anfrage wird von API Services abgelehnt, da die Rolle „testing“ dem Nutzer nicht erlaubt, APIs zu erstellen.

$ 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 der Rolle „development“ 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 der Rolle „development“ erstellen

Nehmen Sie die Identität des Nutzers an und wiederholen Sie die Anfrage an die API-Plattform, um einen API-Proxy zu erstellen. Die Anfrage wird erfolgreich ausgeführt, da die Rolle „development“ dem Nutzer erlaubt, APIs zu erstellen.

$ 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 jederzeit die Liste der Nutzerrollen für einen Nutzer (für alle Organisationen) prüfen:

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