تاریخ انتشار: 15 ژانویه 2025
WebAuthn قابلیت های منحصر به فردی مانند تعامل با بلوتوث برای پروتکل ترکیبی، ارتباط با ارائه دهندگان رمز عبور، و پیشنهاد کلیدهای عبور در تکمیل خودکار را ارائه می دهد. با این حال، کلاینتها و تأییدکنندههای مختلف سطوح مختلفی از پشتیبانی از ویژگیهای WebAuthn را ارائه میکنند. این نابرابری میتواند منجر به یک تجربه کاربر پراکنده شود، جایی که برخی از کاربران ممکن است با خطاهایی مواجه شوند یا نتوانند از گزینههای احراز هویت خاصی استفاده کنند. ارائه راهی برای توسعهدهندگان برای تعیین قابلیتهای مشتری، آنها را قادر میسازد تا جریانهای احراز هویت قویتری ایجاد کنند که با این تغییرات تطبیق میدهند.
 متد PublicKeyCredential.getClientCapabilities() به طرف های متکی اجازه می دهد تا تعیین کنند کدام ویژگی WebAuthn توسط مرورگر پشتیبانی می شود. این روش وعدهای را برمیگرداند که به لیستی از قابلیتهای پشتیبانیشده حل میشود و به توسعهدهندگان اجازه میدهد تا تجربیات و گردشهای کاری احراز هویت را بر اساس قابلیتهای خاص مشتری تنظیم کنند.
 getClientCapabilities() یک API WebAuthn است که به طرفهای متکی اجازه میدهد تعیین کنند که کدام قابلیتها در دسترس هستند. برای استفاده از 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.
    }
  }
}
اگر کاربر قبلاً با ایجاد آن موافقت کرده باشد، مرورگر میتواند یک اعتبارنامه بدون یک رابط کاربری مدال برجسته ایجاد کند.
 مرورگر میتواند با نمایش کلیدهای عبور بهعنوان بخشی از گفتگوی تکمیل خودکار، به جای یک رابط کاربری برجسته، احراز هویت کند. معادل موجود PublicKeyCredential.isConditionalMediationAvailable() است.
این دستگاه میتواند از بلوتوث استفاده کند تا مرورگر بتواند اعتباری ایجاد کند و با استفاده از پروتکل هیبریدی در بین دستگاهها احراز هویت کند. این معمولاً به این معنی است که مرورگر میتواند یک کد QR را نمایش دهد تا کاربر بتواند آن را اسکن کند و با تلفنی که دارای اعتبارنامه است وارد شود.
 مرورگر میتواند اعتباری ایجاد کند و با آن از طریق یک تأییدکننده پلتفرم تأییدکننده کاربر یا دستگاه دیگری که از طریق پروتکل ترکیبی از آن پشتیبانی میکند، احراز هویت کند. معادل hybridTransport || userVerifyingPlatformAuthenticator .
مرورگر میتواند اعتباری ایجاد کند و با آن احراز هویت کند که با شناسه RP مطابقت ندارد، به شرطی که در فایل مبدا مربوطه مشخص شده باشد.
مرورگر میتواند اعتبارنامههای موجود در سرور را به ارائهدهنده رمز عبور سیگنال دهد ، به طوری که ارائهدهنده کلید عبور میتواند فهرست کلید عبور را با سرور سازگار نگه دارد.
مرورگر میتواند اطلاعات کاربر مانند نام کاربری و نام نمایشی روی سرور را به ارائهدهنده رمز عبور سیگنال دهد تا ارائهدهنده رمز عبور بتواند اطلاعات کلید عبور خود را با سرور سازگار نگه دارد.
مرورگر میتواند یک اعتبار حذف شده در سرور را به ارائهدهنده رمز عبور سیگنال دهد ، به طوری که ارائهدهنده رمز عبور میتواند فهرست کلید عبور را با سرور سازگار نگه دارد.
 مرورگر میتواند با یک اعتبار در یک Authenticator پلتفرم ایجاد و احراز هویت کند. این بدان معنا نیست که مرورگر از پروتکل ترکیبی پشتیبانی می کند. معادل موجود PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() است.
 RP ها همچنین می توانند پسوندهای موجود را با getClientCapabilities() تعیین کنند.
if (capabilities['extension:appid'] === true) {
  // appId extension is supported
}
 پیشوند شناسه با extension: پس از آن یک نام پسوند است. برای نام های برنامه افزودنی به شناسه های برنامه افزودنی WebAuthn که در IANA تعریف شده است مراجعه کنید.
برای کسب اطلاعات بیشتر در مورد کلیدهای عبور، از ورود بدون رمز عبور با کلیدهای عبور شروع کنید.