पासवर्ड रीसेट किए बिना उपयोगकर्ताओं को इम्पोर्ट करना

आइडेंटिटी माइग्रेशन गाइड हमेशा एक ही बात कहते हैं। वे कहते हैं कि उपयोगकर्ताओं को अपना पासवर्ड रीसेट करना ही होगा। यह कोई नियम नहीं है। यह एक विकल्प है। अधिकांश टूल्स सही रास्ते के बजाय आसान रास्ता चुनते हैं।

आप बिना रीसेट किए उपयोगकर्ताओं को माइग्रेट कर सकते हैं। आपको बस मौजूदा पासवर्ड हैश (password hashes) को सत्यापित करने की आवश्यकता है। यदि आपके पास पुराने हैश हैं और आपका नया सिस्टम उन्हें पढ़ सकता है, तो यह बदलाव अदृश्य रहेगा।

पासवर्ड हैश कोई रहस्य नहीं है। Bcrypt, bcrypt ही है। इसमें अपना खुद का salt और cost factor होता है। bcrypt का उपयोग करने वाला कोई भी सिस्टम इसे सत्यापित कर सकता है। PBKDF2 भी इसी तरह काम करता है। यदि आपके पास हैश है, तो आप वास्तविक पासवर्ड जाने बिना उसके विरुद्ध पासवर्ड की जांच कर सकते हैं।

समय बचाने के लिए लेज़ी माइग्रेशन (lazy migration) का उपयोग करें।

  • पुराने हैश को नए सिस्टम में ले जाएं।
  • जब उपयोगकर्ता लॉग इन करे, तब हैश को सत्यापित करें।
  • इसे तुरंत नए फॉर्मेट से बदल दें।

कुछ हफ्तों में, आपका डेटाबेस खुद को अपडेट कर लेता है। आपको पासवर्ड रीसेट के लिए शून्य ईमेल और शून्य सपोर्ट टिकट प्राप्त होंगे।

अलग-अलग स्रोत अलग-अलग फॉर्मेट प्रदान करते हैं।

Self-hosted Duende या ASP.NET Identity: ये V3 PBKDF2 या bcrypt का उपयोग करते हैं। नया सिस्टम इन्हें आसानी से सत्यापित और रीहैश (rehash) कर सकता है। यह एक स्वच्छ प्रक्रिया है।

Auth0: ये bcrypt का उपयोग करते हैं। आप उन्हें सीधे इम्पोर्ट कर सकते हैं। हालाँकि, आप उन्हें मानक API के माध्यम से प्राप्त नहीं कर सकते। सुरक्षा कारणों से Auth0 API के माध्यम से हैश वापस नहीं करता है। आपको उनके सपोर्ट से एक बल्क एक्सपोर्ट फ़ाइल (bulk export file) का अनुरोध करना होगा। इस फ़ाइल में bcrypt हैश होते हैं। माइग्रेशन को अदृश्य रखने के लिए इस फ़ाइल का उपयोग करें।

यदि आप हैश प्राप्त नहीं कर सकते हैं, तो उपयोगकर्ताओं को नया पासवर्ड सेट करना होगा। यह एक ईमानदार विकल्प (fallback) है। यदि आप इससे बच सकते हैं, तो किसी टूल को आप पर रीसेट थोपने न दें।

ज़बरदस्ती किए गए रीसेट समस्याएँ पैदा करते हैं:

  • वे सपोर्ट लोड को बढ़ा देते हैं।
  • वे उपयोगकर्ताओं को फ़िशिंग (phishing) ईमेल पर भरोसा करने के लिए प्रशिक्षित करते हैं।
  • वे एक शांत बदलाव को एक बड़ी समस्या में बदल देते हैं।

एक अच्छा माइग्रेशन ऐसा होना चाहिए जैसे कुछ हुआ ही न हो। अपने उपयोगकर्ताओं को पासवर्ड रीसेट करने के लिए कहने से पहले पूछें कि क्या आप पुराने हैश प्राप्त कर सकते हैं।

स्रोत: https://dev.to/authagonal/importing-users-without-a-password-reset-5h1j