Ada metode lain yang sangat aman. Ini sertifikat klien. Tahu bagaimana server menampilkan Sertifikat SSL ketika Anda menghubungi mereka di https? Server dapat meminta sertifikat dari klien sehingga mereka tahu klien tersebut sesuai dengan namanya. Klien menghasilkan sertifikat dan memberikannya kepada Anda melalui saluran aman (seperti masuk ke kantor Anda dengan kunci USB - sebaiknya kunci USB non-trojan).
Anda memuat kunci publik dari sertifikat klien sertifikat (dan sertifikat penandatangannya, jika perlu) ke server web Anda, dan server web tidak akan menerima koneksi dari siapa pun kecuali orang yang memiliki kunci pribadi yang sesuai untuk sertifikat itu tahu tentang. Ini berjalan di lapisan HTTPS, jadi Anda bahkan mungkin dapat sepenuhnya melewati autentikasi tingkat aplikasi seperti OAuth (bergantung pada kebutuhan Anda). Anda dapat mengabstraksi satu lapisan dan membuat Otoritas Sertifikat lokal dan menandatangani Permintaan Sertifikasi dari klien, memungkinkan Anda untuk melewati langkah-langkah 'buat mereka datang ke kantor' dan 'memuat sertifikat ke server'.
Sakit leher? Benar. Baik untuk semuanya? Nggak. Sangat aman? Ya.
Itu bergantung pada klien yang menjaga keamanan sertifikat mereka (mereka tidak dapat memposting kunci pribadi mereka secara online), dan biasanya digunakan saat Anda menjual layanan kepada klien daripada membiarkan siapa pun mendaftar dan terhubung.
Bagaimanapun, ini mungkin bukan solusi yang Anda cari (mungkin tidak jujur), tetapi ini adalah pilihan lain.
HTTP Basic + HTTPS adalah salah satu metode umum.
sumber
Jika memilih di antara versi OAuth, gunakan OAuth 2.0.
Token pembawa OAuth sebaiknya hanya digunakan dengan pengangkutan aman.
Token pembawa OAuth hanya seaman atau seaman transportasi yang mengenkripsi percakapan. HTTPS menjaga perlindungan dari serangan replay, jadi token pembawa juga tidak perlu melindungi dari replay.
Meskipun benar bahwa jika seseorang mencegat token pembawa Anda, mereka dapat menyamar sebagai Anda saat memanggil API, ada banyak cara untuk mengurangi risiko tersebut. Jika Anda memberikan token Anda masa kedaluwarsa yang lama dan mengharapkan klien Anda untuk menyimpan token secara lokal, Anda memiliki risiko token yang lebih besar dicegat dan disalahgunakan daripada jika Anda memberikan token Anda waktu kedaluwarsa yang singkat, meminta klien untuk memperoleh token baru untuk setiap sesi, dan menyarankan klien untuk tidak menyimpan token.
Jika Anda perlu mengamankan payload yang melewati beberapa peserta, Anda memerlukan sesuatu yang lebih dari HTTPS / SSL, karena HTTPS / SSL hanya mengenkripsi satu tautan grafik. Ini bukan kesalahan OAuth.
Token pembawa mudah diperoleh klien, mudah digunakan klien untuk panggilan API, dan banyak digunakan (dengan HTTPS) untuk mengamankan API yang dapat diakses publik dari Google, Facebook, dan banyak layanan lainnya.
sumber