PUT methods/{name}/ dan {"enabled": true} pada API Manajemen Autentikasi aplikasi Anda, atau dari konsol. Halaman masuk yang di-hosting hanya menampilkan metode yang Anda aktifkan.
Setiap panggilan JSON di bawah dimulai dengan
transaction dari POST authorize/. Transaksi tersebut berlaku selama 10 menit. Masuk yang berhasil mengembalikan {code, redirect_uri, state}. Tukarkan kode di POST token/ dalam waktu 60 detik (lihat token dan JWKS).
Alih-alih kode, panggilan masuk dapat mengembalikan salah satu langkah berikut. Selesaikan langkah tersebut, lalu Anda akan menerima kode.
Kata sandi
POST password/ menerima transaction, email dan password.
- Kata sandi harus memenuhi
password_min_lengthAnda (8, 10, 12 atau 14 karakter; default 10). Kata sandi yang umum dan yang hanya berisi angka ditolak denganpassword_policy. Ketika pemeriksaan kata sandi yang bocor aktif, kata sandi yang diketahui pernah bocor ditolak denganpassword_breached. - Hanya orang dengan email terverifikasi yang dapat masuk dengan kata sandi.
- Kata sandi yang salah, email yang tidak dikenal, email yang belum diverifikasi, akun yang terkunci, dan akun yang diblokir semuanya menghasilkan jawaban yang sama:
400 {"error": "invalid_credentials"}. UI Anda tidak dapat membedakan penyebabnya, begitu pula penyerang.
Pendaftaran
Pendaftaran memverifikasi email terlebih dahulu. PanggilPOST email/start/ dengan purpose: "signup", email dan password, lalu POST email/complete/ dengan kodenya. Akun dibuat dengan email yang sudah terverifikasi.
signup_policymenentukan siapa yang dapat mendaftar:anyone,invited(hanya dengan tautan undangan) atauallowed_domains.- Dengan
allow_subaddresses: false(default), alamat yang mengandung+pada bagian lokal akan ditolak. - Ketika branding Anda menetapkan tautan ke syarat dan ketentuan atau privasi, formulir pendaftaran di halaman yang di-hosting meminta orang tersebut untuk menyetujuinya.
Kode email
POST email/start/ menerima transaction, purpose (login atau signup) dan email, lalu mengembalikan 202 {challenge, expires_in: 600}. Orang tersebut menerima kode 6 digit yang berlaku selama 10 menit.
POST email/complete/ menerima transaction, purpose, challenge dan code. Anda mendapat 5 percobaan, setelah itu orang tersebut harus meminta kode baru. Halaman yang di-hosting menawarkan kode baru setelah 30 detik.
Kode masuk untuk alamat yang belum memiliki akun akan membuat akun jika signup_policy Anda mengizinkannya. Inilah pendaftaran tanpa kata sandi.
Tautan ajaib
Halaman yang di-hosting mengirim tautan masuk yang berlaku selama 15 menit. Tautan ini tetap terikat pada transaksi PKCE asli, sehingga tautan hanya berfungsi dalam alur yang memulainya. Orang tersebut mengonfirmasi masuk di halaman yang dibuka oleh tautan. Tidak ada endpoint JSON untuk tautan ajaib.Kode telepon
POST phone/start/ menerima transaction, phone dan channel opsional (sms, default, atau whatsapp). Nomor dinormalisasi ke format E.164. Endpoint ini mengembalikan 202 {challenge, expires_in: 600}.
POST phone/complete/ menerima transaction, challenge dan code 6 digit. Anda mendapat 5 percobaan.
- Kode telepon dikirim melalui verifikasi telepon Didit. Aktifkan metode ini dengan
workflow_iddari alur kerja yang berisi verifikasi telepon. - Masuk dengan telepon untuk pertama kalinya hanya membuat akun jika
signup_policybernilaianyone. - Jika pengiriman gagal, panggilan mengembalikan
503 {"error": "delivery_unavailable"}.
Passkey
Passkey menggunakan WebAuthn. Pihak pengandalnya adalah origin masuk aplikasi Anda. Didit meminta kredensial yang dapat ditemukan (resident key) dan selalu mewajibkan verifikasi pengguna, misalnya sidik jari, wajah, atau PIN perangkat. Didit tidak meminta atestasi.- Tantangan passkey berlaku selama 5 menit.
- Menambahkan passkey memerlukan sesi yang dibuat dalam 5 menit terakhir. Jika tidak, panggilan mengembalikan
403 {"error": "reauthentication_required"}. Masuk kembali sebagai orang tersebut terlebih dahulu. - Masuk dengan passkey dihitung sebagai multi-faktor.
- Setelah pendaftaran, halaman yang di-hosting menawarkan untuk menambahkan passkey (
passkeys/setup/begin/danpasskeys/setup/complete/). - Aplikasi Android yang terdaftar di aplikasi dapat menggunakan passkey yang sama.
Masuk sosial
Masuk dengan Google, Microsoft, Apple, dan GitHub menggunakan kredensial aplikasi OAuth Anda sendiri, yang diatur denganPUT methods/{provider}/ dan credentials: {client_id, client_secret}. Callback penyedia berada di origin yang digunakan untuk masuk.
Saat pertama kali seseorang masuk dengan penyedia, mereka juga membuktikan kepemilikan alamat email dengan kode (POST social/email/start/ dan POST social/email/verify/). Masuk berikutnya dengan penyedia tersebut melewati langkah ini.
GitHub tidak dapat membuktikan bahwa pengguna baru saja masuk, sehingga tidak ditawarkan saat Anda mengirim prompt=login atau max_age.
SSO Organisasi
SSO Organisasi memungkinkan perusahaan pelanggan masuk melalui penyedia identitas SAML atau OIDC miliknya sendiri. Konfigurasikan untuk setiap organisasi pelanggan diorganizations/{id}/sso/ dengan protocol (saml atau oidc), enabled, dan config.
- Anda dapat mengirim tautan pengaturan kepada tim TI pelanggan yang berlaku selama 7 hari.
- Metadata penyedia layanan SAML Anda dipublikasikan di
{origin}/sso/saml/metadata/. - Halaman masuk yang di-hosting menemukan koneksi dari domain email yang terverifikasi milik pengguna, atau dari
organization=<slug>pada URL masuk.
Didit ID Wallet
Pengguna yang sudah melakukan verifikasi dengan Didit dapat masuk menggunakan Didit ID Wallet mereka. Metode ini selalu aktif.verified_identity pada sesi kemudian memuat informasi yang dipilih orang tersebut untuk dibagikan.
MFA
Faktor kedua adalah aplikasi autentikator (TOTP) dengan kode pemulihan, atau kunci sandi.mfa_policymenentukan siapa yang wajib menggunakan MFA:optional,everyone, atauorganization_admins(bawaan). Siapa pun yang telah mendaftarkan autentikator wajib selalu menggunakannya.- Untuk mendaftarkan autentikator, panggil
POST mfa/enroll/dengan sesi yang baru (dibuat dalam 5 menit terakhir). Respons mengembalikan{challenge, uri}; tampilkanurisebagai kode QR. Lalu kirim kode pertama kePOST mfa/confirm/. Respons berisi 10 kode pemulihan sekali pakai. Tampilkan kode-kode tersebut hanya sekali. - Saat masuk, kirim kode TOTP atau kode pemulihan ke
POST mfa/complete/besertachallenge. Anda mendapat 5 percobaan. Untuk menggunakan kunci sandi sebagai gantinya, panggilPOST mfa/passkey/begin/danPOST mfa/passkey/complete/. - Kode menggunakan interval 30 detik. Kode yang sudah diterima tidak dapat digunakan lagi.
- Kode SMS dan email tidak tersedia sebagai faktor kedua.
Lupa dan atur ulang kata sandi
POST password-reset/start/ menerima email dan mengembalikan 202 {"status": "sent", "expires_in": 1800}. Jawabannya sama, terlepas dari apakah alamat tersebut memiliki akun atau tidak. Tautan pengaturan ulang berlaku selama 30 menit.
POST password-reset/complete/ menerima token dan password dan mengembalikan {"status": "password_changed"}. Panggilan ini juga:
- menghapus penguncian,
- mengakhiri setiap sesi ketika
revoke_on_password_changeaktif (bawaan), - membatalkan kode dan tautan lain yang masih tertunda untuk pengguna tersebut.
Undangan
Dengansignup_policy: "invited", hanya orang yang diundang yang dapat mendaftar. Tautan undangan berlaku selama 7 hari dan membuka halaman /invite yang di-hosting.
Lanjutkan dengan token dan JWKS, atau baca perlindungan bot untuk penguncian dan tantangan.