Dengan Firebase Admin SDK, Anda dapat mengintegrasikan server Anda sendiri dengan Firebase Authentication. Anda dapat menggunakan Firebase Admin SDK untuk mengelola pengguna atau untuk mengelola token autentikasi. Anda beberapa alasan mengapa Anda sebaiknya melakukan hal ini:
Pengelolaan Pengguna
Bukan hal yang praktis jika Anda harus selalu mengunjungi Firebase console untuk mengelola pengguna Firebase Anda. API pengelolaan pengguna admin menyediakan akses terprogram untuk pengguna yang sama tersebut. Dengan akses terprogram ini, Anda juga dapat melakukan berbagai hal yang tidak dapat dilakukan di Firebase console, misalnya mengambil data lengkap pengguna dan mengubah sandi, alamat email, atau nomor telepon pengguna.
Autentikasi Kustom
Anda dapat mengintegrasikan sistem pengguna eksternal dengan Firebase. Misalnya, Anda mungkin sudah memiliki database pengguna yang sebelumnya ada atau ingin mengintegrasikan dengan penyedia identitas pihak ketiga yang tidak didukung oleh Firebase Authentication secara default.
Untuk melakukannya, Anda dapat membuat token khusus dengan klaim arbitrer yang mengidentifikasi pengguna. Token kustom ini pun kemudian dapat digunakan untuk login ke layanan Firebase Authentication yang ada di aplikasi klien dan mengambil identitas yang dijelaskan oleh klaim token. Setelah itu, identitas ini akan digunakan saat mengakses layanan Firebase lain, seperti Cloud Storage.
Verifikasi Identitas
Tujuan utama Firebase Authentication adalah untuk mengidentifikasi pengguna aplikasi Anda agar dapat membatasi akses ke layanan lainnya, seperti Cloud Storage. Anda juga dapat menggunakan layanan tersebut untuk mengidentifikasi pengguna ini di server Anda sendiri. Dengan begitu, Anda dapat menjalankan logika di sisi server dengan aman atas nama pengguna yang telah login dengan Firebase Authentication.
Untuk melakukannya, Anda dapat mengambil token ID dari aplikasi
klien yang login dengan Firebase Authentication dan menyertakan token tersebut dalam permintaan ke
server Anda. Server Anda kemudian memeriksa token ID dan mengekstrak klaim yang
mengidentifikasi pengguna (termasuk uid
mereka, penyedia identitas yang mereka gunakan
untuk login, dsb.). Informasi identitas ini kemudian dapat digunakan server Anda untuk melakukan tindakan atas nama pengguna.
Firebase Admin SDK menyediakan metode untuk menyelesaikan tugas autentikasi di atas dengan mengizinkan Anda untuk mengelola pengguna, menghasilkan token kustom, dan memverifikasi token ID.
Klaim Pengguna Kustom
Dalam beberapa kasus, Anda dapat menerapkan kontrol akses yang sangat mendetail untuk pengguna yang sudah login dengan salah satu penyedia Firebase seperti Email/Sandi, Google, Facebook, ponsel, dll. Kemampuan ini dapat diterapkan melalui gabungan klaim pengguna kustom dan aturan keamanan aplikasi. Misalnya, pengguna yang login dengan penyedia Email dan Sandi Firebase Authentication dapat memiliki kontrol akses yang ditentukan menggunakan klaim kustom.
Pengelolaan pengguna
Firebase Admin SDK menyediakan API untuk mengelola pengguna Firebase Anda dengan hak istimewa yang ditingkatkan. Dengan API pengelolaan pengguna admin, Anda dapat mengambil, membuat, memperbarui, dan menghapus pengguna dengan program tanpa memerlukan kredensial pengguna yang sudah ada dan tanpa mengkhawatirkan pembatasan kapasitas di sisi klien.
Mengelola penggunaPembuatan token kustom
Tujuan utama dari pembuatan token kustom adalah untuk mengizinkan pengguna melakukan autentikasi saat dihadapkan dengan mekanisme autentikasi eksternal atau yang lama. Ini bisa saja mekanisme autentikasi yang Anda kontrol, misalnya seperti server LDAP Anda atau penyedia OAuth pihak ketiga yang tidak didukung oleh Firebase secara default, seperti Instagram atau LinkedIn.
Firebase Admin SDK memiliki metode bawaan untuk membuat token kustom. Anda juga dapat membuat token khusus dengan program dalam bahasa apa pun menggunakan library JWT pihak ketiga.
Server Anda harus membuat token kustom dengan sebuah ID unik (uid
) dan
meneruskan token tersebut ke aplikasi klien yang akan menggunakannya untuk login ke
Firebase. Baca
Membuat token kustom
untuk melihat contoh kode dan detail lainnya tentang proses pembuatan token kustom.
Verifikasi token ID
Jika aplikasi klien Firebase Anda berkomunikasi dengan server backend, Anda mungkin harus mengidentifikasi pengguna yang saat ini login di server Anda agar dapat menjalankan logika sisi-server atas nama mereka. Anda dapat melakukan ini secara aman menggunakan token ID yang dibuat Firebase saat pengguna login ke aplikasi Firebase. Token ID sesuai dengan spesifikasi OpenID Connect dan berisi data untuk mengidentifikasi pengguna, serta beberapa informasi terkait autentikasi dan profil lainnya. Anda dapat mengirim, melakukan verifikasi, dan memeriksa token tersebut dari backend Anda sendiri. Dengan begitu, Anda dapat secara aman mengidentifikasi pengguna yang saat ini login dan memberi mereka izin ke resource backend Anda sendiri.
Firebase Admin SDK memiliki metode bawaan untuk memverifikasi Token ID. Anda juga dapat melakukan verifikasi token ID dengan program dalam bahasa apa pun menggunakan library JWT pihak ketiga. Baca Memverifikasi token ID untuk mengetahui informasi dan contoh kode lebih lanjut tentang proses verifikasi token ID.
Klaim pengguna kustom
Dengan Firebase Admin SDK, Anda dapat menetapkan atribut khusus pada akun pengguna. Dengan klaim pengguna kustom, Anda dapat memberi pengguna berbagai tingkat akses (peran), yang kemudian diterapkan dalam aturan keamanan aplikasi.
Setelah dimodifikasi pada pengguna melalui Firebase Admin SDK, klaim khusus akan diterapkan pada semua pengguna terautentikasi di sisi klien melalui token ID mereka. Token ID merupakan mekanisme tepercaya untuk mengirimkan klaim kustom ini, dan semua akses terautentikasi harus memvalidasi token ID sebelum memproses permintaan terkait.
Kontrol Akses dengan Klaim Kustom