unity wiedza

Czas czytania: 6 minut

WSO2 API Management: model ról, uprawnień, autoryzacja, analityka i cykl życia API

WSO 2 API Management post

Rozwiązania API Management są jednymi z elementów dojrzałej architektury integracyjnej. Udostępniają one funkcjonalności do zarządzania API dla wszystkich zainteresowanych stron (developerzy, administratorzy, konsumenci). W niniejszym artykule przedstawię krótko rozwiązanie, które z powodzeniem wykorzystujemy do tego celu w Unity – WSO2 API Manager.

Zarządzanie API i różne podejścia w tym zakresie

Na wstępie przedstawię jak rozumiane jest zarządzanie API i jakie są jego elementy:

  • udostępnianie katalogu API – miejsca (strony internetowej) gdzie API można zobaczyć, sprawdzić, ocenić, itd.,
  • zarządzanie cyklem życia API – tworzenie, prototypowanie, publikowanie, czy wyłączanie API,
  • load balancing[1],
  • limitacja dostępu do API – ustalenie kto i na jakich zasadach będzie miał dostęp do poszczególnych zasobów,
  • monitoring i dashboardy analityczne pokazujące m.in. statystyki wykorzystania API,
  • zabezpieczenie API (autentykacja i autoryzacja).

Oczywiście wyżej wymienione funkcjonalności mogą być realizowane również w inny sposób wykorzystując pewne frameworki/biblioteki programistyczne (np. Spring Boot, Swagger) lub dodatkowe narzędzia (np. Nginx, Prometheus). Korzystając z tego typu elementów większość podstawowych funkcjonalności można osiągnąć małym nakładem sił. Korzystanie z wymienionych (przykładowych) narzędzi/frameworków najczęściej nie wymaga również nabywania dodatkowej wiedzy przez programistów lub zespoły devops’owe (gdyż z reguły są one i tak używane do realizacji innych celów).

Każde z podejść (dedykowane rozwiązanie API Management oraz programistyczne narzędzia/frameworki) ma pewne cechy szczególne. Zalety API Management uwidaczniają się, gdy spojrzy się na API z punktu widzenia całej organizacji. Wtedy istotne staje się, aby nasze API były w jednolity i szybki sposób udostępniane, monitorowane i zabezpieczane. Dodatkowo rozwiązania API Management, jako dedykowane do tego celu, udostępniają szereg zaawansowanych funkcji, których realizacja „programistycznie” nie jest trywialna. Jeśli dołożymy do tego stale rosnącą popularność API, a także rozszerzalność wybranych rozwiązań API Management to nie dziwi, że są one coraz częstszym elementem architektury informatycznej w organizacjach.

Rozwiązania API Management są wykorzystywane zarówno do publikowania API wew. organizacji (w sieciach lokalnych) jak i udostępniania ich publicznie w Internecie. Publikowanie API na zewnątrz organizacji jest zupełnie zrozumiałe, nie tylko z uwagi na automatyzację wymiany danych z partnerami, ale również na takie koncepcje jak komercjalizacja (monetyzacja) API. Jednak równie istotne są API wewnętrzne. Są one wykorzystywane przez współpracujące zespoły developerskie i ujednolicony sposób i miejsce ich udostępnienia przyśpiesza pracę. Ma to coraz większe znaczenie wobec rosnącego znaczenia i popularności architektur mikroserwisowych.

Charakterystyka WSO2 API Management

Pełny opis rozwiązania WSO2 API Management znajduje się na stronie produktu. W niniejszej sekcji przedstawię jedynie krótką charakterystykę zwracając uwagę na najistotniejsze bądź najciekawsze kwestie.

Zarządzanie API oraz model ról i uprawnień

WSO2 API Management udostępnia 4 podstawowe konsole (strony www) umożliwiające wykonywanie poszczególnych operacji:
·   /carbon – konsola zarządzająca pozwalająca dodawać i modyfikować role i użytkowników, konfigurować API Managera i monitorować techniczne metryki (np. z JVM),
·   /publisher – konsola umożliwiająca publikowanie API i przeglądanie podstawowych danych statystycznych,
·   /admin – konsola pozwalająca konfigurować elementy związane z opublikowanymi API (np. custom’owe limitacje dostępu, alerty),
·   /store – konsola prezentująca opublikowane API (endpointy, konsola swaggerowa umożliwiająca testowanie, dokumentacja, SDK) i pozwalająca się do nich subskrybować

