ব্যবহারকারীদের আরও নির্বিঘ্নে পাসকিগুলি গ্রহণ করতে সহায়তা করুন

প্রকাশিত: ০৯ মে, ২০২৫, সর্বশেষ হালনাগাদ: ২২ ডিসেম্বর, ২০২৫

পাসকি শক্তিশালী এবং ফিশিং-প্রতিরোধী প্রমাণীকরণ প্রদান করে। তবে, ব্যবহারকারীদের এটি ব্যবহারে উৎসাহিত করা কঠিন হতে পারে। স্বয়ংক্রিয় পাসকি তৈরির মাধ্যমে আপনি আপনার ব্যবহারকারীদের জন্য সঠিক সময়ে পাসকি তৈরি করতে পারেন, যদি তাদের আপনার সাইটের জন্য আগে থেকেই একটি পাসওয়ার্ড সংরক্ষিত থাকে। কন্ডিশনাল ক্রিয়েট, যা স্বয়ংক্রিয় পাসকি তৈরি করতে সক্ষম করে, তা WebAuthn স্পেসিফিকেশনের একটি অংশ।

এটি কীভাবে কাজ করে

ব্যবহারকারীদের আরও সহজে পাসকি ব্যবহারে সাহায্য করতে, WebAuthn API-এর Conditional Create নামক একটি ফিচার ব্যবহার করুন। Conditional Create আপনার সাইটকে ব্যবহারকারীর কোনো পদক্ষেপ ছাড়াই তার জন্য একটি পাসকি অনুরোধ করার সুযোগ দেয়।

নিম্নলিখিত শর্তগুলো পূরণ হলে এই প্রবাহটি কাজ করে:

  • ব্যবহারকারী তার ডিফল্ট পাসওয়ার্ড ম্যানেজারে একটি পাসওয়ার্ড সংরক্ষণ করেছেন।
  • পাসওয়ার্ডটি সম্প্রতি ব্যবহার করা হয়েছে। আদর্শগতভাবে, পাসওয়ার্ড-ভিত্তিক সফল লগইনের ঠিক পরেই কন্ডিশনাল ক্রিয়েট (Conditional Create) কল করুন।

যদি উভয় শর্ত পূরণ হয়, তাহলে আপনি কন্ডিশনাল ক্রিয়েট (Conditional Create) কল করে পাসওয়ার্ড ম্যানেজারকে ব্যবহারকারীর জন্য একটি পাসকি তৈরি করতে অনুরোধ করতে পারেন। সফলভাবে পাসকি তৈরি হওয়ার পর, পাসওয়ার্ড ম্যানেজারের উপর নির্ভর করে ব্যবহারকারীকে অবহিত করা হয়।

শর্তসাপেক্ষ সৃষ্টি সহ পাসকি অনুরোধ প্রবাহ।

সামঞ্জস্যতা

কন্ডিশনাল ক্রিয়েট ম্যাকওএস-এর সাফারি এবং আইওএস-এর সকল ব্রাউজারে , সেইসাথে ডেস্কটপঅ্যান্ড্রয়েডের ক্রোমে সমর্থিত।

এই সমর্থনের অর্থ হলো, এটি তাদের নিজ নিজ ডিফল্ট পাসকি প্রোভাইডারে কাজ করে: macOS ও iOS-এর Safari-তে iCloud Keychain (Passwords), এবং ডেস্কটপ ও Android-এর Chrome-এ Google Password Manager।

যেহেতু iOS 18 বা তার উচ্চতর সংস্করণ এবং Android 14 বা তার উচ্চতর সংস্করণ থার্ড-পার্টি পাসকি প্রোভাইডার সমর্থন করে, তাই ব্যবহারকারী যে ব্রাউজারই ব্যবহার করুক না কেন, কন্ডিশনাল ক্রিয়েট (Conditional Create) সমর্থনের বিষয়টি পাসকি প্রোভাইডারের উপর নির্ভর করে। যদি নির্বাচিত পাসকি প্রোভাইডার কন্ডিশনাল ক্রিয়েট সমর্থন না করে, তবে কোনো নতুন পাসকি তৈরি হবে না।

শর্তসাপেক্ষ সৃষ্টি বাস্তবায়ন করুন

