| Termin | Definicja |
|---|---|
| Tokeny API bez ograniczeń uprawnień (read/write/full access) | Tokeny API bez rozróżnienia read/write/full access nie pozwalają ograniczyć zakresu działań integracji. Zakres uprawnień zapisany w tokenie APIToken API jest poświadczeniem używanym przez program, skrypt lub usługę do uwierzytelniania żądań kierowanych do interfejsu programistycznego. Po zaakceptowaniu tokenu serwer może rozpoznać klienta oraz zdecydować, jakie operacje wolno mu wykonać. Jeżeli wszystkie tokeny mają ten sam, niepodzielny zakres read/write/full access, integracja otrzymuje uprawnienia szersze niż wymagane przez jej rzeczywiste zadanie. Token służący wyłącznie do pobierania danych może wtedy pozwalać także na ich zmianę albo usuwanie. Rozróżnienie read, write i full access powinno odpowiadać konkretnym operacjom udostępnianym przez API. Uprawnienie read obejmuje odczyt zasobów, write zwykle tworzenie lub modyfikowanie danych, a full access może dodatkowo obejmować usuwanie, zarządzanie użytkownikami, zmianę konfiguracji lub tworzenie kolejnych poświadczeń. Dokładne znaczenie tych nazw zależy od dokumentacji danego systemu, dlatego nie wolno zakładać, że identyczna etykieta ma taki sam zakres w każdym API. Istotne jest sprawdzenie, jakie endpointy i metody HTTP są faktycznie dostępne dla danego tokenu. Skutki techniczne nieograniczonego tokenuNajważniejszym problemem jest zwiększenie skutków przejęcia tokenu. Poświadczenie zapisane w kodzie, pliku konfiguracyjnym, historii powłoki, logu lub narzędziu automatyzującym może zostać ujawnione przez błąd aplikacji, nieprawidłowe uprawnienia do pliku albo przypadkowe opublikowanie repozytorium. Jeżeli taki token ma pełny dostęp, osoba lub proces, który go uzyska, może wykonywać wszystkie operacje dopuszczone przez konto właściciela. W praktyce może to oznaczać odczyt danych, zmianę rekordów, usunięcie zasobów albo modyfikację ustawień usługi. Brak ograniczenia utrudnia także ustalenie odpowiedzialności za operacje. Ten sam token może być używany przez kilka programów, środowisk lub zadań automatycznych, więc wpis w dzienniku audytowym wskazuje jedynie wspólne poświadczenie, a nie konkretny komponent. Dodatkowym skutkiem jest większy zakres awarii po błędzie programistycznym. Wadliwy skrypt wykonujący żądanie aktualizacji może zmienić dane poza swoim zamierzonym obszarem, jeżeli serwer nie ogranicza ani rodzaju operacji, ani zakresu zasobów. Projektowanie bezpieczniejszych tokenów dla integracjiZakres tokenu należy dopasować do minimalnego zestawu czynności wymaganych przez konkretną integrację. Klient raportowy powinien otrzymać wyłącznie możliwość odczytu, natomiast program zapisujący wyniki powinien mieć dostęp do wskazanych operacji zapisu, bez prawa usuwania danych lub zmiany konfiguracji. Jeżeli API obsługuje zakresy dla pojedynczych zasobów, warto ograniczyć token również do określonego projektu, katalogu, konta lub grupy rekordów. Takie podejście realizuje zasadę najmniejszych uprawnień: komponent dostaje tylko to, czego potrzebuje do działania. Tokeny powinny być rozdzielone według zastosowania i środowiska. Osobne poświadczenie dla testów, produkcji, kopii zapasowych i zadań administracyjnych pozwala szybciej zablokować jeden przypadek bez zatrzymywania pozostałych integracji. Należy przechowywać je w mechanizmie przeznaczonym do sekretów, a nie bezpośrednio w kodzie źródłowym. Warto również ustalić procedurę rotacji, czyli okresowej wymiany tokenu, oraz możliwość jego natychmiastowego unieważnienia. Po zmianie zakresu uprawnień trzeba sprawdzić, czy aplikacja nadal działa i czy nie wykonuje żądań wykraczających poza przyjęty model dostępu. Kontrola powinna obejmować także logi serwera i klienta. Dla każdego tokenu można porównywać oczekiwane operacje z rzeczywistymi żądaniami, zwracanymi kodami odpowiedzi oraz częstotliwością użycia. Nagły wzrost liczby żądań, próby dostępu do nieużywanych zasobów lub operacje zapisu wykonywane przez klienta tylko-do-odczytu są sygnałami wymagającymi wyjaśnienia. Same logi nie zastępują ograniczeń po stronie serwera, ale pomagają wykryć błędną konfigurację i ustalić moment, w którym token trzeba wycofać. Tokeny API a diagnostyka komputera i oprogramowaniaNa laptopie lub komputerze token może występować w aplikacji synchronizującej dane, narzędziu programistycznym, skrypcie automatyzującym albo rozszerzeniu korzystającym z zewnętrznej usługi. Podczas diagnostyki warto sprawdzić, gdzie aplikacja odczytuje poświadczenie, czy nie zapisuje go w komunikatach błędów oraz czy pliki konfiguracyjne nie mają zbyt szerokich praw dostępu. Należy też zweryfikować, czy program używa właściwego tokenu dla danego środowiska i czy po odinstalowaniu aplikacji stare poświadczenie zostało unieważnione po stronie usługi. Objawem problemu nie musi być wyłącznie komunikat o wycieku. Nieograniczony token może powodować nieoczekiwane zmiany danych, błędy autoryzacji po częściowej zmianie konfiguracji, powtarzające się próby dostępu lub zatrzymanie integracji po ręcznym odebraniu uprawnień. Analiza powinna łączyć informacje z aplikacji, systemu operacyjnego i samego API. Trzeba rozdzielić błąd lokalnego programu od odmowy serwera: kod HTTP 401 zwykle wskazuje na brak prawidłowego uwierzytelnienia, a kod 403 na rozpoznane poświadczenie bez wymaganego uprawnienia, choć ostateczna interpretacja zależy od dokumentacji konkretnej usługi. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, w ramach której można również sprawdzić działanie aplikacji korzystających z poświadczeń API oraz zidentyfikować problemy z konfiguracją oprogramowania na stanowisku użytkownika. |