GetClientCapabilities() সহ সহজতর WebAuthn বৈশিষ্ট্য সনাক্তকরণ

প্রকাশিত: 15 জানুয়ারী, 2025

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

PublicKeyCredential.getClientCapabilities() পদ্ধতি নির্ভরকারী পক্ষগুলিকে নির্ধারণ করতে দেয় যে কোন WebAuthn বৈশিষ্ট্যগুলি ব্রাউজার দ্বারা সমর্থিত। পদ্ধতিটি একটি প্রতিশ্রুতি প্রদান করে যা সমর্থিত ক্ষমতাগুলির একটি তালিকার সমাধান করে, যা ডেভেলপারদের ক্লায়েন্টের নির্দিষ্ট ক্ষমতার উপর ভিত্তি করে প্রমাণীকরণের অভিজ্ঞতা এবং কর্মপ্রবাহকে উপযোগী করতে দেয়।

সামঞ্জস্য

Browser Support

  • ক্রোম: সমর্থিত নয়।
  • প্রান্ত: সমর্থিত নয়।
  • ফায়ারফক্স: সমর্থিত নয়।
  • সাফারি: 17.4.

গেট ক্লায়েন্ট ক্যাপাবিলিটিস()

getClientCapabilities() হল একটি WebAuthn API যা নির্ভরকারী পক্ষগুলিকে কোন ক্ষমতা উপলব্ধ তা নির্ধারণ করতে দেয়। API ব্যবহার করার জন্য আপনাকে PublicKeyCredential.getClientCapabilities() কল করতে হবে। প্রত্যাবর্তিত প্রতিশ্রুতিটি এমন একটি বস্তুর সমাধান করে যার মধ্যে ক্ষমতা রয়েছে, প্রতিটি true বা false সাথে তার প্রাপ্যতা নির্দেশ করে। যদি ক্ষমতা undefined হয়, বিবেচনা করুন এর প্রাপ্যতা জানা নেই।

if (window.PublicKeyCredential &&
  if (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()

হাইব্রিড ট্রান্সপোর্ট

ডিভাইসটি ব্লুটুথ ব্যবহার করতে পারে যাতে ব্রাউজার একটি শংসাপত্র তৈরি করতে পারে এবং হাইব্রিড প্রোটোকল ব্যবহার করে ক্রস-ডিভাইসের সাথে প্রমাণীকরণ করতে পারে। এর সাধারণত মানে ব্রাউজারটি একটি QR কোড প্রদর্শন করতে পারে যাতে ব্যবহারকারী এটি স্ক্যান করতে পারে এবং এটিতে একটি শংসাপত্র রয়েছে এমন একটি ফোন দিয়ে সাইন ইন করতে পারে।

পাসকি প্ল্যাটফর্ম প্রমাণকারী

ব্রাউজারটি একটি শংসাপত্র তৈরি করতে পারে এবং একটি ব্যবহারকারী যাচাইকারী প্ল্যাটফর্ম প্রমাণীকরণকারী বা হাইব্রিড প্রোটোকলের মাধ্যমে এটি সমর্থন করে এমন অন্য ডিভাইসের মাধ্যমে এটির সাথে প্রমাণীকরণ করতে পারে। hybridTransport || userVerifyingPlatformAuthenticator .

সম্পর্কিত মূল

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

signalAllAccepted Credentials

ব্রাউজার সার্ভারে উপলব্ধ শংসাপত্রগুলি পাসকি প্রদানকারীকে সংকেত দিতে পারে, যাতে পাসকি প্রদানকারী পাসকি তালিকাটিকে সার্ভারের সাথে সামঞ্জস্যপূর্ণ রাখতে পারে।

সংকেত বর্তমান ব্যবহারকারীর বিবরণ

ব্রাউজার ব্যবহারকারীর তথ্য যেমন ব্যবহারকারীর নাম এবং সার্ভারে প্রদর্শন নাম পাসকি প্রদানকারীকে সংকেত দিতে পারে, যাতে পাসকি প্রদানকারী তাদের পাসকি তথ্য সার্ভারের সাথে সামঞ্জস্যপূর্ণ রাখতে পারে।

সংকেত অজানা শংসাপত্র

ব্রাউজার সার্ভারে একটি মুছে ফেলা শংসাপত্র পাসকি প্রদানকারীকে সংকেত দিতে পারে, যাতে পাসকি প্রদানকারী পাসকি তালিকাটি সার্ভারের সাথে সামঞ্জস্যপূর্ণ রাখতে পারে।

userVerifyingPlatformAuthenticator

ব্রাউজার একটি প্ল্যাটফর্ম প্রমাণীকরণকারীতে একটি শংসাপত্রের সাথে তৈরি এবং প্রমাণীকরণ করতে পারে। এর মানে এই নয় যে ব্রাউজার হাইব্রিড প্রোটোকল সমর্থন করে। বিদ্যমান সমতুল্য হল PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()

এক্সটেনশন

RPs এছাড়াও getClientCapabilities() দিয়ে উপলব্ধ এক্সটেনশন নির্ধারণ করতে পারে।

if (capabilities['extension:appid'] === true) {
  // appId extension is supported
}

শনাক্তকারীটি extension: একটি এক্সটেনশনের নাম অনুসরণ করে। এক্সটেনশন নামের জন্য IANA-তে সংজ্ঞায়িত WebAuthn এক্সটেনশন আইডেন্টিফায়ার পড়ুন।

আরও জানুন

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