স্বয়ংক্রিয় পাসকি তৈরি করা হয় WebAuthn API-এর 'Conditional Create' নামক একটি ফিচারের উপর ভিত্তি করে। এগুলো হলো সাধারণ WebAuthn create() রিকোয়েস্ট, যেখানে mediation প্যারামিটারটি "conditional" হিসেবে সেট করা থাকে, যা get() রিকোয়েস্টের পাসকি অটোফিলের মতোই কাজ করে।

ব্যবহারকারী পাসওয়ার্ড দিয়ে সাইন ইন করার পর কন্ডিশনাল ক্রিয়েট (Conditional Create) ব্যবহার করুন। পাসওয়ার্ড তৈরি সফল হবে কিনা তা পাসওয়ার্ড ম্যানেজার এবং কিছু নির্দিষ্ট শর্ত পূরণ হওয়ার উপর নির্ভর করে। এই শর্তগুলো পাসওয়ার্ড ম্যানেজার ভেদে ভিন্ন হতে পারে এবং সময়ের সাথে সাথে পরিবর্তিতও হতে পারে। উদাহরণস্বরূপ, গুগল পাসওয়ার্ড ম্যানেজার (GPM) সহ ক্রোমে, ব্যবহারকারীকে অবশ্যই সম্প্রতি সাইটটির জন্য সংরক্ষিত একটি পাসওয়ার্ড ব্যবহার করে সাইন ইন করতে হবে।

ব্রাউজারটি সফলভাবে পাসকি তৈরি করলে, এটি একটি পাবলিক কী ক্রেডেনশিয়াল ফেরত দেয়। রেজিস্ট্রেশন সম্পন্ন করতে এবং ভবিষ্যতের অথেন্টিকেশন চালু করতে এই ক্রেডেনশিয়ালটি আপনার ব্যাকএন্ডে পাঠান

বৈশিষ্ট্য সনাক্তকরণ

PublicKeyCredential.getClientCapabilities() কল করে আপনি ব্রাউজারে Conditional Create উপলব্ধ আছে কিনা তা নির্ধারণ করতে পারেন। ফেরত আসা অবজেক্টটিতে conditionalCreate প্রপার্টির জন্য true আছে কিনা তা দেখুন।

if (window.PublicKeyCredential && PublicKeyCredential.getClientCapabilities) {
  const capabilities = await PublicKeyCredential.getClientCapabilities();
  if (capabilities.conditionalCreate) {
    // Conditional create is available
  }
}

যদি getClientCapabilities উপলব্ধ না থাকে, তাহলে Conditional Create-ও উপলব্ধ থাকবে না।

শর্তসাপেক্ষে একটি পাসকি তৈরি করুন

স্বয়ংক্রিয়ভাবে পাসকি তৈরি করতে, navigator.credentials.create() mediation: "conditional" সহ নিম্নোক্তভাবে কল করুন।

const cred = await navigator.credentials.create({
  publicKey: options,
  // Request conditional creation
  mediation: 'conditional'
});

স্বয়ংক্রিয়ভাবে পাসকি তৈরির জন্য পাসওয়ার্ড ম্যানেজারের শর্তগুলো পূরণের সর্বোত্তম সুযোগ পেতে, আপনার ব্যবহারকারী সাইন ইন করার সাথে সাথেই স্বয়ংক্রিয় পাসকি তৈরি ব্যবস্থা চালু করা উচিত।

পাসকি যাচাই ও নিবন্ধন করার জন্য আপনি প্রাপ্ত পাবলিক কী ক্রেডেনশিয়ালটি সার্ভারে পাঠাতে পারেন। সার্ভারে, নিশ্চিত করুন যে ব্যবহারকারী সাইন ইন করেছেন।

সতর্কতা

কন্ডিশনাল ক্রিয়েট বাস্তবায়ন করা নিজে থেকে কঠিন কিছু নয়, কিন্তু কোনো বিদ্যমান সিস্টেমে এই ফিচারটি ইন্টিগ্রেট করার ক্ষেত্রে বেশ কিছু বিষয় মনে রাখতে হয়।

সার্ভারে ব্যবহারকারীর উপস্থিতি এবং ব্যবহারকারী যাচাইকরণ উপেক্ষা করুন

