প্রকাশিত: ০৯ মে, ২০২৫, সর্বশেষ আপডেট: ২২ ডিসেম্বর, ২০২৫
পাসকিগুলি শক্তিশালী, ফিশিং-প্রতিরোধী প্রমাণীকরণ প্রদান করে। তবে, ব্যবহারকারীদের এগুলি গ্রহণ করতে বাধ্য করলে ঘর্ষণ হতে পারে। স্বয়ংক্রিয় পাসকি তৈরির মাধ্যমে আপনি আপনার ব্যবহারকারীদের জন্য সঠিক মুহূর্তে পাসকি তৈরি করতে পারেন, যদি তাদের কাছে ইতিমধ্যেই আপনার সাইটের জন্য একটি পাসওয়ার্ড সংরক্ষিত থাকে। কন্ডিশনাল ক্রিয়েট, যা স্বয়ংক্রিয় পাসকি তৈরি সক্ষম করে, WebAuthn স্পেসিফিকেশনের অংশ।
কিভাবে এটা কাজ করে
ব্যবহারকারীদের আরও সুবিধাজনকভাবে পাসকি গ্রহণ করতে সাহায্য করার জন্য, Conditional Create নামক একটি WebAuthn API বৈশিষ্ট্য ব্যবহার করুন। Conditional Create আপনার সাইটকে ব্যবহারকারীর কাছ থেকে কোনও পদক্ষেপ না নিয়েই একটি পাসকি অনুরোধ করতে দেয়।
নিম্নলিখিত শর্তগুলি পূরণ হলে এই প্রবাহটি কাজ করে:
- ব্যবহারকারীর ডিফল্ট পাসওয়ার্ড ম্যানেজারে একটি সংরক্ষিত পাসওয়ার্ড রয়েছে।
- পাসওয়ার্ডটি সম্প্রতি ব্যবহার করা হয়েছে। আদর্শভাবে, সফল পাসওয়ার্ড-ভিত্তিক লগইনের পরপরই Conditional Create-এ কল করুন।
যদি উভয় শর্ত পূরণ হয়, তাহলে আপনি Conditional Create-এ কল করে ব্যবহারকারীর জন্য একটি পাসকি তৈরি করার জন্য পাসওয়ার্ড ম্যানেজারকে অনুরোধ করতে পারেন। পাসকি সফলভাবে তৈরি করার পরে, পাসওয়ার্ড ম্যানেজারের উপর নির্ভর করে ব্যবহারকারীকে অবহিত করা হয়।
সামঞ্জস্য
কন্ডিশনাল ক্রিয়েট ম্যাকওএস এবং iOS-এর সকল ব্রাউজারে সাফারি , ডেস্কটপে ক্রোম এবং অ্যান্ড্রয়েডে ক্রোম দ্বারা সমর্থিত।
এই সাপোর্টের অর্থ হল এটি তাদের নিজ নিজ ডিফল্ট পাসকি প্রদানকারীদের সাথে কাজ করে: macOS এবং iOS-এ Safari-তে iCloud Keychain (Passwords), এবং ডেস্কটপ এবং Android-এ Chrome-এ Google Password Manager।
যেহেতু iOS 18 বা তার উচ্চতর এবং Android 14 বা তার উচ্চতর সংস্করণ তৃতীয় পক্ষের পাসকি প্রদানকারীদের সমর্থন করে, ব্যবহারকারী যে ব্রাউজারই ব্যবহার করুক না কেন, শর্তসাপেক্ষ তৈরি সমর্থন পাসকি প্রদানকারীর উপর নির্ভর করে। যদি নির্বাচিত পাসকি প্রদানকারী শর্তসাপেক্ষ তৈরি সমর্থন না করে, তাহলে একটি নতুন পাসকি তৈরি করা হবে না।
শর্তসাপেক্ষ তৈরি বাস্তবায়ন করুন
স্বয়ংক্রিয় পাসকি তৈরি একটি WebAuthn API বৈশিষ্ট্যের উপর ভিত্তি করে করা হয় যার নাম Conditional Create । এগুলি হল নিয়মিত WebAuthn create() অনুরোধ যার mediation প্যারামিটার "conditional" তে সেট করা থাকে যা get() অনুরোধের জন্য passkey অটোফিলের মতোই কাজ করে।
ব্যবহারকারী পাসওয়ার্ড দিয়ে সাইন ইন করার পর শর্তসাপেক্ষ তৈরি ব্যবহার করুন। তৈরি সফল হবে কিনা তা পাসওয়ার্ড ম্যানেজার এবং কিছু শর্ত পূরণের উপর নির্ভর করে। এই শর্তগুলি পাসওয়ার্ড ম্যানেজার অনুসারে পরিবর্তিত হতে পারে এবং সময়ের সাথে সাথে পরিবর্তিত হতে পারে। উদাহরণস্বরূপ, Google পাসওয়ার্ড ম্যানেজার (GPM) সহ Chrome-এ, ব্যবহারকারীকে অবশ্যই সাইটের জন্য একটি সংরক্ষিত পাসওয়ার্ড ব্যবহার করে সম্প্রতি সাইন ইন করতে হবে।
যদি ব্রাউজারটি সফলভাবে পাসকি তৈরি করে, তাহলে এটি একটি পাবলিক কী শংসাপত্র ফেরত পাঠায়। নিবন্ধন সম্পূর্ণ করতে এবং ভবিষ্যতের প্রমাণীকরণ সক্ষম করতে এই শংসাপত্রটি আপনার ব্যাকএন্ডে পাঠান ।
বৈশিষ্ট্য সনাক্তকরণ
আপনি 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'
});
স্বয়ংক্রিয় তৈরির জন্য পাসওয়ার্ড ম্যানেজারের মানদণ্ড পূরণ করার সর্বোত্তম সুযোগ পেতে আপনার ব্যবহারকারী সাইন ইন করার সাথে সাথেই স্বয়ংক্রিয় পাসকি তৈরি ব্যবহার করা উচিত।
পাসকি যাচাই এবং নিবন্ধন করার জন্য আপনি ফলাফল প্রাপ্ত পাবলিক কী শংসাপত্র সার্ভারে পাঠাতে পারেন। সার্ভারে, নিশ্চিত করুন যে ব্যবহারকারী সাইন ইন করেছেন।
সতর্কতা
কন্ডিশনাল ক্রিয়েট নিজেই বাস্তবায়ন করা কঠিন নয়, তবে বিদ্যমান সিস্টেমে এই বৈশিষ্ট্যটি বাস্তবে একীভূত করার ক্ষেত্রে বেশ কিছু সতর্কতা অবলম্বন করা হয়।
সার্ভারে ব্যবহারকারীর উপস্থিতি এবং ব্যবহারকারী যাচাইকরণ উপেক্ষা করুন
নিবন্ধন প্রতিক্রিয়া "ব্যবহারকারীর উপস্থিতি" এবং "ব্যবহারকারী যাচাইকৃত" উভয়কেই false হিসাবে ফেরত দেয়, তাই সার্ভারের শংসাপত্র যাচাইয়ের সময় এই পতাকাগুলি উপেক্ষা করা উচিত ।
স্বয়ংক্রিয় পাসকি তৈরি করার আগে চলমান WebAuthn কল বাতিল করুন
যখন RP ব্যবহারকারীকে পাসকি অথবা পাসওয়ার্ড দিয়ে সাইন ইন করার প্রত্যাশা করে, তখন শর্তসাপেক্ষ get সম্পাদন করাই সর্বোত্তম পছন্দ । এর ফলে শর্তসাপেক্ষ get কলটি শর্তসাপেক্ষ তৈরি করার আগে বাতিল হতে পারে।
এটি করার জন্য, আপনাকে 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 কলটি বাতিল করা হয়েছে।
এই ক্ষেত্রে ত্রুটি প্রদর্শন ব্যবহারকারীকে বিভ্রান্ত করতে পারে কারণ ব্রাউজার নীরবে সেগুলি পরিচালনা করে: এটি কেবল সাফল্যের বিজ্ঞপ্তি দেখায় এবং ব্যর্থতা দৃশ্যমান বার্তাগুলি ট্রিগার করে না।
পাসকি নিবন্ধনের সময় সিগন্যাল ব্যর্থ হয়
যখন একটি পাসকি তৈরি করা হয় কিন্তু সার্ভারে নিবন্ধিত হতে ব্যর্থ হয়, তখন ব্যবহারকারী একটি ব্যর্থ সাইন-ইন প্রচেষ্টার সম্মুখীন হবেন। এটি তখন ঘটতে পারে যখন পাসকির তালিকা পাসকি প্রদানকারী এবং সার্ভারের মধ্যে অসঙ্গতিপূর্ণ হয়।
এই ধরনের পরিস্থিতি এড়াতে, সিগন্যাল API ব্যবহার করে সামঞ্জস্যপূর্ণ রাখুন ।
পাসওয়ার্ডবিহীন সাইন-ইন থেকে আপগ্রেড করা সমর্থিত নয়
এই মুহুর্তে, ব্যবহারকারীর বৈধ পাসওয়ার্ড প্রবেশ করানোর পিছনে শর্তসাপেক্ষে একটি পাসকি তৈরি করা হয়। এর অর্থ হল পাসওয়ার্ডবিহীন সাইন-ইন পদ্ধতি যেমন ম্যাজিক লিঙ্ক, ফোন নম্বর যাচাইকরণ বা পরিচয় ফেডারেশন শর্ত পূরণ করবে না।
সারাংশ
স্বয়ংক্রিয় পাসকি তৈরি আপনার ওয়েবসাইটে পাসকি গ্রহণকে ত্বরান্বিত করতে পারে, ব্যবহারকারীদের আপনার ওয়েবসাইটের ব্যবহারকারীদের পাসওয়ার্ড থেকে আরও নিরাপদ প্রমাণীকরণ পদ্ধতিতে রূপান্তর করতে সহায়তা করে।
পাসকি সম্পর্কে আরও জানতে, পাসকি দিয়ে পাসওয়ার্ডহীন লগইন থেকে শুরু করুন।