Pengungkapan : Saya seorang insinyur di Auth0 .
Tergantung pada satu poin utama ... Anda perlu memutuskan apakah:
- Anda ingin secara langsung menghabiskan banyak waktu (dan secara tidak langsung menghabiskan uang) untuk membangun dan / atau memelihara penyedia identitas dan server otorisasi Anda sendiri
- atau Anda lebih suka menghabiskan uang secara langsung dan menggunakan penyedia otentikasi pihak ketiga seperti Auth0.
Kedua opsi sangat layak dari sudut pandang persyaratan fungsional Anda. Dengan pengembangan kustom, Anda memegang kendali penuh atas fungsionalitas yang Anda putuskan untuk didukung, jadi saya akan memfokuskan sebagian jawaban tentang bagaimana Auth0 dapat merespons persyaratan yang Anda daftarkan .
Namun, sebelum pindah ke sana, apa pun keputusan Anda, untuk otentikasi Anda harus fokus pada OpenID Connect daripada OAuth2. Yang terakhir akan lebih berlaku jika Anda berencana untuk juga memiliki API dalam campuran dan tidak hanya membagi monolit menjadi aplikasi web yang terpisah.
Bagaimana cara memigrasikan pengguna yang ada ke sistem berbasis Auth0?
Anda dapat memutuskan untuk tetap menggunakan database Anda dan mengandalkan Auth0 untuk menyediakan semua kepatuhan dengan protokol terkait otentikasi yang mungkin perlu Anda gunakan atau Anda dapat memigrasikan pengguna Anda ke database yang dikelola Auth0 dan berhenti mengkhawatirkan tentang bagaimana Anda menyimpan dan memvalidasi kata sandi.
Jika Anda lebih memilih untuk tetap menggunakan basis data Anda, lihat Mengotentikasi Pengguna dengan Nama Pengguna dan Kata Sandi menggunakan Database Kustom
Aplikasi sering mengandalkan database pengguna untuk otentikasi. Auth0 memungkinkan Anda untuk dengan mudah terhubung ke repositori ini dan menggunakannya sebagai penyedia identitas sambil menjaga kredensial pengguna dan menyediakan banyak fitur tambahan.
(Dokumen merujuk ke MySQL hanya sebagai contoh, mesin database lain didukung)
Di sisi lain, Anda dapat memindahkan kredensial pengguna ke basis data Auth0 dengan mulus dengan memanfaatkan proses migrasi yang dijelaskan dalam Migrasi Pengguna ke Auth0
Auth0 mendukung migrasi otomatis pengguna ke Auth0 dari koneksi basis data khusus. Fitur ini menambahkan pengguna Anda ke basis data Auth0 satu per satu karena setiap login dan menghindari meminta pengguna Anda untuk mengatur ulang kata sandi mereka semua pada saat yang sama.
Anda juga dapat membuat semua pengguna Anda di Auth0 melalui API Manajemen jika Anda lebih suka mereka semua mulai menggunakan algoritma hashing kata sandi kami sekaligus. Ini memiliki efek samping yang mengharuskan pengguna untuk mengatur ulang kata sandi mereka.
Bagaimana cara tetap menggunakan otentikasi dua langkah khusus (pertanyaan verifikasi)?
Pipa otentikasi yang disediakan oleh Auth0 sepenuhnya dapat dikustomisasi melalui penggunaan aturan . Ini berarti bahwa meskipun Anda tidak harus mengimplementasikan hal-hal terkait protokol, Anda masih dapat menyempurnakan detail kecil tentang bagaimana otentikasi terjadi dalam aplikasi Anda.
Ini termasuk kemungkinan untuk terus menggunakan pertanyaan verifikasi yang ada sebagai cara untuk melakukan proses otentikasi dua langkah di mana pengguna memberikan kata sandi awal yang diverifikasi oleh Auth0 dan kemudian Anda meminta mereka untuk informasi lebih lanjut dari aturan khusus. (aturan hanya Javascript sehingga kemungkinannya tidak terbatas)
Namun Anda juga dapat memutuskan untuk membatalkan pertanyaan verifikasi dan sebagai gantinya pergi dengan Auth0 Guardian sebagai cara untuk meningkatkan keamanan proses otentikasi.
Bagaimana cara menyesuaikan tampilan dan nuansa UI otentikasi?
Dengan Auth0 Anda dapat memiliki UI otentikasi bersih dalam waktu singkat dengan memanfaatkan halaman login default atau widget otentikasi seperti Kunci . Semua ini mendukung beberapa tingkat penyesuaian dan Anda selalu dapat memutuskan untuk melakukan UI sendiri dan sebaliknya memanfaatkan pustaka Auth0 tingkat rendah ( Auth0.js ) yang tidak membuat kendala pada antarmuka pengguna.
Untuk informasi lebih lanjut tentang penyesuaian:
Bagaimana cara mencegah halaman persetujuan eksplisit?
Anda dapat menggunakan Auth0 baik sebagai penyedia identitas untuk tujuan otentikasi dan juga sebagai server otorisasi OAuth2 (saat ini hanya tersedia di wilayah AS) untuk API Anda.
Sebagai penyedia identitas Anda tidak perlu khawatir tentang halaman persetujuan, pengguna mengotentikasi dengan kredensial mereka yang dikelola oleh Auth0 dan kemudian akan diarahkan ke aplikasi Anda - itu saja.
Dalam OAuth2 sebagai skenario layanan ketika persetujuan diaktifkan, peta jalan mencakup memungkinkan untuk mem-bypass halaman persetujuan untuk aplikasi tertentu.
Pada catatan akhir, itu sepertinya proyek yang sangat menarik dan menantang yang Anda dapatkan di sana, jadi semoga beruntung terlepas dari keputusan akhir Anda.
Saya sudah melalui sesuatu yang serupa pada pekerjaan sebelumnya ketika saya harus mengimplementasikan kembali sistem otentikasi aplikasi lama. Kami menerapkan penyedia identitas dan server otorisasi kami sendiri dan sejujurnya saya masih merasa bahwa kami mungkin telah melupakan sesuatu yang sangat penting.
Saya pikir itu masalah terbesar dengan menggulirkan keamanan Anda sendiri, akan ada kesempatan tenggat waktu memaksakan pintasan dan keamanan bukanlah area yang baik untuk membuat pintasan.
Jika Anda memiliki pertanyaan lebih lanjut, beri tahu saya jika Anda pikir saya dapat membantu.