પાસવર્ડ રિસેટ કર્યા વગર યુઝર્સને ઇમ્પોર્ટ કરવા

આઇડેન્ટિટી માઇગ્રેશન ગાઇડ્સ હંમેશા એક જ વાત કહે છે. તેઓ કહે છે કે યુઝર્સે તેમના પાસવર્ડ રિસેટ કરવા જ જોઈએ. આ કોઈ નિયમ નથી. તે એક પસંદગી છે. મોટાભાગના ટૂલ્સ સાચા રસ્તાને બદલે સરળ રસ્તો પસંદ કરે છે.

તમે રિસેટ કર્યા વગર યુઝર્સને માઇગ્રેટ કરી શકો છો. તમારે ફક્ત હાલના પાસવર્ડ હેશ (password hashes) વેરિફાય કરવાની જરૂર છે. જો તમારી પાસે જૂના હેશ હોય અને તમારું નવું સિસ્ટમ તેને વાંચી શકતું હોય, તો આ ફેરફાર યુઝર્સને ખબર પણ નહીં પડે (invisible રહેશે).

પાસવર્ડ હેશ એ કોઈ રહસ્ય નથી. 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) છે. જો તમે ટાળી શકતા હોવ, તો કોઈ ટૂલને તમારા પર રિસેટ કરવા માટે મજબૂર ન થવા દો.

Forced resets સમસ્યાઓ ઊભી કરે છે:

  • તે સપોર્ટ લોડ વધારે છે.
  • તે યુઝર્સને ફિશિંગ ઈમેલ પર વિશ્વાસ કરવાનું શીખવે છે.
  • તે એક શાંત ફેરફારને મોટી સમસ્યામાં ફેરવી દે છે.

એક સારું માઇગ્રેશન એવું હોવું જોઈએ કે જાણે કંઈ થયું જ નથી. તમારા યુઝર્સને પાસવર્ડ રિસેટ કરવા કહેતા પહેલા, પૂછો કે શું તમે જૂના હેશ મેળવી શકો છો.

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