പാസ്വേഡ് റീസെറ്റ് ചെയ്യാതെ ഉപയോക്താക്കളെ ഇംപോർട്ട് ചെയ്യുക
ഐഡന്റിറ്റി മൈഗ്രേഷൻ ഗൈഡുകൾ എപ്പോഴും ഒരേ കാര്യം തന്നെയാണ് പറയുന്നത്. ഉപയോക്താക്കൾ അവരുടെ പാസ്വേഡ് റീസെറ്റ് ചെയ്യണമെന്ന് അവ പറയുന്നു. ഇതൊരു നിയമമല്ല, മറിച്ച് ഒരു തിരഞ്ഞെടുപ്പാണ്. മിക്ക ടൂളുകളും ശരിയായ വഴിക്കനുസരിച്ചല്ല, മറിച്ച് എളുപ്പമുള്ള വഴി തിരഞ്ഞെടുക്കുന്നു.
റീസെറ്റ് ചെയ്യാതെ തന്നെ നിങ്ങൾക്ക് ഉപയോക്താക്കളെ മൈഗ്രേറ്റ് ചെയ്യാം. നിലവിലുള്ള പാസ്വേഡ് ഹാഷുകൾ (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 ഹാഷുകൾ അടങ്ങിയിട്ടുണ്ടാകും. മൈഗ്രേഷൻ ഉപയോക്താക്കൾ അറിയാതെ നടക്കാൻ ഈ ഫയൽ ഉപയോഗിക്കുക.
ഹാഷുകൾ ലഭ്യമല്ലെങ്കിൽ, ഉപയോക്താക്കൾ പുതിയ പാസ്വേഡ് സെറ്റ് ചെയ്യേണ്ടി വരും. ഇതൊരു പ്രായോഗികമായ ബദൽ മാർഗമാണ്. ഒഴിവാക്കാൻ കഴിയുമെങ്കിൽ ഒരു ടൂൾ നിങ്ങളെക്കൊണ്ട് നിർബന്ധിതമായി പാസ്വേഡ് റീസെറ്റ് ചെയ്യിപ്പിക്കാൻ അനുവദിക്കരുത്.
നിർബന്ധിത റീസെറ്റുകൾ പ്രശ്നങ്ങൾ ഉണ്ടാക്കുന്നു:
- അവ സപ്പോർട്ട് ലോഡ് വർദ്ധിപ്പിക്കുന്നു.
- അവ ഫിഷിംഗ് (phishing) ഇമെയിലുകളെ വിശ്വസിക്കാൻ ഉപയോക്താക്കളെ പ്രേരിപ്പിക്കുന്നു.
- അവ ഒരു ശാന്തമായ മാറ്റത്തെ വലിയൊരു പ്രശ്നമാക്കി മാറ്റുന്നു.
ഒരു നല്ല മൈഗ്രേഷൻ എന്നാൽ ഒന്നും സംഭവിക്കാത്തതുപോലെ തോന്നണം. ഉപയോക്താക്കളോട് പാസ്വേഡ് റീസെറ്റ് ചെയ്യാൻ പറയുന്നതിന് മുമ്പ്, പഴയ ഹാഷുകൾ ലഭിക്കുമോ എന്ന് അന്വേഷിക്കുക.
Source: https://dev.to/authagonal/importing-users-without-a-password-reset-5h1j
