تشخیص ساده‌تر ویژگی WebAuthn

منتشر شده: ۱۵ ژانویه ۲۰۲۵، آخرین به‌روزرسانی: ۹ آوریل ۲۰۲۶

WebAuthn قابلیت‌های منحصر به فردی مانند تعامل با بلوتوث برای پروتکل ترکیبی، ارتباط با ارائه‌دهندگان کلید عبور و پیشنهاد کلیدهای عبور در تکمیل خودکار را ارائه می‌دهد. با این حال، کلاینت‌ها و احراز هویت‌کنندگان مختلف سطوح مختلفی از پشتیبانی از ویژگی‌های WebAuthn را ارائه می‌دهند. این تفاوت می‌تواند منجر به یک تجربه کاربری پراکنده شود، که در آن برخی از کاربران ممکن است با خطا مواجه شوند یا نتوانند از گزینه‌های احراز هویت خاصی استفاده کنند. ارائه راهی برای توسعه‌دهندگان جهت تعیین قابلیت‌های کلاینت، آنها را قادر می‌سازد تا جریان‌های احراز هویت قوی‌تری ایجاد کنند که با این تغییرات سازگار باشند.

متد PublicKeyCredential.getClientCapabilities() به طرفین وابسته اجازه می‌دهد تا مشخص کنند کدام ویژگی‌های WebAuthn توسط مرورگر پشتیبانی می‌شوند. این متد یک promise را برمی‌گرداند که به لیستی از قابلیت‌های پشتیبانی‌شده تبدیل می‌شود و به توسعه‌دهندگان اجازه می‌دهد تا تجربیات احراز هویت و گردش‌های کاری را بر اساس قابلیت‌های خاص کلاینت تنظیم کنند.

سازگاری

Browser Support

  • کروم: ۱۳۳.
  • لبه: ۱۳۳.
  • فایرفاکس: ۱۳۵.
  • سافاری: ۱۷.۴.

Source

قابلیت های کلاینت ()

تابع getClientCapabilities() یک API احراز هویت وب است که به طرفین وابسته اجازه می‌دهد تا مشخص کنند کدام قابلیت‌ها در دسترس هستند. برای استفاده از این API، باید PublicKeyCredential.getClientCapabilities() را فراخوانی کنید. promise برگردانده شده به یک شیء که شامل قابلیت‌ها است، ختم می‌شود که هر کدام با 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.
  }
}

شرطی‌سازی

مرورگر می‌تواند بدون رابط کاربری مودال برجسته، یک اعتبارنامه ایجاد کند، البته اگر کاربر قبلاً به ایجاد آن رضایت داده باشد.

شرطی Get

مرورگر می‌تواند با نمایش کلیدهای عبور به عنوان بخشی از کادر محاوره‌ای تکمیل خودکار، به جای یک رابط کاربری مودال برجسته، احراز هویت را انجام دهد. معادل موجود PublicKeyCredential.isConditionalMediationAvailable() است.

حمل و نقل هیبریدی

دستگاه می‌تواند از بلوتوث استفاده کند تا مرورگر بتواند یک اعتبارنامه ایجاد کند و با استفاده از پروتکل ترکیبی، بین دستگاه‌ها احراز هویت شود. این معمولاً به این معنی است که مرورگر می‌تواند یک کد QR را نمایش دهد تا کاربر بتواند آن را اسکن کرده و با تلفنی که اعتبارنامه روی آن است، وارد سیستم شود.

کلید عبورپلتفرم احراز هویت

مرورگر می‌تواند یک اعتبارنامه ایجاد کند و از طریق یک احراز هویت‌کننده پلتفرم تأیید کاربر یا دستگاه دیگری که از طریق پروتکل ترکیبی از آن پشتیبانی می‌کند، با آن احراز هویت شود. معادل hybridTransport || userVerifyingPlatformAuthenticator .

ریشه‌های مرتبط

مرورگر می‌تواند یک اعتبارنامه ایجاد کند و با آن احراز هویت کند که با شناسه RP مطابقت ندارد، مادامی که در فایل origins مربوطه مشخص شده باشد.

signalAllاعتبارنامه‌های پذیرفته‌شده

مرورگر می‌تواند اعتبارنامه‌های موجود در سرور را به ارائه‌دهنده‌ی کلید عبور ارسال کند ، به طوری که ارائه‌دهنده‌ی کلید عبور بتواند فهرست کلید عبور را با سرور سازگار نگه دارد.

جزئیات کاربر فعلی سیگنال

مرورگر می‌تواند اطلاعات کاربر مانند نام کاربری و نام نمایشی روی سرور را به ارائه‌دهنده‌ی کلید عبور ارسال کند ، به طوری که ارائه‌دهنده‌ی کلید عبور بتواند اطلاعات کلید عبور خود را با سرور سازگار نگه دارد.

signalUnknownاعتبارنامه

مرورگر می‌تواند یک اعتبارنامه حذف شده روی سرور را به ارائه‌دهنده کلید عبور ارسال کند ، به طوری که ارائه‌دهنده کلید عبور بتواند لیست کلید عبور را با سرور سازگار نگه دارد.

کاربر تأییدکننده‌ی پلتفرم احراز هویت

مرورگر می‌تواند یک اعتبارنامه را در یک احراز هویت‌کننده پلتفرم ایجاد و با آن احراز هویت کند. این به این معنی نیست که مرورگر از پروتکل ترکیبی پشتیبانی می‌کند. معادل موجود آن PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() است.

افزونه‌ها

RPها همچنین می‌توانند افزونه‌های موجود را با getClientCapabilities() تعیین کنند.

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

شناسه با extension: و به دنبال آن نام افزونه می‌آید. برای نام افزونه‌ها به شناسه‌های افزونه WebAuthn که در IANA تعریف شده‌اند مراجعه کنید.

بیشتر بدانید

برای کسب اطلاعات بیشتر در مورد کلیدهای عبور، از ورود بدون رمز عبور با کلیدهای عبور شروع کنید.