রেজিস্ট্রেশন রেসপন্সে "User Presence" এবং "User Verified" উভয়ই false রিটার্ন করে, তাই ক্রেডেনশিয়াল ভেরিফিকেশনের সময় সার্ভারের এই ফ্ল্যাগগুলো উপেক্ষা করা উচিত

স্বয়ংক্রিয় পাসকি তৈরির আগে চলমান WebAuthn কলটি বাতিল করুন।

যখন RP আশা করে যে ব্যবহারকারী পাসকি বা পাসওয়ার্ড দিয়ে সাইন ইন করবে, তখন একটি কন্ডিশনাল গেট (conditional get) ব্যবহার করাই সর্বোত্তম উপায় । এর ফলে একটি কন্ডিশনাল ক্রিয়েট (conditional create) করার আগে কন্ডিশনাল গেট কলটি বাতিল হয়ে যেতে পারে।

এটি করার জন্য, আপনাকে AbortController ব্যবহার করতে হবে এবং .abort() কল করতে হবে।

// To abort a WebAuthn call, instantiate an AbortController.
const controller = new AbortController();

const cred = await navigator.credentials.get({
  publicKey: options,
  signal: controller.signal,
  // Request conditional get
  mediation: 'conditional'
});

// Abort the call
controller.abort();

ব্যতিক্রমগুলোকে সুন্দরভাবে উপেক্ষা করুন

যখন শর্তসাপেক্ষ পাসকি তৈরি করা হয়, তখন কয়েকটি ক্ষেত্রে ব্যতিক্রম উপেক্ষা করা উচিত:

  • InvalidStateError : পাসকি প্রোভাইডারে একটি পাসকি ইতিমধ্যেই বিদ্যমান আছে। excludeCredentials উল্লেখ করতে মনে রাখবেন।
  • NotAllowedError : পাসকি তৈরি করা শর্ত পূরণ করে না।
  • AbortError : WebAuthn কলটি বাতিল করা হয়েছে।

এইসব ক্ষেত্রে ত্রুটি প্রদর্শন করলে ব্যবহারকারী বিভ্রান্ত হতে পারেন, কারণ ব্রাউজার এগুলো নীরবে সামাল দেয়: এটি কেবল সফল হলেই একটি বিজ্ঞপ্তি দেখায়, এবং ব্যর্থতার ক্ষেত্রে কোনো দৃশ্যমান বার্তা প্রদর্শিত হয় না।

পাসকি নিবন্ধন ব্যর্থ হলে সংকেত।

যখন একটি পাসকি তৈরি করা হয় কিন্তু সার্ভারে তা নিবন্ধিত হতে ব্যর্থ হয়, তখন ব্যবহারকারীর সাইন-ইন করার প্রচেষ্টা ব্যর্থ হবে। পাসকি প্রদানকারী এবং সার্ভারের মধ্যে পাসকির তালিকা অসামঞ্জস্যপূর্ণ হলে এমনটা হতে পারে।

এই ধরনের পরিস্থিতি এড়াতে, সেগুলোকে সামঞ্জস্যপূর্ণ রাখতে সিগন্যাল এপিআই (Signal API) ব্যবহার করুন

পাসওয়ার্ডবিহীন সাইন-ইন থেকে আপগ্রেড সমর্থিত নয়।

এই পর্যায়ে, শর্তসাপেক্ষে পাসকি তৈরি করার জন্য ব্যবহারকারীকে একটি বৈধ পাসওয়ার্ড দিতে হয়। এর মানে হলো, ম্যাজিক লিঙ্ক, ফোন নম্বর যাচাইকরণ বা আইডেন্টিটি ফেডারেশনের মতো পাসওয়ার্ডবিহীন সাইন-ইন পদ্ধতিগুলো এই শর্ত পূরণ করতে পারবে না।

সারসংক্ষেপ

স্বয়ংক্রিয় পাসকি তৈরি আপনার ওয়েবসাইটে পাসকি ব্যবহারের হারকে ত্বরান্বিত করতে পারে, যা আপনার ওয়েবসাইটের ব্যবহারকারীদের পাসওয়ার্ড থেকে আরও সুরক্ষিত একটি প্রমাণীকরণ পদ্ধতিতে স্থানান্তরিত হতে সাহায্য করে।

পাসকি সম্পর্কে আরও জানতে, ‘পাসকি ব্যবহার করে পাসওয়ার্ডবিহীন লগইন’ থেকে শুরু করুন।