Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an. info
In diesem Thema wird beschrieben, wie Sie benutzerdefinierte Rollen erstellen und Nutzern über die Management API Rollen zuweisen. Außerdem zeigen wir, wie Sie Rollenzuweisungen über die API testen. (Um einen Überblick über erhalten Sie unter Benutzerdefinierte Rollen erstellen UI.)
Berechtigungseinstellung
Rollenberechtigungen werden für Verwaltungs-API-URIs festgelegt, nicht für Verwaltungs-UI-URIs. Wenn Sie beispielsweise
Sie die PUT-, GET- und/oder DELETE-Berechtigungen für die App-Entwicklerentitäten in Ihrem Edge festlegen möchten.
Organisation, würden Sie Berechtigungen für die Ressource /developers
festlegen, da die
Verwaltungs-API-Pfad für Entwickler ist
https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers
.
Sie müssen den Teil des Pfads, der sich auf die Organisation bezieht, nicht angeben, 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, z. B. „free-api-product“, auf
/apiproducts/free-api-product
- Für eine Schlüssel/Wert-Zuordnung in einer bestimmten Umgebung können Sie eine Berechtigung für
/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:
- Nutzern mit einer benutzerdefinierten Rolle erlauben, die Verwaltungs-API zu erstellen Anrufen entsprechend ihren Berechtigungen. Wenn eine Rolle beispielsweise Lesezugriff auf alle API-Proxys zulässt, kann ein Nutzer mit dieser Rolle die List API Proxies API, aber nicht die Create an API Proxy API verwenden.
- Legen Sie fest, was Nutzer mit einer benutzerdefinierten Rolle auf der Verwaltungsoberfläche sehen und tun können. Beispiel: Der schreibgeschützte Zugriff auf API-Proxys deaktiviert den Zugriff auf die Schaltflächen "+ API-Proxy" und "Löschen" in der API. Seite „Proxys“.
Die Ressourcen und Pfade, für die Sie Berechtigungen festlegen können, finden Sie in der Referenz zur Verwaltungs-API unter den verschiedenen Ressourcen-URLs.
Ausführliche Informationen zur Rollenverwaltung finden Sie in der User roles API.
Syntax und Priorität
Mit dem Sternchen (*) können Sie in einer Berechtigungseinstellung „alles nach“ angeben. Wenn Sie jedoch nur Berechtigungen für eine übergeordnete Ressource (z. B. für /developers) festlegen, ohne genauere Berechtigungen (z. B. /developers/*) festzulegen, gilt die Berechtigung für alles ab /developers.
PUT dient in Berechtigungen auch als POST.
Sie können allgemeine und detailliertere Berechtigungen für Ressourcen kombinieren. Detailliertere Einstellungen haben Vorrang, wenn sich Berechtigungen überschneiden. Nehmen wir beispielsweise Folgendes an: Berechtigungen für „Entwickler-Admin“ festgelegt. Rolle:
- PUT auf /developers
- JETZT AUF /developers/* HERUNTERLADEN
Das bedeutet, dass der Entwickler die folgenden Aktionen ausführen kann:
- Erstellen Sie einen Entwickler, aber aktualisieren Sie keine bestimmten Entwickler oder Unterentitäten (aufgrund die spezifischere GET-Berechtigung für diesen Pfad.
- Sie können Daten zu einem beliebigen Entwickler oder einer beliebigen untergeordneten Entität abrufen, aber keine Liste aller Entwickler.
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 namens „development“.
Erstellen Sie die Rolle „Entwicklung“, damit Entwickler API-Proxys aufrufen, 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, API usw.) Proxy oder API-Produkt) 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 deren 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: testing
„Test“ erstellen Rolle, um Qualitätsentwicklern die Anzeige von API-Proxys und ihren Inhalten zu ermöglichen z. B. Richtlinien.
$ 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" } ] }'
Testrolle Berechtigungen hinzufügen
Mit GET können Nutzer alle APIs, einschließlich ihrer Konfigurationsdateien, sowie alle zugehörigen Richtlinien, JavaScript- und XSLT-Dateien usw. aufrufen. Durch das Hinzufügen dieser Berechtigung zum „testing“ Qualitätsentwicklungen die Möglichkeit, den Inhalt der APIs, Tests durchführen. Nutzer mit dieser Rolle können jedoch keine Elemente erstellen, ändern, importieren, exportieren, bereitstellen und die Bereitstellung von API-Proxys 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" ]}'
Für eine lokale Installation von Edge müssen mindestens die folgenden Berechtigungen festgelegt werden, damit sich der Nutzer in 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-Verwaltungsservers.
Nutzer zur Testrolle 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
Übernehmen Sie die Identität des Nutzers und stellen Sie eine Anfrage an API-Dienste, um API-Proxys aufzurufen. Der Nutzer sollte 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
Impersonieren Sie den Nutzer und senden Sie eine Anfrage an API-Dienste, um einen API-Proxy zu erstellen. Die Anfrage wird von API-Diensten 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 zur Entwicklerrolle hinzufügen
Weisen Sie dem Nutzer nun die Rolle „Entwicklung“ zu.
$ 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 Entwicklerrolle erstellen
Imitieren Sie den Nutzer und wiederholen Sie die Anfrage an die API-Plattform, um einen API-Proxy zu erstellen. Die Anfrage ist erfolgreich, da die Rolle „Entwicklung“ dem Nutzer das Erstellen von APIs erlaubt.
$ 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 Unternehmen) jederzeit verwenden:
$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles