In May 2016, we released the newest version of Google Identity Toolkit as Firebase Authentication, and in April 2019, we released Google Cloud's Identity Platform. These products include upgraded client SDKs, open source UI libraries, session management and integrated email sending service for forgotten password flows.

On June 30, 2020, the SDKs documented on this page and the API setting page will stop functioning. (The https://identitytoolkit.googleapis.com/... and https://securetoken.googleapis.com/... endpoints, used by Identity Platform and Firebase Authentication, will continue to function.)

To migrate an existing project from Identity Toolkit, see the Identity Platform migration guide or Firebase Authentication migration guide.

Melakukan migrasi dari Google Identity Toolkit ke Platform Identitas Google Cloud

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Versi terbaru Google Identity Toolkit telah dirilis sebagai Platform Identitas dan Firebase Authentication. Ke depannya, pekerjaan fitur di Identity Toolkit akan dibekukan; semua pengembangan fitur baru akan dilakukan di Identity Platform dan Firebase Authentication. Sebaiknya developer Identity Toolkit berpindah ke platform ini segera setelah penerapannya praktis untuk aplikasi mereka.

Fitur Baru

Identity Platform sudah memiliki peningkatan fitur yang signifikan dibandingkan Google Identity Toolkit:

  • Konsol admin baru

    Identity Platform memiliki konsol developer baru yang memungkinkan Anda melihat, mengubah, dan menghapus pengguna. Platform ini dapat membantu melakukan proses login dan pendaftaran. Konsol ini juga memungkinkan Anda mengonfigurasi metode autentikasi dan menyesuaikan template email.

  • Metode baru Authentication

    Identity Platform mendukung standar federasi perusahaan, seperti SAML dan OIDC, sehingga Anda dapat menskalakan aplikasi dan layanan SaaS. Identity Platform juga menawarkan dukungan untuk penyedia seperti GitHub, Microsoft, Yahoo, dan lainnya. Anda dapat menggunakan login secara anonim untuk membuat ID pengguna unik tanpa mengharuskan pengguna untuk melalui proses login atau pendaftaran. Dengan begitu, Anda dapat melakukan panggilan API yang diautentikasi seperti halnya dengan pengguna biasa. Saat pengguna memutuskan untuk mendaftarkan akun, semua aktivitas akan dipertahankan dengan ID pengguna yang sama. Hal ini berguna untuk skenario seperti keranjang belanja sisi server atau aplikasi lain yang ingin Anda libatkan pengguna sebelum mengirimkannya melalui alur pendaftaran.

  • Lakukan penskalaan dengan yakin menggunakan Perjanjian Tingkat Layanan dan Dukungan Cloud

    Identity Platform dibangun di atas infrastruktur Google yang tepercaya, serta menyediakan Perjanjian Tingkat Layanan dan dukungan dari Google Cloud. Artinya, Anda dapat menskalakan layanan dengan percaya diri, dan mengandalkan Google untuk memberikan ketahanan, ketersediaan, dan skalabilitas yang Anda butuhkan.

  • Akses ke seluruh Firebase

    Firebase adalah platform seluler yang membantu Anda lebih cepat mengembangkan aplikasi berkualitas tinggi, menambah basis pengguna, dan menghasilkan lebih banyak uang. Firebase terdiri dari fitur pelengkap yang dapat Anda padu padankan sesuai kebutuhan dan mencakup infrastruktur untuk: analisis seluler, pesan cloud, database realtime, penyimpanan file, hosting statis, konfigurasi jarak jauh, pelaporan error seluler, dan pengujian Android ..

  • UI yang Diperbarui

    Kami telah sepenuhnya membangun ulang alur UI berdasarkan riset UX terbaru Google. Ini mencakup pemulihan sandi, penautan akun, alur disambiguasi akun baru/yang sudah ada, yang sering kali memerlukan waktu signifikan untuk dikodekan dan di-debug. Integrasi ini mengintegrasikan Smart Lock untuk Sandi di Android, yang meningkatkan konversi login dan pendaftaran secara signifikan untuk aplikasi yang berpartisipasi. Ini juga mendukung modifikasi tema yang mudah agar cocok dengan aplikasi Anda, dan untuk penyesuaian maksimum, versi Android dan iOS telah menjadi open source.

  • Penyiapan server yang disederhanakan

    Dengan Identity Toolkit, kami melihat bahwa banyak developer memilih untuk tidak menerapkan alur pemulihan email, sehingga pengguna tidak dapat memulihkan akun jika lupa sandi. Identity Platform dapat mengirimkan verifikasi email, reset sandi, dan pesan sandi yang diubah kepada pengguna dan teks dapat dengan mudah disesuaikan untuk pengguna. Selain itu, Anda tidak perlu lagi menghosting widget UI untuk menghosting pengalihan dan menyelesaikan operasi perubahan sandi.

  • SDK Baru

    Semua API server Identity Toolkit kini tersedia secara native dengan setiap library klien kami (Android, iOS, web). Developer akan dapat login dan mendaftarkan pengguna lama dan baru, mengakses properti pengguna, menautkan, memperbarui, dan menghapus akun, mereset sandi, dan lainnya tanpa terikat dengan UI yang tetap. Jika ingin, Anda dapat mem-build seluruh alur login dan pengalaman secara manual di atas API ini.

  • Pengelolaan sesi untuk aplikasi seluler

    Dengan Identity Toolkit, aplikasi membuat status sesinya sendiri berdasarkan peristiwa autentikasi awal dari Identity Toolkit. Identity Platform menggunakan layanan backend yang menggunakan token refresh, yang dibuat dari peristiwa autentikasi, dan menukarnya dengan token akses selama satu jam untuk Android, iOS, dan JavaScript. Saat pengguna mengubah sandinya, token refresh tidak dapat lagi membuat token akses baru, sehingga menonaktifkan akses hingga pengguna melakukan autentikasi ulang di perangkat tersebut.

Perbedaan Fitur

Beberapa fitur Identity Toolkit saat ini tidak tersedia di Identity Platform, sedangkan fitur lainnya telah didesain ulang dan berfungsi secara berbeda. Anda dapat memilih untuk tidak segera melakukan migrasi jika fitur ini penting bagi aplikasi Anda. Dalam banyak kasus, fitur ini mungkin tidak penting untuk aplikasi Anda atau mungkin ada penggantian mudah yang memungkinkan Anda melanjutkan migrasi.

Perbedaan sisi server

Layanan Toolkit Identitas inti dengan REST API, logika validasi akun, dan database pengguna utamanya yang mendasarinya hanya menjalani update minor. Namun, beberapa fitur dan cara mengintegrasikan Identity Platform ke dalam layanan Anda telah berubah.

  • Penyedia Identitas

    PayPal dan AOL tidak didukung. Pengguna dengan akun dari IDP ini tetap dapat login ke aplikasi Anda dengan alur pemulihan sandi dan menyiapkan sandi untuk akun mereka.

  • Library server

    Saat ini, tersedia Admin SDK untuk Java, Node.js, Python, Go, dan C#.

  • Email pengelolaan akun

    Reset sandi, verifikasi email, dan pesan perubahan email dapat dilakukan oleh Firebase atau dari server email milik developer. Saat ini, template email hanya menawarkan penyesuaian terbatas dari UI, tetapi dapat disesuaikan lebih lanjut dengan Admin SDK

  • Konfirmasi perubahan alamat email

    Di Identity Identity, ketika pengguna memutuskan untuk mengubah alamat email, email akan dikirim ke alamat baru yang memiliki link untuk melanjutkan alur perubahan alamat email.

    Firebase mengonfirmasi perubahan alamat email dengan mengirimkan email pencabutan ke alamat email lama yang berisi link untuk mengembalikan perubahan.

  • Peluncuran IDP

    Identity Toolkit memiliki kemampuan untuk menambahkan penyedia identitas ke sistem login Anda secara bertahap, sehingga Anda dapat bereksperimen dengan dampaknya terhadap permintaan dukungan. Fitur ini telah dihapus di Firebase Authentication.

Perbedaan sisi klien

Di Identity Platform, fitur yang disediakan oleh Google Identity Toolkit dibagi menjadi dua komponen:

  • SDK Klien dan Server

    Di Identity Platform, fungsi yang diberikan oleh REST API Identity Toolkit telah dikemas ke dalam SDK klien yang tersedia untuk Android, iOS, dan JavaScript. Anda dapat menggunakan SDK untuk membuat pengguna login dan mendaftar; mengakses informasi profil pengguna; menautkan, memperbarui, dan menghapus akun; serta mereset sandi menggunakan SDK klien, bukan berkomunikasi dengan layanan backend melalui panggilan REST.

  • Widget UI

    Semua alur UI yang mengelola login, pendaftaran, pemulihan sandi, dan penautan akun telah di-build ulang menggunakan Client SDK dan dikemas sebagai widget login. Keduanya tersedia sebagai SDK open source untuk iOS, Android, dan Web, serta memungkinkan Anda untuk sepenuhnya menyesuaikan alur dengan cara yang tidak mungkin dilakukan dengan Identity Toolkit.

Perbedaan lainnya mencakup:

  • Sesi dan migrasi

    Karena sesi dikelola secara berbeda di Identity Toolkit dan Platform Identitas, sesi pengguna yang ada akan dihentikan setelah mengupgrade SDK, dan pengguna Anda harus login lagi.

Sebelum memulai

Sebelum dapat melakukan migrasi dari Identity Toolkit ke Identity Platform, Anda harus:

  1. Buka Cloud Console, lalu pilih project Identity Toolkit Anda.

  2. Dari Marketplace, jelajahi Identity Platform, lalu pilih 'Aktifkan Identity Platform'

  3. Buka Akun layanan. Di sini, Anda dapat melihat akun layanan yang sebelumnya Anda konfigurasikan untuk Identity Toolkit.

  4. Di samping akun layanan, klik > Create key. Kemudian, pada dialog Create private key, setel jenis Key ke JSON, lalu klik Create. File JSON yang berisi kredensial akun layanan Anda didownload untuk Anda. Anda akan membutuhkannya untuk menginisialisasi SDK di langkah berikutnya.

  5. Kembali ke Cloud Console. Di bagian Penyedia, dalam metode login 'Email/Sandi' buka halaman Template Email. Kemudian, Anda dapat menyesuaikan template aplikasi.

    Di Identity Toolkit, ketika pengguna mereset sandi, mengubah alamat email, atau memverifikasi alamat email mereka, Anda perlu mendapatkan kode OOB dari server Identity Toolkit, lalu mengirim kode tersebut kepada pengguna melalui email. Identity Platform mengirimkan email berdasarkan template yang Anda konfigurasi tanpa perlu tindakan tambahan.

  6. Opsional: Jika Anda perlu mengakses layanan Identity Platform di server Anda, instal Firebase SDK.

    1. Anda dapat menginstal Node.js Admin SDK dengan npm:

      $ npm init
      $ npm install --save firebase-admin
      
    2. Dalam kode, Anda dapat mengakses Firebase menggunakan:

      var admin = require('firebase-admin');
      var app = admin.initializeApp({
        credential: admin.credential.cert('path/to/serviceAccountCredentials.json')
      });
      

Selanjutnya, selesaikan langkah-langkah migrasi untuk platform aplikasi Anda: Android, iOS, web.

Server dan JavaScript

Perubahan penting

Ada sejumlah perbedaan tambahan dalam penerapan web Identity Platform dari Identity Toolkit.

  • Pengelolaan sesi web

    Sebelumnya, saat pengguna diautentikasi menggunakan widget Identity Toolkit, cookie ditetapkan untuk pengguna yang digunakan untuk mem-bootstrap sesi. Cookie ini memiliki masa berlaku dua minggu dan digunakan untuk memungkinkan pengguna menggunakan widget pengelolaan akun untuk mengubah sandi dan alamat email. Beberapa situs menggunakan cookie ini untuk mengautentikasi semua permintaan halaman lainnya di situs. Situs lain menggunakan cookie untuk membuat cookie-nya sendiri melalui sistem pengelolaan cookie framework mereka.

    SDK klien Identity Platform kini mengelola token Id dan bekerja sama dengan backend Identity Platform untuk menjaga sesi tetap terbaru. Backend akan mengakhiri sesi jika terjadi perubahan akun yang penting (seperti perubahan sandi pengguna). Token ID tidak ditetapkan secara otomatis sebagai cookie di klien web dan hanya memiliki masa aktif satu jam. Jika Anda hanya menginginkan sesi selama satu jam, token ID tidak cocok untuk digunakan sebagai cookie guna memvalidasi semua permintaan halaman Anda. Sebagai gantinya, Anda harus menyiapkan pemroses saat pengguna login, mendapatkan token ID, memvalidasi token, dan membuat cookie Anda sendiri melalui sistem pengelolaan cookie framework Anda.

    Anda perlu menetapkan masa aktif sesi cookie Anda berdasarkan kebutuhan keamanan aplikasi Anda.

  • Alur login web

    Sebelumnya, pengguna dialihkan ke accountchooser.com saat login dimulai untuk mempelajari ID yang ingin digunakan oleh pengguna. Alur UI Platform Identity kini dimulai dengan daftar metode login, termasuk opsi email yang mengarah ke accountchooser.com untuk web dan menggunakan hintRequest API di Android. Selain itu, alamat email tidak lagi diperlukan dalam UI. Hal ini akan mempermudah dukungan bagi pengguna anonim, pengguna autentikasi kustom, atau pengguna dari penyedia yang tidak memerlukan alamat email.

  • Widget pengelolaan akun

    Widget ini menyediakan UI bagi pengguna untuk mengubah alamat email, mengubah sandi atau membatalkan tautan akun mereka dari penyedia identitas. Sedang dikembangkan.

  • Tombol/widget login

    Widget seperti tombol login dan kartu pengguna tidak lagi disediakan. Build ini dapat dibuat dengan sangat mudah menggunakan Firebase Authentication API.

  • Tidak ada signOutUrl

    Anda harus memanggil firebase.auth.signOut() dan menangani callback.

  • Tidak ada oobActionUrl

    Pengiriman email kini ditangani oleh Identity Platform dan dikonfigurasi di Firebase console.

  • Penyesuaian CSS

    Widget UI menggunakan penataan gaya Material Design Lite, yang secara dinamis menambahkan animasi Desain Material.

Langkah 1: Ubah Kode Server

  1. Jika server Anda mengandalkan token Identity Toolkit (berlaku selama dua minggu) untuk mengelola sesi pengguna web, Anda harus mengonversi server agar menggunakan cookie sesinya sendiri.

    1. Terapkan endpoint untuk memvalidasi token ID dan menetapkan cookie sesi untuk pengguna. Aplikasi klien mengirimkan token ID Firebase ke endpoint ini.
    2. Jika permintaan yang masuk berisi cookie sesi Anda sendiri, Anda dapat menganggap pengguna tersebut sebagai terautentikasi. Jika tidak, perlakukan permintaan sebagai tidak diautentikasi.
    3. Jika Anda tidak ingin pengguna kehilangan sesi login yang sudah ada, Anda harus menunggu selama dua minggu hingga masa berlaku semua token Identity Toolkit berakhir, atau juga melakukan validasi token ganda untuk aplikasi web Anda seperti yang dijelaskan di bawah pada langkah 3.
  2. Berikutnya, karena token ID berbeda dengan token Identity Toolkit, Anda harus memperbarui logika validasi token. Instal Admin SDK ke server Anda; atau, jika Anda menggunakan bahasa yang tidak didukung oleh Admin SDK, download library validasi token JWT untuk lingkungan Anda dan validasi token dengan benar.

  3. Saat pertama kali melakukan pembaruan di atas, Anda mungkin masih memiliki jalur kode yang bergantung pada token Identity Toolkit. Jika Anda memiliki aplikasi iOS atau Android, pengguna harus mengupgrade ke versi baru aplikasi agar jalur kode baru dapat berfungsi. Jika tidak ingin memaksa pengguna untuk mengupdate aplikasi, Anda dapat menambahkan logika validasi server tambahan yang memeriksa token dan menentukan apakah perlu menggunakan Firebase SDK atau Identity Toolkit SDK untuk memvalidasi token. Jika Anda hanya memiliki aplikasi web, semua permintaan autentikasi baru akan dialihkan ke Identity Platform, sehingga Anda hanya perlu menggunakan metode verifikasi token ID.

Lihat Referensi Web API.

Langkah 2: Perbarui HTML

  1. Tambahkan kode inisialisasi ke aplikasi Anda:

    1. Buka project Anda di Cloud Console.
    2. Di halaman penyedia, klik Detail Penyiapan Aplikasi. Cuplikan kode yang menginisialisasi Identity Platform akan ditampilkan.
    3. Salin dan tempelkan cuplikan inisialisasi ke halaman web Anda.
  2. Tambahkan Authentication Widget ke aplikasi Anda:

    <script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script>
    <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" />
    <!-- *******************************************************************************************
       * TODO(DEVELOPER): Paste the initialization snippet from:
       * Firebase Console > Overview > Add Firebase to your web app. *
       ***************************************************************************************** -->
    <script type="text/javascript">
      // FirebaseUI config.
      var uiConfig = {
        'signInSuccessUrl': '<url-to-redirect-to-on-success>',
        'signInOptions': [
          // Leave the lines as is for the providers you want to offer your users.
          firebase.auth.GoogleAuthProvider.PROVIDER_ID,
          firebase.auth.FacebookAuthProvider.PROVIDER_ID,
          firebase.auth.TwitterAuthProvider.PROVIDER_ID,
          firebase.auth.GithubAuthProvider.PROVIDER_ID,
          firebase.auth.EmailAuthProvider.PROVIDER_ID
        ],
        // Terms of service url.
        'tosUrl': '<your-tos-url>',
      };
    
      // Initialize the FirebaseUI Widget using Firebase.
      var ui = new firebaseui.auth.AuthUI(firebase.auth());
      // The start method will wait until the DOM is loaded.
      ui.start('#firebaseui-auth-container', uiConfig);
    </script>
    
  3. Menghapus Identity Toolkit SDK dari aplikasi Anda.

  4. Jika Anda mengandalkan token ID Identity Toolkit untuk pengelolaan sesi, Anda harus membuat perubahan berikut di sisi klien:

    1. Setelah berhasil login dengan Identity Platform, dapatkan token ID dengan memanggil firebase.auth().currentUser.getToken().

    2. Kirim token ID ke server backend, validasikan, dan keluarkan cookie sesi Anda sendiri.

      Jangan hanya mengandalkan cookie sesi saat melakukan operasi sensitif atau mengirim permintaan edit yang diautentikasi ke server Anda. Anda harus memberikan perlindungan pemalsuan permintaan lintas situs (CSRF) tambahan.

      Jika framework Anda tidak memberikan perlindungan CSRF, salah satu cara untuk mencegah serangan adalah dengan mendapatkan token ID untuk pengguna yang login dengan getToken() dan menyertakan token dengan setiap permintaan (cookie sesi juga akan dikirim secara default). Kemudian, Anda akan memvalidasi token tersebut menggunakan Admin SDK selain pemeriksaan cookie sesi yang telah diselesaikan oleh framework backend Anda. Hal ini akan mempersulit keberhasilan serangan CSRF, karena token ID hanya disimpan menggunakan penyimpanan web dan bukan cookie.

    3. Token Toolkit Identitas berlaku selama dua minggu. Anda mungkin ingin terus mengeluarkan token yang berlangsung dua minggu, atau Anda mungkin ingin membuatnya lebih lama atau lebih singkat berdasarkan persyaratan keamanan aplikasi Anda. Saat pengguna logout, hapus cookie sesi.

Langkah 3: Perbarui URL alihan IDP

  1. Di Cloud Console, buka bagian Providers.

  2. Untuk setiap penyedia login gabungan yang Anda dukung, lakukan hal berikut:

    1. Klik nama penyedia login.
    2. Salin URI pengalihan OAuth.
    3. Pada konsol developer penyedia login, perbarui URI pengalihan OAuth.

Android

Langkah 1: Tambahkan Identity Platform ke aplikasi Anda dengan Firebase

  1. Buka Cloud Console, lalu pilih project Identity Toolkit Anda.

  2. Di halaman Penyedia, klik Detail penyiapan aplikasi, pilih tab Android, lalu klik Mulai di Firebase. Pada dialog Add Firebase, masukkan nama paket aplikasi dan sidik jari sertifikat penandatanganan, lalu klik Add App. File konfigurasi google-services.json akan didownload ke komputer Anda.

  3. Salin file konfigurasi ke direktori utama modul aplikasi Android Anda. File konfigurasi ini berisi informasi project Google OAuth dan kliennya.

  4. Di file build.gradle level Project (<var>your-project</var>/build.gradle), tentukan nama paket aplikasi Anda di bagian defaultConfig:

    defaultConfig {
       …..
      applicationId "com.your-app"
    }
    
  5. Selain itu, di file build.gradle di level Project, tambahkan dependensi untuk menyertakan plugin google-services:

    buildscript {
     dependencies {
       // Add this line
       classpath 'com.google.gms:google-services:3.0.0'
     }
    }
    
  6. Di file build.gradle tingkat Aplikasi (<var>my-project</var>/<var>app-module</var>/build.gradle) aplikasi Anda, tambahkan baris berikut setelah plugin Android Gradle untuk mengaktifkan plugin google-services:

    apply plugin: 'com.android.application'
    // Add this line
    apply plugin: 'com.google.gms.google-services'
    

    Plugin google-services menggunakan file google-services.json untuk mengonfigurasi aplikasi Anda agar dapat menggunakan Firebase.

  7. Selain itu, di file build.gradle level Aplikasi, tambahkan dependensi Firebase Authentication:

    compile 'com.google.firebase:firebase-auth:21.0.8'
    compile 'com.google.android.gms:play-services-auth:20.3.0'
    

Langkah 2: Hapus Identity Toolkit SDK

  1. Hapus konfigurasi Identity Toolkit dari file AndroidManifest.xml. Informasi ini disertakan dalam file google-service.json dan dimuat oleh plugin google-services.
  2. Menghapus Identity Toolkit SDK dari aplikasi Anda.

Langkah 3: Tambahkan FirebaseUI ke aplikasi Anda

  1. Tambahkan FirebaseUI Auth ke aplikasi Anda.

  2. Di aplikasi, ganti panggilan ke Identity Toolkit SDK dengan panggilan ke FirebaseUI.

iOS

Langkah 1: Tambahkan Firebase ke aplikasi Anda

  1. Tambahkan SDK klien ke aplikasi Anda dengan menjalankan perintah berikut:

    $ cd your-project directory
    $ pod init
    $ pod 'Firebase'
    
  2. Buka Cloud Console, lalu pilih project Identity Toolkit Anda.

  3. Di halaman Penyedia, klik Detail penyiapan aplikasi, pilih tab iOS, lalu klik Mulai di Firebase. Dalam dialog Add Firebase, masukkan nama paket aplikasi dan sidik jari sertifikat penandatanganan, lalu klik Add App. File konfigurasi google-services.json akan didownload ke komputer Anda. Pada dialog Tambahkan Firebase, berikan ID paket aplikasi dan ID App Store Anda, lalu klik Tambahkan Aplikasi. File konfigurasi GoogleService-Info.plist akan didownload ke komputer Anda. Jika Anda memiliki beberapa ID paket dalam project, setiap ID paket harus terhubung di Firebase console agar dapat memiliki file GoogleService-Info.plist sendiri.

  4. Salin file konfigurasi ke root project Xcode Anda, lalu tambahkan ke semua target.

Langkah 2: Hapus Identity Toolkit SDK

  1. Hapus GoogleIdentityToolkit dari Podfile aplikasi Anda.
  2. Jalankan perintah pod install.

Langkah 3: Tambahkan FirebaseUI ke aplikasi Anda

  1. Tambahkan FirebaseUI Auth ke aplikasi Anda.

  2. Di aplikasi, ganti panggilan ke Identity Toolkit SDK dengan panggilan ke FirebaseUI.