Langsung ke konten utama
Autentikasi adalah fitur baru. Jalankan setiap impor di aplikasi sandbox terlebih dahulu, lalu impor ke aplikasi produksi Anda.
Impor memindahkan orang dari platform identitas lain ke Didit Authentication. Kata sandi, email terverifikasi, tautan login sosial, aplikasi autentikator, dan peran organisasi mereka ikut berpindah. Tidak ada yang berubah bagi mereka sampai aplikasi Anda mengautentikasi mereka dengan Didit. Impor menggunakan API manajemen Autentikasi untuk aplikasi Anda dengan sesi konsol yang memiliki write:authentication (atau read:authentication untuk menampilkan daftar). Impor tidak pernah menggunakan token pengguna akhir atau kunci API verifikasi. Dalam contoh, MANAGEMENT_BASE adalah:

Dua cara impor

Impor file

1. Unggah

Setiap sakelar keep_* bernilai true kecuali Anda mengirim false. Panggilan ini mengembalikan 202 dengan sebuah tugas. Sebuah aplikasi menyimpan paling banyak 5 file yang diunggah pada satu waktu.

2. Periksa dry run

Setiap unggahan langsung memulai dry run. Dry run memeriksa setiap orang dan tidak menulis apa pun. Lakukan polling ke GET import-jobs/{id}/: Dry run yang gagal mencantumkan kesalahannya. Perbaiki file lalu unggah ulang.

3. Mulai impor

POST import-jobs/{id}/start/ mengimpor apa yang sudah diperiksa oleh dry run dan mengembalikan 202.
  • Orang diimpor dalam batch 1.000. Setiap batch di-commit secara terpisah.
  • Hanya satu impor yang berjalan per aplikasi pada satu waktu (jika tidak, import_running).
  • Impor yang terputus dilanjutkan setelah batch terakhir yang di-commit.
  • Orang yang sudah diimpor akan dilewati, sehingga Anda dapat menjalankan file yang sama lagi.
  • Orang yang memulai impor menerima email ketika impor selesai atau berhenti.
File yang diunggah disimpan dalam keadaan terenkripsi. File dihapus ketika impor berakhir, ketika dry run-nya gagal, atau 24 jam setelah dry run jika file tersebut tidak pernah diimpor.

Impor dalam batch

Kirim hingga 1.000 orang per permintaan dengan idempotency_key hingga 100 karakter.
  • Dry run mengembalikan 200 dengan hasilnya dan tidak menulis apa pun.
  • Dengan dry_run: false, impor yang berhasil mengembalikan 201. Batch dengan kesalahan apa pun mengembalikan 400 dan tidak mengimpor siapa pun.
  • Mengulangi permintaan yang sudah di-commit dengan kunci yang sama mengembalikan hasil yang tercatat. Kunci yang sama dengan isi berbeda mengembalikan 400 {"idempotency_key": "different_payload"}.
  • Parameter Firebase dimasukkan ke dalam objek firebase: {signer_key, salt_separator, rounds, mem_cost}.
  • GET imports/ menampilkan daftar batch yang sudah di-commit.

Format file

JSON

Sebuah array orang, atau objek yang users-nya berisi array tersebut.

CSV

Kolom bernilai tunggal yang sama, ditambah google_id, apple_id, github_id, microsoft_id, microsoft_tenant_id, organization_slug, organization_name dan organization_role. Orang yang berada di beberapa organisasi mendapat satu baris untuk setiap organisasi.
Field atau kolom yang tidak dikenal adalah kesalahan dan tidak pernah diabaikan.

Duplikat dan akun yang sudah ada

  • Baris dengan email yang sama menjadi satu orang. Baris yang identik dihitung sebagai duplikat. Baris dengan lebih banyak tautan, organisasi, atau autentikator akan digabungkan.
  • Dua hash kata sandi, rahasia autentikator, atau peran organisasi yang berbeda untuk satu orang adalah kesalahan. Begitu pula external_id atau subjek penyedia yang diklaim oleh dua orang.
  • Jika akun dengan email tersebut sudah ada dan dibuat oleh impor sebelumnya, orang tersebut dilewati (already_imported). Jika orang tersebut mendaftar sendiri, hal itu menjadi kesalahan identity_conflict. Impor tidak pernah mengubah akun yang sudah ada.

Kata sandi

Parameter Firebase disimpan terenkripsi, hanya untuk aplikasi tersebut. Format lain, atau cost di atas batas ini, berarti pengguna perlu membuat kata sandi baru. Setelah pengguna berhasil masuk untuk pertama kali, Didit menyimpan kata sandinya lagi dalam format Didit sendiri.

Pengguna tanpa kata sandi yang dapat digunakan

Ketika pengguna tidak memiliki hash, atau hash-nya tidak didukung, percobaan kata sandi akan menghasilkan respons kata sandi salah seperti biasa. Didit juga mengirimkan email kepada mereka berisi tautan untuk mengatur kata sandi baru (berlaku 30 menit, paling banyak sekali sehari). Ini hanya terjadi jika email mereka terverifikasi, akun tidak diblokir, dan fitur masuk dengan kata sandi diaktifkan. Dalam hasil, reset_required menghitung pengguna tanpa kata sandi yang dapat digunakan. reset_emails menghitung di antara mereka yang memiliki email terverifikasi: hanya mereka yang dapat dijangkau dengan cara ini. Pengguna dengan email yang belum terverifikasi tidak dapat masuk dengan kata sandi. Mereka tetap dapat masuk dengan kode email jika Anda mengaktifkan metode tersebut.

Tautan sosial, autentikator, dan organisasi

  • Tautan sosial disimpan untuk penyedia yang sudah dikonfigurasi aplikasi Anda, di bawah client ID saat ini. Dengan begitu, masuk berikutnya tidak memerlukan bukti email. Subjek Google dan GitHub bersifat global. Subjek Apple bersifat per tim pengembang dan subjek Microsoft bersifat per registrasi aplikasi, sehingga tautan tersebut hanya cocok jika platform lama Anda menggunakan tim atau registrasi yang sama. Tautan ke penyedia yang belum Anda konfigurasi dihitung sebagai social_unavailable dan tidak diimpor.
  • Aplikasi autentikator (rahasia TOTP: SHA-1, 6 digit, 30 detik) disimpan terenkripsi. Pengguna yang diimpor harus menggunakannya sebagai faktor kedua. Mereka tidak mendapatkan kode pemulihan.
  • Organisasi yang belum ada akan dibuat dari slug-nya.
  • Passkey tidak dapat diimpor. Passkey terikat pada domain masuk lama Anda, sehingga pengguna perlu menambahkan passkey baru setelah mereka masuk dengan Didit.

Hasil

Setiap uji coba, batch, dan proses mengembalikan result yang sama: Respons tidak pernah berisi hash kata sandi, salt, rahasia autentikator, atau nilai kolom.

Sebelum Anda beralih

Uji di aplikasi sandbox Anda:
  • masuk dengan setiap format kata sandi yang Anda impor,
  • email untuk mengatur kata sandi baru bagi pengguna tanpa hash yang dapat digunakan,
  • masuk dengan akun sosial dan kode autentikator untuk pengguna yang diimpor,
  • menjalankan file yang sama dua kali.
Lalu, pastikan vendor_data setiap pengguna sama dengan nilai yang Anda gunakan untuk verifikasi dan transaksi mereka.
Terakhir diubah pada 7 November 2026