Authentication
Authentication adalah proses memverifikasi identitas pemanggil melalui kredensial yang dapat divalidasi. Pada API, proses ini membantu membedakan pemanggil yang dikenali dari request tanpa kredensial valid. Authorization kemudian menentukan tindakan dan resource yang boleh diakses.
Authentication pada API
Pada APIs, autentikasi memvalidasi kredensial pemanggil. API key biasanya mengidentifikasi aplikasi atau proyek, bukan otomatis pengguna manusia. Key dapat membantu atribusi penggunaan dan kuota jika server menerapkan pencatatan serta pembatasannya.
API key dan Basic Authentication adalah mekanisme kredensial; OAuth 2.0 adalah framework authorization; JWT adalah format token. Istilah tersebut bukan kategori yang setara. Untuk login berbasis OAuth, OpenID Connect menyediakan lapisan identitas.
Authentication does not replace authorization on each request menjelaskan batas utamanya: kredensial valid tidak memberikan izin ke semua resource. Kontrol granular memerlukan pemeriksaan scope, role, kepemilikan objek, atau kebijakan lain pada server.
OpenAPI Specification dapat mendokumentasikan skema keamanan API, tetapi tidak menegakkannya. Lindungi kredensial dengan HTTPS, jangan sertakan secret dalam URL atau log, dan sediakan rotasi serta pencabutan.
Token Authentication menjelaskan penggunaan token pada request berikutnya serta batas expiry, logout, dan pencabutan. Cookie-Based Authentication membahas pengiriman kredensial melalui browser, session server, dan proteksi CSRF.
Pembahasan lanjutan
SAML menjelaskan pertukaran assertion antara identity provider dan service provider untuk login federatif.
Authentication Strategies membandingkan pendekatan autentikasi, pengelolaan session dan token, MFA, serta risiko penerapannya. Halaman ini berfokus pada pengantar authentication untuk API.
Sumber
- Authentication Strategies: pembahasan strategi dan sumber riset yang mendasarinya.
- OWASP Authorization Cheat Sheet: pemeriksaan izin pada setiap request.