Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację
Apigee X. info
Z tego artykułu dowiesz się, jak tworzyć role niestandardowe i przypisywać je 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 Tworzenie ról niestandardowych w interfejsie).
Ustawianie uprawnień
Uprawnienia ról są ustawiane w identyfikatorach URI interfejsu Management API (a nie w identyfikatorach URI interfejsu zarządzania). Jeśli na przykład chcesz ustawić uprawnienia PUT, GET lub DELETE w przypadku encji deweloperów aplikacji w organizacji Edge, musisz ustawić uprawnienia w zasobie /developers, ponieważ ścieżka interfejsu Management API dla deweloperó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ż
uprawnienia są ograniczone do konkretnej organizacji, co pokazują wywołania interfejsu Management API w tym artykule
ilustrują.)
Możesz też ustawić uprawnienia dotyczące konkretnych encji. Na przykład:
- Jeśli chcesz ustawić uprawnienia dla jednego dewelopera, ustaw je w
/developers/steve@example.com - W przypadku konkretnego produktu API, np. free-api-product, ustaw je
w
/apiproducts/free-api-product. - W przypadku mapy klucz-wartość w konkretnym środowisku ustaw uprawnienia w ścieżce takiej jak
/environments/test/keyvaluemaps/fooMap, lub/environments/test/keyvaluemaps/*dla wszystkich map klucz-wartość w środowisku testowym.
Uprawnienia ustawiane za pomocą interfejsu API:
- Zezwalają użytkownikom z rolą niestandardową na wykonywanie wywołań interfejsu Management API zgodnie z ich uprawnieniami. Jeśli na przykład rola umożliwia dostęp tylko do odczytu do wszystkich serwerów proxy interfejsu API, użytkownik z tą rolą może używać interfejsu List API Proxies API, ale nie interfejsu Create an API Proxy API.
- Określają, 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 wyłącza dostęp do przycisków +API Proxy i Usuń na stronie Serwery proxy interfejsu API.
Aby zobaczyć zasoby i ścieżki, w których możesz ustawić uprawnienia, zapoznaj się z dokumentacją interfejsu Management API, w której znajdziesz różne adresy URL zasobów.
Pełne informacje o zarządzaniu rolami znajdziesz w dokumentacji interfejsu User roles API.
Składnia i pierwszeństwo
W ustawieniu uprawnień możesz użyć gwiazdki (*) jako symbolu wieloznacznego, aby wskazać „wszystko po”. Jeśli jednak ustawisz uprawnienia tylko w zasobie nadrzędnym (np. w /developers) bez ustawiania bardziej szczegółowych uprawnień (np. /developers/*), uprawnienie będzie dotyczyć wszystkiego od /developers i dalej.
W uprawnieniach PUT pełni też funkcję POST.
Możesz łączyć uprawnienia ogólne z bardziej szczegółowymi uprawnieniami dotyczącymi 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 w /developers
- GET w /developers/*
Oznacza to, że rola developeradmin może:
- utworzyć dewelopera, ale nie może aktualizować żadnych konkretnych deweloperów ani żadnych podencji (ze względu na bardziej szczegółowe uprawnienie GET w tej ścieżce);
- pobrać dowolnego dewelopera lub podencję, ale nie może pobrać listy wszystkich deweloperów.
Pełną listę uprawnień, które możesz ustawić za pomocą interfejsu API, znajdziesz w dokumentacji uprawnień.
Tworzenie nowej roli niestandardowej o nazwie „development”
Utwórz rolę „development”, aby umożliwić deweloperom 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 development
Uprawnienia, które można ustawić w całej grupie artefaktów Edge (np. wszystkie /apps, /apis, /apiproducts itp.) oraz w poszczególnych artefaktach (np. konkretna aplikacja, serwer proxy interfejsu API lub produkt API), to GET, PUT i DELETE.
GET umożliwia użytkownikom wyświetlanie wszystkich interfejsów API, w tym plików konfiguracyjnych serwera proxy interfejsu API, powiązanych zasad, plików JavaScript, XSLT itp. Uprawnienie PUT w interfejsach API umożliwia deweloperom tworzenie, modyfikowanie, importowanie, eksportowanie, wdrażanie i wycofywanie serwerów proxy interfejsu API.
Atrybut path określa artefakt, w którym 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: testing
Utwórz rolę „testing”, aby umożliwić inżynierom 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 testing
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 jakości wyświetlanie zawartości testowanych przez nich 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 instalacji Edge w lokalnej infrastrukturze minimalny zestaw uprawnień, które trzeba 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 testing
Aby przypisać 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
Zaloguj się jako użytkownik i wyślij żądanie do usług 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ą testing
Zaloguj się jako użytkownik i wyślij żądanie do usług API, aby utworzyć serwer proxy interfejsu API. Usługi API odrzucą żądanie, ponieważ rola „testing” nie pozwala użytkownikowi tworzyć 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 development
Teraz przypisz 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ą development
Zaloguj się jako użytkownik i powtórz żądanie do platformy API, aby utworzyć serwer proxy interfejsu API. Żądanie zostanie zrealizowane, ponieważ rola „development” pozwala użytkownikowi tworzyć interfejsy 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