تشخیص ساده‌تر ویژگی WebAuthn با getClientCapabilities()

تاریخ انتشار: 15 ژانویه 2025

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

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

سازگاری

Browser Support

  • کروم: پشتیبانی نمی شود.
  • لبه: پشتیبانی نمی شود.
  • فایرفاکس: پشتیبانی نمی شود.
  • سافاری: 17.4.

getClientCapabilities()

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 را نمایش دهد تا کاربر بتواند آن را اسکن کند و با تلفنی که دارای اعتبارنامه است وارد شود.

passkeyPlatformAuthenticator

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

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

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

signalAllAcceptedCredentials

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

signalCurrentUserDetails

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

signalUnknownCredential

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

userVerifyingPlatformAuthenticator

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

پسوندها

RP ها همچنین می توانند پسوندهای موجود را با getClientCapabilities() تعیین کنند.

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

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

بیشتر بدانید

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