Pengantar Admin Auth API

Dengan Firebase Admin SDK, Anda dapat mengintegrasikan server Anda sendiri dengan Firebase Authentication. Anda dapat menggunakan Firebase Admin SDK untuk mengelola pengguna atau 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 Authentication 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 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.

Kelola pengguna

Pembuatan 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.

Buat 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 memberinya 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.

Verifikasi token ID

Klaim pengguna kustom

Firebase Admin SDK dapat Anda gunakan untuk 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 kustom 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