প্রকাশিত: ১৫ জানুয়ারি, ২০২৫, সর্বশেষ হালনাগাদ: ০৯ এপ্রিল, ২০২৬
WebAuthn হাইব্রিড প্রোটোকলের জন্য ব্লুটুথের সাথে ইন্টারঅ্যাকশন, পাসকি প্রোভাইডারদের সাথে যোগাযোগ এবং অটোফিলে পাসকি সাজেস্ট করার মতো অনন্য সক্ষমতা প্রদান করে। তবে, বিভিন্ন ক্লায়েন্ট এবং অথেন্টিকেটর WebAuthn ফিচারগুলোর জন্য ভিন্ন ভিন্ন মাত্রার সাপোর্ট দিয়ে থাকে। এই বৈষম্যের কারণে ব্যবহারকারীর অভিজ্ঞতা খণ্ডিত হতে পারে, যেখানে কিছু ব্যবহারকারী ত্রুটির সম্মুখীন হতে পারেন বা নির্দিষ্ট অথেন্টিকেশন অপশনগুলো ব্যবহার করতে অক্ষম হতে পারেন। ডেভেলপারদের ক্লায়েন্টের সক্ষমতা নির্ধারণ করার একটি উপায় প্রদান করা হলে, তারা আরও শক্তিশালী অথেন্টিকেশন ফ্লো তৈরি করতে সক্ষম হন যা এই ভিন্নতাগুলোর সাথে খাপ খাইয়ে নিতে পারে।
PublicKeyCredential.getClientCapabilities() মেথডটি রিলায়িং পার্টিদেরকে ব্রাউজার দ্বারা কোন WebAuthn ফিচারগুলো সমর্থিত তা নির্ধারণ করতে সাহায্য করে। মেথডটি একটি প্রমিজ রিটার্ন করে যা রিজলভ হয়ে সমর্থিত ক্যাপাবিলিটিগুলোর একটি তালিকা প্রদান করে, যা ডেভেলপারদেরকে ক্লায়েন্টের নির্দিষ্ট ক্যাপাবিলিটির উপর ভিত্তি করে অথেনটিকেশন অভিজ্ঞতা এবং ওয়ার্কফ্লো সাজিয়ে নিতে সাহায্য করে।
সামঞ্জস্যতা
getClientCapabilities()
getClientCapabilities() হলো একটি WebAuthn API যা রিলায়িং পার্টিদেরকে কোন ক্যাপাবিলিটিগুলো উপলব্ধ আছে তা নির্ধারণ করতে সাহায্য করে। এই API ব্যবহার করার জন্য আপনাকে PublicKeyCredential.getClientCapabilities() কল করতে হবে। ফেরত আসা প্রমিসটি একটি অবজেক্টে পরিণত হয়, যাতে ক্যাপাবিলিটিগুলো থাকে এবং প্রতিটি তার উপলব্ধতা true বা false দ্বারা নির্দেশ করে। যদি ক্যাপাবিলিটিটি undefined হয়, তবে ধরে নিতে হবে যে এর উপলব্ধতা অজানা।
if (window.PublicKeyCredential && PublicKeyCredential.getClientCapabilities) {
const capabilities = await PublicKeyCredential.getClientCapabilities();
if (capabilities.conditionalGet === true &&
capabilities.passkeyPlatformAuthenticator === true) {
// The browser supports passkeys and the conditional mediation.
}
}
শর্তসাপেক্ষ তৈরি করুন
যদি ব্যবহারকারী আগে থেকেই ক্রেডেনশিয়াল তৈরি করতে সম্মতি দিয়ে থাকেন, তাহলে ব্রাউজার কোনো সুস্পষ্ট মোডাল UI ছাড়াই তা তৈরি করতে পারে।
শর্তসাপেক্ষ প্রাপ্তি
ব্রাউজারটি একটি সুস্পষ্ট মোডাল UI-এর পরিবর্তে, অটোফিল ডায়ালগের অংশ হিসেবে পাসকি প্রদর্শন করে প্রমাণীকরণ করতে পারে। এর বিদ্যমান সমতুল্য হলো PublicKeyCredential.isConditionalMediationAvailable() ।
হাইব্রিড পরিবহন
ডিভাইসটি ব্লুটুথ ব্যবহার করতে পারে, যাতে ব্রাউজারটি একটি ক্রেডেনশিয়াল তৈরি করতে পারে এবং হাইব্রিড প্রোটোকল ব্যবহার করে একাধিক ডিভাইসের মধ্যে সেটির মাধ্যমে প্রমাণীকরণ করতে পারে। এর সাধারণ অর্থ হলো, ব্রাউজারটি একটি কিউআর কোড প্রদর্শন করতে পারে, যাতে ব্যবহারকারী সেটি স্ক্যান করে ক্রেডেনশিয়াল থাকা কোনো ফোন দিয়ে সাইন ইন করতে পারেন।
পাসকি প্ল্যাটফর্ম প্রমাণীকরণকারী
ব্রাউজারটি একটি ক্রেডেনশিয়াল তৈরি করতে পারে এবং হাইব্রিড প্রোটোকলের মাধ্যমে একটি ইউজার ভেরিফাইং প্ল্যাটফর্ম অথেন্টিকেটর বা এটিকে সমর্থন করে এমন অন্য কোনো ডিভাইসের মাধ্যমে সেটির সাহায্যে প্রমাণীকরণ করতে পারে। এটি hybridTransport || userVerifyingPlatformAuthenticator সমতুল্য।
সম্পর্কিত উৎস
ব্রাউজারটি RP ID-এর সাথে মেলে না এমন একটি ক্রেডেনশিয়াল তৈরি করে তার মাধ্যমে প্রমাণীকরণ করতে পারে, যদি তা সংশ্লিষ্ট অরিজিনস ফাইলে নির্দিষ্ট করা থাকে।
সমস্ত গৃহীত পরিচয়পত্র সংকেত দিন
ব্রাউজারটি সার্ভারে উপলব্ধ ক্রেডেনশিয়ালগুলো পাসকি প্রোভাইডারকে জানাতে পারে, যাতে পাসকি প্রোভাইডার সার্ভারের সাথে পাসকি তালিকাটি সামঞ্জস্যপূর্ণ রাখতে পারে।
সংকেত বর্তমান ব্যবহারকারীর বিবরণ
ব্রাউজারটি সার্ভারে থাকা ব্যবহারকারীর তথ্য, যেমন ইউজারনেম এবং ডিসপ্লে নেম, পাসকি প্রোভাইডারের কাছে প্রেরণ করতে পারে, যাতে পাসকি প্রোভাইডার সার্ভারের সাথে তাদের পাসকি তথ্য সামঞ্জস্যপূর্ণ রাখতে পারে।
অজানা পরিচয়পত্রের সংকেত
ব্রাউজারটি সার্ভার থেকে মুছে ফেলা কোনো ক্রেডেনশিয়ালের বিষয়ে পাসকি প্রোভাইডারকে সংকেত দিতে পারে, যাতে পাসকি প্রোভাইডার সার্ভারের সাথে পাসকি তালিকাটি সামঞ্জস্যপূর্ণ রাখতে পারে।
ব্যবহারকারী যাচাইকরণ প্ল্যাটফর্ম প্রমাণীকরণকারী
ব্রাউজারটি একটি প্ল্যাটফর্ম অথেন্টিকেটরে ক্রেডেনশিয়াল তৈরি এবং তার মাধ্যমে প্রমাণীকরণ করতে পারে। এর মানে এই নয় যে ব্রাউজারটি হাইব্রিড প্রোটোকল সমর্থন করে। এর বিদ্যমান সমতুল্য হলো PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() ।
এক্সটেনশন
আরপি-রা getClientCapabilities() ব্যবহার করে উপলব্ধ এক্সটেনশনগুলোও নির্ধারণ করতে পারেন।
if (capabilities['extension:appid'] === true) {
// appId extension is supported
}
আইডেন্টিফায়ারের শুরুতে extension: এবং তারপরে এক্সটেনশনের নাম থাকে। এক্সটেনশনের নাম জানতে IANA-তে সংজ্ঞায়িত WebAuthn এক্সটেনশন আইডেন্টিফায়ারগুলো দেখুন।
আরও জানুন
পাসকি সম্পর্কে আরও জানতে, ‘পাসকি ব্যবহার করে পাসওয়ার্ডবিহীন লগইন’ থেকে শুরু করুন।