Tworzenie ról przy użyciu interfejsu API

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

W tym temacie opisujemy, jak tworzyć role niestandardowe i przypisywać role użytkownikom za pomocą interfejsu Management API. Pokazujemy też, jak testować przypisania ról za pomocą interfejsu API. Omówienie ról niestandardowych znajdziesz w artykule o tworzeniu ról niestandardowych w interfejsie.

Informacje o ustawieniach uprawnień

Uprawnienia ról ustawia się w odniesieniu do identyfikatorów URI interfejsu zarządzania interfejsem API (a nie identyfikatorów URI interfejsu zarządzania). Jeśli na przykład chcesz ustawić uprawnienia PUT, GET lub DELETE dla encji programisty aplikacji w organizacji Edge, ustaw uprawnienia do zasobu /developers, ponieważ ścieżka interfejsu API zarządzania dla programistów to https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers. Podczas definiowania uprawnień nie musisz uwzględniać części ścieżki dotyczącej organizacji, ponieważ są one ograniczone do konkretnej organizacji, jak pokazano w wywołaniach interfejsu Management API w tym temacie.

Możesz też ustawić uprawnienia dotyczące określonych elementów. Na przykład:

  • Jeśli chcesz ustawić uprawnienia jednego dewelopera, ustaw je na /developers/steve@example.com
  • W przypadku konkretnej usługi API, takiej jak free-api-product, ustaw ją na /apiproducts/free-api-product
  • W przypadku mapy klucz-wartość w konkretnym środowisku należałoby ustawić uprawnienia dla elementu w rodzaju /environments/test/keyvaluemaps/fooMap lub /environments/test/keyvaluemaps/* do wszystkich map klucz-wartość w środowisku testowym.

Uprawnienia ustawione za pomocą interfejsu API:

  • Zezwalaj użytkownikom z rolą niestandardową na wywołania interfejsu API zarządzania zgodnie z ich uprawnieniami. Jeśli na przykład rola zezwala na dostęp tylko do odczytu do wszystkich serwerów proxy interfejsu API, użytkownik w tej roli może korzystać z interfejsu API List API Proxies, ale nie z interfejsu API Create an API Proxy.
  • Określ, co użytkownicy z rolą niestandardową mogą zobaczyć i zrobić w interfejsie zarządzania. Na przykład dostęp tylko do odczytu do serwerów proxy interfejsu API uniemożliwia dostęp do przycisków +Serwer proxy interfejsu API i Usuń na stronie serwerów proxy interfejsu API.

Aby zobaczyć zasoby i ścieżki, dla których możesz ustawiać uprawnienia, zapoznaj się z dokumentacją interfejsu API zarządzania zawierającą różne adresy URL zasobów.

Pełne informacje o zarządzaniu rolami znajdziesz w sekcji interfejsu API Role użytkownika.

Składnia i pierwszeństwo

Możesz też użyć symbolu wieloznacznego (*), aby wskazać „wszystko po” w ustawieniach uprawnień. Jeśli jednak ustawisz uprawnienia tylko do zasobu nadrzędnego (np. w katalogu /developers) bez określania bardziej szczegółowych uprawnień (np. /developers/*), uprawnienia będą miały zastosowanie do wszystkiego od /developers i późniejszych.

PUT służy też jako metoda POST w uprawnieniach.

Możesz łączyć uprawnienia ogólne z bardziej szczegółowymi uprawnieniami do zasobów. Bardziej szczegółowe ustawienia mają pierwszeństwo w przypadku pokrywania się uprawnień. Załóżmy na przykład, że dla roli „developeradmin” ustawiono te uprawnienia:

  • PUT na /developers
  • POBIERZ z /developers/*

Oznacza to, że administrator może:

  • Utwórz dewelopera, ale nie aktualizuj żadnych deweloperów ani podmiotów (z powodu bardziej szczegółowych uprawnień GET w tej ścieżce).
  • Uzyskaj dowolnego dewelopera lub podmiot podrzędny, ale nie uzyskaj listy wszystkich deweloperów.

Pełną listę uprawnień, które można ustawić przy użyciu interfejsu API, znajdziesz w dokumentacji uprawnień.

Utwórz nową rolę niestandardową o nazwie „programowanie”.

Utwórz rolę „projektowanie”, aby umożliwić programistom wyświetlanie, tworzenie i aktualizowanie serwerów proxy 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" } ] }'

Przyznaj uprawnienia do roli programisty

Uprawnienia, które można ustawić dla całej grupy artefaktów Edge (np. wszystkich /apps, /apis, /apiproducts itd.), a także do poszczególnych artefaktów (takich jak określona aplikacja, serwer proxy interfejsu API lub usługa API), to GET, PUT i DELETE.

GET umożliwia użytkownikom wyświetlanie dowolnych interfejsów API, w tym plików konfiguracji serwera proxy API, powiązanych zasad, plików JavaScript, plików SDF itd. Uprawnienie PUT w interfejsach API pozwala programistom tworzyć, modyfikować, importować, eksportować, wdrażać i wycofywać wdrożenia serwerów proxy API.

Atrybut ścieżki określa artefakt, do którego ustawiono uprawnienia. Na przykład /applications, /apps, /apiproducts, /developers lub /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" ]}'

Tworzenie roli: testowanie

Utwórz rolę „testowanie”, aby inżynierowie jakości mogli wyświetlać serwery proxy interfejsów API i ich zawartość (w tym na przykład zasady).

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

Dodaj uprawnienia do roli testowej

GET umożliwia użytkownikom wyświetlanie dowolnych interfejsów API, w tym plików konfiguracji, a także wszelkich powiązanych zasad, plików JavaScript, plików SDF itd. Dodając to uprawnienie do roli „testowanie”, umożliwiamy inżynierom ds. jakości wyświetlanie zawartości interfejsów API, które testują. Użytkownicy z tą rolą nie będą mogli jednak tworzyć, modyfikować, importować, eksportować, wdrażać ani wycofywać serwerów proxy interfejsu 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" ]}'

W przypadku lokalnej instalacji Edge minimalny zestaw uprawnień, który należy ustawić, aby umożliwić użytkownikowi logowanie się w interfejsie Edge, to:

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

Aby ustawić te uprawnienia, użyj tego polecenia cURL:

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

gdzie <ms-IP> to adres IP lub nazwa DNS serwera zarządzania brzegiem.

Dodaj użytkownika do roli testowej

Aby przydzielić użytkownikowi rolę użytkownika:

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

Wyświetl interfejsy API jako użytkownik

Podaj rolę użytkownika i wyślij żądanie do usług interfejsu API, aby wyświetlić serwery proxy API. Użytkownik powinien mieć możliwość wyświetlania interfejsów API wraz z ich zawartością.
$ 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

Utwórz interfejs API jako użytkownik w roli testowania

Odgrywaj rolę użytkownika i wysyłaj żądanie do usług interfejsu API, aby utworzyć serwer proxy interfejsu API. Żądanie zostanie odrzucone przez usługi interfejsu API, ponieważ rola „testowanie” nie zezwala użytkownikowi na tworzenie interfejsów 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"}'

Dodaj użytkownika do roli programisty

Teraz udostępnij użytkownikowi rolę „programowanie”.

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

Tworzenie interfejsu API jako użytkownik w roli programisty

Wciel się w użytkownika i powtórz żądanie do platformy API, aby utworzyć serwer proxy interfejsu API. Żądanie zostanie zrealizowane, ponieważ rola „programowanie” pozwala użytkownikowi na tworzenie interfejsów 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"}'

Pobieranie ról użytkownika

Jako administrator organizacji możesz w dowolnym momencie sprawdzić listę ról użytkownika (we wszystkich organizacjach):

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