Model ról i uprawnień jest dość rozbudowany i pozwala tworzyć role (i przypisywać do nich użytkowników) uprawniające do wybranych akcji (ok 100 różnych uprawnień). Można więc utworzyć osobne role uprawniające do przeglądania statystyk, publikowania API, zarządzania serwerem, korzystania z API itd.

Autoryzacja / limitacja dostępu do API

Zabezpieczenie dostępu do API realizowane jest na wielu poziomach. Pierwszym z nich jest autoryzacja która realizowana jest najczęściej (w produkcyjnych rozwiązaniach) poprzez tokeny OAuth2 lub SAML. Możliwości jest więcej, a szczegóły można znaleźć na stronie produktu. Korzystając z scope’ów OAuth2 można również blokować dostęp do wybranych metod danego API.

Elementem nad którym warto się pochylić w tym zakresie jest limitacja czyli throttling. Pozwala ona na ograniczenie request’ów wysyłanych do API. Ograniczenia te mogą dotyczyć zarówno liczby request’ów jak i rozmiaru danych przesyłanych z/do API (np. w KB). Limitacji może podlegać całe API lub jedynie jego wybrane metody (np. w celu ochrony systemu backendowego przed nadmiarem obciążeniem). Limitować można również dostęp dla wybranych użytkowników (np. w związku z poziomem subskrypcji jaki mają wykupiony). Możliwość ustawienia limitacji na wielu poziomach daje dużą elastyczność w zakresie zabezpieczenia przed nadmiernym wykorzystaniem API.

Analityka

Statystyki API są dostępne „z paczki” – wymagają one jednak doinstalowania dedykowanego modułu (API Management Analytics lub Analytics & Stream Processing). Podstawowe wykresy pokazują informacje m.in. o liczbie request’ów wysyłanych do API przez poszczególnych klientów w czasie, liczbie nieudanych zapytań, publikowanych API, zasubskrybowanych użytkownikach.

Dodatkową możliwością jest skorzystanie z dedykowanego portalu pozwalającego na przygotowywanie dedykowanych dashboard’ów i wykresów dla poszczególnych użytkowników. Warto w tym miejscu zaznaczyć, że moduł analityczny oparty jest o silnik strumieni (stream processing). Pozwala to na pełną dowolność w zakresie tego co się stanie z danymi analitycznymi publikowanymi do strumieni. W najprostszym przypadku można zapisać je do zewnętrznej bazy dany i dalej „obrabiać” korzystając z innych narzędzi analitycznych (np. Power BI). W bardziej skomplikowanym scenariuszu można wyszukiwać w strumieniach pewnych anomalii i przygotować mechanizm alertów (np. mailowych) dotyczących np. wychwycenia niepożądanego korzystania z API.

Cykl życia API

Cykl życia API jest szczególnie istotny w sytuacji, gdy korzysta z niego wielu klientów. Każda zmiana API może bowiem oddziaływać i wymuszać modyfikację po stronie systemów i aplikacji klienckich. Modyfikując API każdorazowo należy więc się zastanowić czy powinno to być zrobione poprzez modyfikację, czy np. poprzez wydanie nowej wersji. Analogicznie deprecjonowanie, blokowanie i wyłączanie API powinno być zawsze wykonywane z rozwagą. WSO2 API Management wspiera zarządzanie cyklem życia API na wszystkich wymienionych wyżej etapach.

wso2 api lifecycle

Podsumowanie

Wobec postępującej digitalizacji i integracji rozwiązań informatycznych, a także wobec zmieniających się podejść do konstrukcji oprogramowania (mikroserwisy) znaczenie API stale rośnie. Odpowiednie zarządzanie API jest więc niezwykle istotne. Jednym ze sposobów na zarządzanie API są rozwiązania API Management umożliwiające udostępnianie, zabezpieczanie i monitorowanie API w ujednolicony sposób. W tej klasie rozwiązań wyróżnia się WSO2 API Management, które oprócz kompletnego i rozszerzalnego zestawu funkcjonalności jest dostępne w całości na licencji typu open-source.

unity

unity

Skontaktuj się z profesjonalnym doradcą IT

Napisz do nas

Wyrażam zgodę na przetwarzanie danych osobowych na zasadach określonych w polityce prywatności. Jeśli nie wyrażasz zgody na wykorzystywanie cookies we wskazanych w niej celach, w tym do profilowania, prosimy o wyłącznie cookies w przeglądarce lub opuszczenie serwisu. więcej

Akceptuj