Klucz API

Unikalny ciąg znaków uwierzytelniający aplikację lub użytkownika w interfejsie programistycznym. Jego wyciek pozwala obcym korzystać z usługi na cudzy rachunek.

Klucz API (ang. API key) to unikalny ciąg znaków, który identyfikuje i uwierzytelnia aplikację, usługę lub konkretnego użytkownika korzystającego z API (interfejsu programistycznego). W skrócie: to przepustka, którą Twój kod pokazuje przy wejściu do cudzej usługi, żeby serwer wiedział, kto puka i czy w ogóle ma prawo wejść. Najczęściej wygląda jak losowy bełkot w stylu sk_live_4eC39HqLyjWDarjtT1zdp7dc i właśnie ta losowość jest jego całą wartością.

Jak to działa i do czego służy

Kiedy Twoja aplikacja wysyła żądanie do API (np. po prognozę pogody albo po wygenerowanie tekstu), dołącza do niego klucz. Serwer sprawdza go w swojej bazie i na tej podstawie wie trzy rzeczy: kim jesteś, czy masz dostęp oraz ile już zużyłeś. Dzięki temu dostawca może liczyć Twoje zapytania, nakładać limity (rate limiting) i wystawiać rachunek.

Klucz API to mechanizm prostszy niż pełne uwierzytelnianie użytkownika. Sam w sobie zwykle nie szyfruje danych ani nie potwierdza tożsamości człowieka, a jedynie aplikacji. Dlatego najczęściej jedzie po HTTPS, gdzie szyfrowanie ogarnia warstwa transportowa, a klucz odpowiada tylko za pytanie: kto to wysłał.

Przykład z praktyki

Załóżmy, że pobierasz dane ze Stripe albo OpenAI. Klucz wkładasz zwykle do nagłówka żądania. W curl wygląda to tak:

curl https://api.openai.com/v1/models -H "Authorization: Bearer sk_live_TWOJ_KLUCZ"

W kodzie klucza nigdy nie wpisujesz na sztywno. Trzymasz go w zmiennej środowiskowej, np. w pliku .env, i czytasz przez process.env.API_KEY (Node.js) lub os.environ["API_KEY"] (Python). Plik .env dorzucasz do .gitignore, żeby nie wylądował w repozytorium.

Częste błędy i na co uważać

  • Wrzucenie klucza na GitHuba. Boty skanują publiczne repozytoria w kilkanaście sekund i potrafią naliczyć Ci rachunek na tysiące złotych, zanim zdążysz zauważyć.
  • Klucz w kodzie frontendu. Wszystko, co trafia do przeglądarki, jest jawne. Sekretne klucze trzymaj wyłącznie na backendzie.
  • Brak rotacji. Jeśli klucz wyciekł, nie panikuj, tylko go rewokuj i wygeneruj nowy. Większość dostawców pozwala mieć kilka kluczy naraz.
  • Mit, że klucz API to to samo co token OAuth. Nie jest. OAuth potwierdza tożsamość użytkownika i nadaje zakresy uprawnień, klucz API zwykle identyfikuje aplikację jako całość.

Traktuj klucz jak hasło: nie wysyłaj go na Slacku, nie loguj w konsoli i ogranicz mu uprawnienia, jeśli dostawca na to pozwala.

Pojęcia powiązane

Warto znać przy okazji: token (Bearer token, JWT), OAuth 2.0, uwierzytelnianie i autoryzacja, zmienne środowiskowe, rate limiting, sekrety (secrets management), HTTPS.