Tworzenie ról przy użyciu interfejsu API

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

W tym temacie opisano, jak tworzyć role niestandardowe i przypisywać je użytkownikom za pomocą interfejsu API zarządzania Google Analytics. Pokazujemy też, jak przetestować przypisania ról za pomocą interfejsu API. (Omówienie ról niestandardowych znajdziesz w artykule Tworzenie ról niestandardowych w interfejsie).

Informacje o ustawieniu uprawnień

Uprawnienia ról są ustawiane w identyfikatorach URI interfejsu API zarządzania Google Analytics (a nie w identyfikatorach URI interfejsu zarządzania). Jeśli na przykład chcesz ustawić uprawnienia PUT, GET lub DELETE dla encji deweloperów aplikacji w organizacji Edge, ustaw uprawnienia dla zasobu /developers, ponieważ ścieżka interfejsu API zarządzania Google Analytics dla deweloperów to https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers. (Nie musisz uwzględniać części ścieżki dotyczącej organizacji podczas definiowania uprawnień, ponieważ uprawnienia są ograniczone do konkretnej organizacji, co ilustrują wywołania interfejsu API zarządzania Google Analytics w tym temacie).

Możesz też ustawić uprawnienia dla konkretnych elementów. Na przykład:

  • Jeśli chcesz ustawić uprawnienia dla jednego dewelopera, ustaw je na /developers/steve@example.com
  • W przypadku konkretnego produktu interfejsu API, takiego jak free-api-product, ustaw je na /apiproducts/free-api-product.
  • W przypadku mapy klucz-wartość w konkretnym środowisku możesz ustawić uprawnienia na przykład dla /environments/test/keyvaluemaps/fooMap lub /environments/test/keyvaluemaps/* dla wszystkich map klucz-wartość w środowisku testowym.

Uprawnienia ustawione za pomocą interfejsu API:

  • Zezwalaj użytkownikom z rolą niestandardową na wykonywanie wywołań interfejsu API zarządzania Google Analytics 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 z tą rolą może używać interfejsu API List API Proxies, ale nie interfejsu API Create an API Proxy.
  • Określ, co użytkownicy z rolą niestandardową mogą widzieć i robić w interfejsie zarządzania. Na przykład dostęp tylko do odczytu do serwerów proxy interfejsu API wyłącza dostęp do przycisków +Serwer proxy interfejsu API i Usuń na stronie Serwery proxy interfejsu API.

Aby zobaczyć zasoby i ścieżki, dla których możesz ustawić uprawnienia, przejrzyj dokumentację interfejsu API zarządzania pod kątem różnych adresów URL zasobów.

Pełne informacje o zarządzaniu rolami znajdziesz w dokumentacji interfejsu API User roles (Role użytkowników).

Składnia i pierwszeństwo

Możesz użyć symbolu wieloznacznego (*) w ustawieniu zbioru uprawnień, aby wskazać „wszystko po”. Jeśli jednak ustawisz uprawnienia tylko w zasobie nadrzędnym (np. /developers) bez ustawiania bardziej szczegółowych uprawnień (np. /developers/*), uprawnienia będą dotyczyć wszystkiego, co znajduje się w /developers i dalej.

PUT działa też jako POST w uprawnieniach.

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

  • PUT na /developers
  • GET on /developers/*

Oznacza to, że administrator dewelopera może:

  • Utworzenie dewelopera, ale nie aktualizowanie żadnych konkretnych deweloperów ani żadnych podmiotów podrzędnych (ze względu na bardziej szczegółowe uprawnienie GET na tej ścieżce).
  • pobieranie informacji o dowolnym deweloperze lub podmiocie podrzędnym, ale nie listy wszystkich deweloperów;

Pełną listę uprawnień, które możesz ustawić za pomocą interfejsu API, znajdziesz w dokumentacji uprawnień.

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

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

Dodawanie uprawnień do roli programistycznej

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

GET umożliwia użytkownikom wyświetlanie wszystkich interfejsów API, w tym plików konfiguracji serwera proxy interfejsu API, powiązanych zasad, kodu JavaScript, plików XSLT itp. Uprawnienie PUT do interfejsów API umożliwia programistom tworzenie, modyfikowanie, importowanie, eksportowanie, wdrażanie i wycofywanie wdrożenia serwerów proxy interfejsu API.

Atrybut ścieżki określa artefakt, dla którego ustawiasz 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 umożliwić inżynierom ds. jakości wyświetlanie serwerów proxy interfejsu API i ich zawartości (w tym np. zasad).

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

Dodawanie uprawnień do roli testowej

GET umożliwia użytkownikom wyświetlanie wszystkich interfejsów API, w tym ich plików konfiguracyjnych, a także powiązanych zasad, plików JavaScript, XSLT itp. Dodając to uprawnienie do roli „testing”, umożliwiamy inżynierom ds. jakości wyświetlanie zawartości testowanych interfejsów API. Użytkownicy z tą rolą nie będą jednak mogli tworzyć, modyfikować, importować, eksportować, wdrażać ani wycofywać wdrożenia 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óre należy ustawić, aby umożliwić użytkownikowi zalogowanie 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 Edge.

Dodawanie użytkownika do roli testera

Aby udostępnić użytkownikowi rolę:

$ 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świetlanie interfejsów API jako użytkownik

Zasymuluj użytkownika i wyślij żądanie do usług interfejsu API, aby wyświetlić serwery proxy interfejsu 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

Tworzenie interfejsu API jako użytkownik z rolą testową

Podszyj się pod użytkownika i wyślij żądanie do usług interfejsu API, aby utworzyć serwer proxy interfejsu API. Żądanie zostanie odrzucone przez usługi interfejsu API, ponieważ rola „testing” nie 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"}'

Dodawanie użytkownika do roli programisty

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

$ 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 z rolą programisty

Podszyj się pod użytkownika i powtórz żądanie do platformy API, aby utworzyć serwer proxy interfejsu API. Żądanie zostanie zrealizowane, ponieważ rola „development” 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 każdej chwili 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