Şifre Sıfırlama Yapmadan Kullanıcıları İçe Aktarmak

Kimlik taşıma kılavuzları her zaman aynı şeyi söyler. Kullanıcıların şifrelerini sıfırlaması gerektiğini söylerler. Bu bir kural değil, bir tercihtir. Çoğu araç, doğru yol yerine kolay yolu seçer.

Kullanıcıları sıfırlama yapmadan taşıyabilirsiniz. Sadece mevcut şifre hash'lerini doğrulamanız gerekir. Eğer eski hash'lere sahipseniz ve yeni sisteminiz bunları okuyabiliyorsa, geçiş süreci fark edilmez kalır.

Bir şifre hash'i bir sır değildir. Bcrypt, bcrypt'tir. Kendi salt (tuzlama) ve maliyet faktörünü (cost factor) taşır. Bcrypt kullanan herhangi bir sistem bunu doğrulayabilir. PBKDF2 de aynı şekilde çalışır. Hash'e sahipseniz, gerçek şifreyi bilmeden bir şifreyi ona göre kontrol edebilirsiniz.

Zaman kazanmak için lazy migration yöntemini kullanın.

  • Eski hash'i yeni sisteme taşıyın.
  • Kullanıcı giriş yaptığında hash'i doğrulayın.
  • Onu hemen yeni bir formatla değiştirin.

Birkaç hafta içinde veritabanınız kendini günceller. Sıfır şifre sıfırlama e-postası ve sıfır destek talebi alırsınız.

Farklı kaynaklar farklı formatlar sunar.

Self-hosted Duende veya ASP.NET Identity: Bunlar V3 PBKDF2 veya bcrypt kullanır. Yeni sistem bunları kolayca doğrulayabilir ve yeniden hash'leyebilir. Bu temiz bir süreçtir.

Auth0: Bunlar bcrypt kullanır. Onları doğrudan içe aktarabilirsiniz. Ancak, standart bir API aracılığıyla bunları alamazsınız. Auth0, güvenlik nedeniyle API üzerinden hash'leri döndürmez. Destek ekiplerinden toplu bir dışa aktarma (bulk export) dosyası talep etmelisiniz. Bu dosya bcrypt hash'lerini içerir. Geçişin fark edilmez kalması için bu dosyayı kullanın.

Eğer hash'leri alamıyorsanız, kullanıcıların yeni bir şifre belirlemesi gerekir. Bu dürüst bir fallback yöntemidir. Eğer kaçınabiliyorsanız, bir aracın size zorla sıfırlama yaptırmasına izin vermeyin.

Zorunlu sıfırlamalar sorunlara yol açar:

  • Yüksek destek yükü oluştururlar.
  • Kullanıcıları kimlik avı (phishing) e-postalarına güvenmeleri konusunda eğitirler.
  • Sessiz bir değişikliği gürültülü bir soruna dönüştürürler.

İyi bir geçiş, hiçbir şey olmamış gibi hissettirmelidir. Kullanıcılarınıza şifrelerini sıfırlamalarını söylemeden önce eski hash'leri alıp alamayacağınızı sorun.

Kaynak: https://dev.to/authagonal/importing-users-without-a-password-reset-5h1j