Spis treści
Mechanizmy uwierzytelniania
Uwierzytelnianie w warstwie API odpowiada za potwierdzenie tożsamości podmiotu wykonującego zapytanie. Powszechnie stosowanymi mechanizmami są klucze API, tokeny OAuth 2.0 oraz certyfikaty wzajemnego uwierzytelniania TLS (mTLS) w środowiskach o podwyższonych wymaganiach bezpieczeństwa.
Wybór mechanizmu uwierzytelniania zależy od charakteru konsumenta API — integracje typu serwer-serwer często wykorzystują klucze API lub tokeny typu client credentials, natomiast integracje angażujące użytkownika końcowego opierają się na przepływach OAuth z udziałem przeglądarki.
Warstwa autoryzacji
Autoryzacja, w odróżnieniu od uwierzytelniania, określa zakres uprawnień przyznanych już zidentyfikowanemu podmiotowi. W architekturach API stosuje się najczęściej model oparty na zakresach (scopes) powiązanych z tokenem dostępu, ograniczających dostęp do konkretnych zasobów lub operacji.
W środowiskach z wieloma partnerami korzystającymi z tego samego API kluczowe jest odseparowanie danych poszczególnych klientów na poziomie logiki autoryzacyjnej, niezależnie od mechanizmu uwierzytelniania.
Ograniczanie ruchu (rate limiting)
Mechanizmy ograniczania liczby zapytań w jednostce czasu chronią infrastrukturę przed przeciążeniem oraz umożliwiają sprawiedliwy podział zasobów pomiędzy konsumentów API. Typowe podejścia obejmują limitowanie na poziomie klucza API, adresu IP lub konta partnera, z wykorzystaniem algorytmów takich jak token bucket czy sliding window.
Specyfika środowisk wieloklientowych
W architekturach wieloklientowych (multi-tenant) dodatkowym wymogiem jest zapewnienie izolacji danych między klientami korzystającymi z tej samej instancji API. Błędy w logice izolacji danych należą do najpoważniejszych zagrożeń w tego typu systemach, ponieważ mogą prowadzić do nieautoryzowanego dostępu do danych innego klienta.
Pytania i odpowiedzi
Czym różni się uwierzytelnianie od autoryzacji?
Uwierzytelnianie potwierdza tożsamość podmiotu wykonującego zapytanie, natomiast autoryzacja określa, do jakich zasobów i operacji dany podmiot ma prawo dostępu po potwierdzeniu tożsamości.
Dlaczego rate limiting jest istotny dla bezpieczeństwa API?
Ograniczanie liczby zapytań chroni infrastrukturę przed przeciążeniem, w tym przed próbami nadużyć takimi jak automatyczne skanowanie API czy ataki typu odmowa usługi.